Oct 27, 20267 min read

The Best Backend-as-a-Service Platforms in 2026

Supabase, Firebase, Convex, Appwrite, Nhost and PocketBase ranked on database model, licence, self-hosting and how far each one goes before you outgrow it.

A backend-as-a-service gives a frontend or mobile app a database, auth, file storage and an API without running servers, and for a new app that is usually the right trade. The part that gets less attention is the exit. Most apps that succeed outgrow the BaaS in some way, and the database model picked on day one decides whether that step is a dump and restore or a rewrite of the data layer.

This guide ranks six platforms with that in mind: what they give you now, and what leaving them would take.

What a team needs from a BaaS:

  • A database model that fits the app and can move to another host.
  • Auth, storage and realtime without extra services.
  • A local development setup that matches production.
  • A licence and self-hosting option that leave a way out.

BaaS platforms at a glance

PlatformDatabaseLicenceSelf-hostingRealtimeFree tier
SupabasePostgresApache 2.0YesYes500 MB database, pauses after a week idle
FirebaseFirestore and Realtime DatabaseProprietaryNoYesNo-cost Spark plan
ConvexConvex document databaseFSL 1.1, Apache 2.0 laterYesReactive queries1M function calls a month
AppwritePostgres by default when self-hosted (2.0)BSD 3-ClauseYesYesFree project, frozen at its limits
NhostPostgres with Hasura GraphQLMITYesGraphQL subscriptionsOne project, pauses after a week idle
PocketBaseSQLiteMITYessingle binaryYesFree, you host it
Compare what leaving each platform involves
QuestionSupabaseFirebaseConvexAppwriteNhostPocketBase
Data exportStandard Postgres dumpFirestore export, document modelConvex data modelAppwrite's database APIStandard Postgres dumpOne SQLite file
Access rules move with the dataRow-level security in PostgresFirebase security rulesIn Convex functionsAppwrite permissionsHasura permissionsPocketBase rules
Run it yourself firstYesNoYesYesYesYes
Local developmentsupabase startEmulatorsnpx convex devDockerSelf-hosted stack./pocketbase serve

1. Supabase: Postgres underneath, which keeps every exit open

Supabase

Supabase is an open source BaaS built on Postgres, with auth, storage, edge functions and realtime, under the Apache 2.0 licence. Access control uses Postgres row-level security, with the rules stored in the database. The CLI runs the whole stack locally: supabase init and supabase start bring up Postgres, Auth, Realtime, Storage, Edge Functions and the APIs, and migrations live in the repository.

Because the data and the rules are both Postgres, the exit is the easiest in this list. The free plan includes a 500 MB database, 50,000 monthly active users, 1 GB of file storage and 5 GB of egress for up to two active projects, and free projects pause after a week of inactivity.

Good to know: security depends on writing correct row-level security policies, and self-hosting means running several services.

2. Firebase: the best mobile SDKs, the hardest move later

Firebase

Firebase is Google's proprietary BaaS, with Firestore, Authentication, Cloud Storage, Cloud Functions and mature mobile SDKs with offline sync. Clients talk to Firestore directly, and security rules per collection decide what each user can read and write. The Spark plan is no-cost with usage limits, and the Blaze plan is pay as you go.

For a mobile app that lives on Google's stack, it is the strongest option here. The cost shows up later: it cannot be self-hosted, Firestore's document model makes relational queries harder, and moving off means rewriting data access and rules together.

3. Convex: reactive TypeScript, on a data model of its own

Convex

Convex is a TypeScript-first backend where queries are functions and the client subscribes to them reactively. Its backend is self-hostable under the Functional Source License FSL-1.1-Apache-2.0, which converts to Apache 2.0 after two years. npx convex dev syncs the functions in a convex/ folder to a development deployment as you save, and the schema is TypeScript too. The free plan includes 1 million function calls a month.

For collaborative tools and live dashboards, reactive queries remove a lot of client code. The self-hosted backend includes most features of the cloud product, which is a real exit from the hosted service, but not from Convex's data model and query API.

4. Appwrite: broad SDKs and Docker self-hosting

Appwrite

Appwrite is an open source BaaS under the BSD 3-Clause licence, with databases, auth, storage, functions, messaging and realtime, and SDKs for many platforms. Self-hosting starts with a single docker run command that installs the stack. A free cloud project that reaches a plan limit is frozen, and its console becomes read-only until usage drops or the project upgrades.

Good to know: its database API is Appwrite's own, with no direct SQL access for app code.

5. Nhost: GraphQL generated from Postgres

Nhost

Nhost combines Postgres, Hasura GraphQL, auth and storage under the MIT licence. Tables you create in Postgres show up in the GraphQL API, and permissions are set per role in Hasura. The data leaves as a Postgres dump, while the permissions live in Hasura. The free Starter plan allows one active project with a 1 GB database, 1 GB of storage and 5 GB of egress, and pauses after a week of inactivity. A REST-first team gets less from it.

6. PocketBase: a whole backend in one binary, for small apps

PocketBase

PocketBase is a single Go binary with an embedded SQLite database, auth, file storage, realtime and an admin UI, under the MIT licence. ./pocketbase serve starts it, and it can also be used as a Go framework inside your own program, with JavaScript and Dart SDKs for clients. It costs only the server you run it on.

Good to know: it is still before version 1.0, and its maintainers do not recommend it for production-critical applications yet, nor guarantee backward compatibility before 1.0. A single SQLite file scales up on one machine, not out.

Signs you are outgrowing a BaaS

Most teams leave a BaaS for one of a few reasons. Business logic moves out of the client and into functions until the functions are the real backend. Background work, such as queues, retries and scheduled jobs, ends up in a second system. Compliance or data residency asks for the database to sit in an account the company controls. Or the bill grows with usage in a way that a plain database and a few services would not.

None of these mean the BaaS was the wrong start. They mean the next step is a backend you own, and the database model you picked on day one decides how hard that step is.

How to choose

Choose the database first, since it is the hardest part to change later. Postgres platforms keep SQL and a standard dump format, document stores trade joins for simpler client access, and SQLite keeps everything in one file. Then check the licence and self-hosting story, and read the free tier rules on pausing and freezing before you launch.

  • Supabase for Postgres with auth and realtime, and the easiest move later.
  • Firebase for mobile apps with offline sync on Google's stack.
  • Convex for reactive TypeScript apps built around live data.
  • Appwrite for SDKs on many platforms and Docker self-hosting.
  • Nhost for a GraphQL API generated from Postgres.
  • PocketBase for small apps and internal tools in one binary.

When you outgrow it: a backend in your own AWS or GCP account

Teams that reach that point usually want the database, the background jobs and the API in a cloud account they control. One option is Encore, an open source infrastructure SDK for TypeScript and Go where databases, Pub/Sub and object storage are declared in code and provisioned in your own AWS or GCP account. The schema from a Supabase or Nhost database becomes Encore migrations and the data loads from a Postgres dump, and apps can also be built as Docker images and run on your own infrastructure.

Get started
brew install encoredev/tap/encore &&
encore app create
Copy

Run in your terminal to get started locally.

Frequently asked questions

What is the best backend-as-a-service in 2026?

Supabase is the best general choice for most new apps, with Postgres, auth, storage and realtime under the Apache 2.0 licence. Firebase suits mobile apps on Google's stack, and Convex suits apps built around reactive queries in TypeScript.

Which BaaS platforms can be self-hosted?

Supabase, Convex, Appwrite, Nhost and PocketBase can all be self-hosted. Firebase is proprietary and runs only on Google's infrastructure.

Which BaaS is easiest to move away from later?

Postgres-based platforms such as Supabase and Nhost are the easiest, since the data is in standard Postgres and can be dumped and restored elsewhere. Firestore and Convex use their own data models, which means rewriting data access.

Deploy to your cloud on AWS and Google Cloud
without managing infrastructure

Encore lets developers and agents define application infrastructure directly in code, then automatically provisions it from local development to production in your AWS or GCP account.

~/orders — claude
Claude Code
Claude Code v2.1.180Opus 5.5~/orders