Appwrite vs Supabase

A side-by-side comparison of two self-hosted self-hosting platforms (paas) options — licensing, setup difficulty, resource needs, and what each one replaces.

Not the right match-up?
FeatureAppwriteSupabase
Deploy effortUnder-an-hour setupUnder-an-hour setup
Health score100 · Excellent100 · Excellent
CategorySelf-Hosting Platforms (PaaS)Self-Hosting Platforms (PaaS)
LicenseBSD-3-ClauseApache-2.0
LanguagePHPTypeScript
Setup difficultyMediumHard
Min. RAM2,048 MB4,096 MB
Deploymentdocker, kubernetesdocker, kubernetes
GitHub stars★ 57,454★ 110,711
First released20192020
ReplacesFirebase, SupabaseFirebase

What are Appwrite and Supabase?

Appwrite

Appwrite is a self-hosted backend-as-a-service platform that bundles authentication, databases, storage, functions, and messaging behind a unified API. It helps developers ship apps faster without managing separate services.

  • Auth, database, storage, and functions
  • Real-time subscriptions
  • Multi-platform SDKs
  • Serverless functions

Read the full Appwrite guide →

Supabase

Supabase is an open-source backend platform built on PostgreSQL, providing instant APIs, authentication, real-time subscriptions, storage, and edge functions. The full stack can be self-hosted with Docker.

  • Instant PostgreSQL APIs
  • Built-in authentication
  • Real-time database
  • File storage and edge functions

Read the full Supabase guide →

Appwrite vs Supabase: key differences

Appwrite is written in PHP, while Supabase is built with TypeScript. Licensing differs — BSD-3-Clause for Appwrite versus Apache-2.0 for Supabase. Appwrite is the lighter option, starting around 2,048 MB of RAM against 4,096 MB for Supabase.

Last reviewed Aug 26, 2026 · 720 words

Both bill themselves as the Firebase you can self-host, and both mean it, but they got there from opposite ends. Supabase started with PostgreSQL and generated everything else from it: the REST API is PostgREST reading your schema, auth is a Postgres-backed service, realtime is a listener on the write-ahead log. Appwrite started with the API and put a database behind it: you define collections and attributes in a console, the platform stores them (in MariaDB, though you will never talk to MariaDB directly) and exposes them through SDKs. That is the whole choice in one line. If you think in tables and SQL, Supabase. If you think in SDK calls and would rather never see a database, Appwrite.

The database is the product in Supabase and an implementation detail in Appwrite

With Supabase, anything you can express in Postgres you get for free: joins, views, triggers, full-text search, extensions such as pgvector and PostGIS, and row-level security policies that double as your authorization layer. The Postgres-for-everything argument applies with full force, and it cuts both ways: you need to know Postgres, and RLS policies are the source of most "why can't my user read this row" tickets.

Appwrite gives you a document-style database with typed attributes, indexes, a relationships attribute type and per-document permissions set through the API rather than through SQL. The trade is depth for approachability: reporting queries that are one SQL statement in Supabase become several round-trips or a function in Appwrite. For a mobile app whose data is "users, their things and their files," that limit rarely bites. For anything analytical, it does.

Self-hosting: one installer against a dozen containers

Appwrite installs with a single docker run that generates a compose file and asks a handful of questions; behind it sit MariaDB, Redis, a Traefik ingress and a set of worker containers. The catalogue puts it at 2,048 MB and Medium, with a fair warning that enabling every service (function runtimes especially) makes it hungrier.

Supabase self-hosted is the same dozen-service stack the PocketBase vs Supabase piece describes: Postgres, GoTrue, PostgREST, Realtime, Storage, Kong, Studio, edge functions and more, driven by one compose file you must populate with matching JWT secrets before anything works. Hard and 4,096 MB in the catalogue, and both figures are right. Upgrades are where the gap shows most: Appwrite's migration is one documented command; a Supabase upgrade means checking each service's image tag against the compatibility notes. Supabase's self-hosted path also trails its hosted product in polish, while Appwrite has treated self-hosting as the primary way to run it since 2019.

SDKs, functions and the mobile question

Appwrite ships official SDKs for Web, Flutter, Apple, Android and React Native plus every major server language, and its functions run in a dozen runtimes, Node, Python, PHP, Dart, Go and Ruby among them. Supabase's strongest client is supabase-js; its Flutter and Swift SDKs are good but younger, and its edge functions run on Deno only. Both do OAuth with a long provider list, realtime subscriptions and file storage. Add Appwrite's built-in messaging (email, SMS and push through providers you configure) and the pattern is clear: Appwrite is broader, Supabase is deeper.

Decision table

YouPick
Comfortable in SQL, want joins and RLSSupabase
Never want to write a migrationAppwrite
Flutter or native mobile app front and centreAppwrite
Need pgvector, PostGIS or other Postgres extensionsSupabase
One VPS, want it running todayAppwrite
Functions in Python, PHP or Go, not just DenoAppwrite
Data must stay portable to plain PostgresSupabase

What I'd do

If the project has a data model I would sketch as tables, I take Supabase and accept the operations bill, because the schema and the skills transfer to any Postgres for the rest of my career. If it is an app-shaped product, particularly mobile, with a small team that wants to ship rather than administer, I take Appwrite; it is the more finished self-hosted experience of the two. The dev-platforms category has lighter options if either feels like too much stack for a side project.

Why pick each one

Choose Appwrite if…

  • All-in-one backend
  • Great developer experience

Watch out for

  • Resource hungry with all services
Appwrite details

Choose Supabase if…

  • Powerful Postgres foundation
  • Excellent docs

Watch out for

  • Self-hosting is complex
Supabase details

Frequently asked questions

Is Appwrite or Supabase better?

Neither is universally better. Supabase has the larger community, while Appwrite is simpler to set up (medium difficulty). Choose based on the comparison table above and your own setup.

Are Appwrite and Supabase free and open-source?

Yes. Appwrite is licensed under BSD-3-Clause and Supabase under Apache-2.0. Both can be self-hosted at no software cost.

Can I run Appwrite and Supabase with Docker?

Appwrite: yes. Supabase: yes.

Which is lighter on resources, Appwrite or Supabase?

Appwrite has the smaller minimum footprint at 2,048 MB of RAM, compared to about 4,096 MB for Supabase. Real-world usage depends on library size, user count, and enabled features.

Related comparisons