Main features
- REST API and an automatically generated GraphQL API
- Storage on MongoDB or PostgreSQL with PostGIS
- User accounts, anonymous users and third-party login adapters
- Class-level permissions and per-object access control lists
- Cloud Code functions, triggers and background jobs
- LiveQuery realtime subscriptions over WebSockets
- Push notifications through APNS and FCM
- File storage on GridFS, Amazon S3, Google Cloud Storage or local disk
- Runs standalone or inside an existing Express app
- SDKs for iOS, Android, JavaScript, Flutter, PHP and .NET
What Parse Server does
Parse Server is a Node.js backend maintained by the Parse Platform community. You store objects in classes, query them through a REST API or an automatically generated GraphQL API, and add server logic as Cloud Code: functions clients can call, triggers that run before or after an object is saved or deleted, and background jobs. LiveQuery pushes changes to subscribed clients over WebSockets, and the push module sends notifications through Apple’s APNS and Google’s FCM.
It can run on its own from the command line or be mounted inside an existing Express application, which makes it easy to add a Parse API to a Node.js project you already run. Client SDKs exist for iOS and macOS (including a Swift SDK), Android, JavaScript, Flutter, PHP and .NET.
Security and access control
Parse has two layers of permissions. Class-level permissions decide who can get, find, create, update or delete objects in a class, and who can add fields. Access control lists on each object then grant read and write rights to specific users or roles, and pointer permissions can tie access to a user stored in a field. The guide warns that a class with public find permission is readable by anyone unless each object carries an ACL. Since version 6.0, new user objects are private by default.
The master key bypasses all of this and must stay on the server; a read-only master key is available for tools such as the dashboard. A routeAllowList option can close REST routes entirely when all logic runs in Cloud Code. Users can sign up with a username and password, as anonymous users, or through third-party auth adapters. Email verification and password reset need an email adapter.
Self-hosting Parse Server
You need Node.js (the current release supports the 20, 22 and 24 lines) and either MongoDB or PostgreSQL with PostGIS 2.2.0 or later. Install the npm package, build the Docker image from the repository, or start from the official example app. Files go to MongoDB GridFS by default, with adapters for Amazon S3, Google Cloud Storage and local disk. LiveQuery can run inside the same process or as separate instances when you need to scale it.
Parse Server is assembled from adapters, so a production setup means choosing and configuring email, file storage and push providers yourself. The previous major version is kept as a long-term-support branch for security fixes, which gives time to plan upgrades.
Hosted version
The Parse Platform project does not run a hosted service. The README lists several independent companies that host Parse Server, such as Back4app, SashiDo and Elestio, so you can move between providers or bring the app in-house without changing your client code.
Limitations
The admin UI most people use with it, Parse Dashboard, has its own license that allows use and redistribution but only internal modification, so it does not meet the open source definition. Compared with newer tools, Parse Server expects more setup work, and there is no official importer for Firebase data.
Who it suits
Parse Server suits Node.js teams who want a mature, adapter-based backend they can embed in their own server, with a choice of MongoDB or PostgreSQL and a range of hosting providers. If you want a fully integrated console and an official cloud, Appwrite or Supabase are closer to the Firebase experience.
License details
Apache-2.0. The separate Parse Dashboard admin UI uses a custom license from Parse, LLC that limits modification to internal use, so it is not open source.
Technical details
Self-hosting needs
- MongoDB or PostgreSQL
Built with
- Node.js
- JavaScript
- Express
GitHub topics
- baas
- backend
- file-storage
- graphql
- graphql-api
- graphql-relay
- graphql-server
- hacktoberfest
- mbaas
- mongodb
- nodejs
- notifications
- object-storage
- parse-platform
Reviewed by the OpenSourcePicks editors from the project's repository and documentation. Something out of date? Tell us.