Parse Server is an open-source backend for Node.js applications, built on the Express framework and compatible with the original Parse SDKs. It can be embedded into an existing Express app or run standalone, providing object storage, queries, file storage, push notifications, and a Cloud Code layer for server-side logic. It runs on either MongoDB or PostgreSQL (with PostGIS) as the underlying database.
Parse Server fits teams migrating off the original hosted Parse.com platform, which shut down years ago, or teams that want a Backend-as-a-Service model without depending on Firebase or another proprietary vendor. Because it runs as a normal Express app, it slots into existing Node.js infrastructure and deployment pipelines rather than requiring a dedicated platform, and it can share a process with other Express routes when an app doesn't need a fully separate backend service. The dual REST and GraphQL API support matters for teams with both legacy mobile clients built against the original Parse REST conventions and newer web clients that prefer GraphQL. PostGIS support makes it a reasonable fit for location-based apps that need geospatial queries alongside standard object storage, without adopting a separate geospatial database. Because Cloud Code runs alongside the API, validation, computed fields, and third-party integrations such as payment webhooks and email providers can live in the same deployable unit as the API itself. Compatibility with the original Parse SDKs also means apps built years ago against the hosted Parse.com service can often be pointed at a self-hosted Parse Server with minimal client-side changes.
Parse Server runs locally with Node.js and either MongoDB or PostgreSQL installed, or via the official Docker image. It can be mounted onto an existing Express app as middleware, or run as a standalone Express server using the sample application in the repository. Configuration is handled through environment variables or a config object covering options like the app ID, master key, file adapters, and localization. The project follows a release and alpha branch model, with long-term-support branches named release-<version>.x.x that continue to receive security fixes after a new major version supersedes them.