Your whole stack, not just the database_
Supabase is Postgres with tools around it. Appwrite is the complete open-source platform: auth, databases, storage, functions in 13+ runtimes, and realtime, plus web hosting, messaging, domains, and a firewall that Supabase does not offer. One project, one Console, one bill.
57.6K GitHub stars
Open source, self-host anywhere
- Only on Appwrite
- Also on Supabase
Access control_
Permissions you can read in one line_
Same goal, very different ergonomics. Here is a team-scoped document in both platforms.
alter table documents enable row level security; create policy "Team members can read" on documents for select using (exists ( select 1 from memberships m where m.team_id = documents.team_id and m.user_id = auth.uid() ));
Row Level Security is powerful, but access lives in SQL policies. One wrong join and a policy that looks right grants too much, especially when an AI agent writes it.
await tablesDB.createRow({ databaseId: 'main', tableId: 'documents', rowId: ID.unique(), data: { title: 'Q3 roadmap' }, permissions: [ Permission.read(Role.team(teamId)), Permission.update(Role.team(teamId, 'editor')), ], })
Appwrite permissions are role strings that sit next to the data. Anyone, or any agent, can review who can read and write a row in a single line, and the same rules apply to the API, Realtime, and every SDK.
Databases_
The right database for every kind of data_
Supabase puts everything in one PostgreSQL instance per project. Appwrite gives you five database models in one project: TablesDB on serverless or dedicated compute, plus DocumentsDB, VectorsDB, PostgreSQL, and MySQL on dedicated compute.
- Database models in one Appwrite project
- 5
- Supabase: PostgreSQL
- 1
TablesDB
Relational tables
ServerlessDedicated
Supabase: Not offered
DocumentsDBBeta
JSON documents
Dedicated
Supabase: Not offered
VectorsDBBeta
Vectors and embeddings
Dedicated
Supabase: Not offered
PostgreSQLBeta
Native SQL
Dedicated
Supabase
PostgreSQL
One dedicated instance per project
MySQLBeta
Native SQL
Dedicated
Supabase: Not offered
Documents and vectors live inside that one PostgreSQL database, through JSONB and pgvector.
Functions_
Thirteen runtimes, not one_
Supabase Edge Functions run TypeScript on a Deno-compatible runtime. Appwrite Functions run the language your team and your libraries already use, including Python for AI work, with Git deploys, cron, events, and local development.
Appwrite
13runtimes
- Node.js
- Python
- Go
- Bun
- Deno
- Dart
- PHP
- Ruby
- Rust
- .NET
- Java
- Kotlin
- Swift
SupabaseTypeScript (Deno)
1language
Pricing_
Same $25. More room to grow._
Both Pro plans start at $25/mo and dedicated database compute starts at $10/mo on both. Appwrite includes more of almost everything, plus hosting and messaging Supabase does not sell at all.
Included on Pro, from $25/mo
Monthly active users
Bandwidth
File storage
Function executions
Realtime messages
Open source_
Open source that is easy to run yourself_
Both platforms publish their code. Appwrite is the one built to be self-hosted: one install command brings up every product, with the same APIs and Console as Appwrite Cloud.
- GitHub stars
- 57.6K
- Contributors
- 800+
Self-host in one command
$docker run -it --rm … --entrypoint="install" appwrite/appwrite:2.3.0
No lock-in
Move between Appwrite Cloud and your own servers by changing one endpoint.
Run it anywhere
Self-host on any cloud or on premises for data residency and compliance.
Nothing hidden
Read the code that handles your users and data, and audit how it works.
Fix it, extend it
Patch, extend, or contribute back instead of waiting on a vendor roadmap.
Supabase · Self-hosting left to you
Self-hosted Supabase is community supported and runs one project per instance.
Appwrite vs Supabase_
More of your stack, built in_
Where the two platforms overlap, and everything Appwrite adds on top.
Checked against public pricing and documentation in October 2026.
One project per instance
Same APIs, SDKs, and Console as Cloud
Community supported, one project per instance
Sites, with Git deploys and previews
Pair it with a separate frontend host
12 providers, topics, and scheduling
Tables, documents, vectors, PostgreSQL, MySQL
PostgreSQL
Serverless TablesDB, or dedicated compute for any engine
One dedicated instance per project
PostgreSQL 18 on dedicated compute
Readable role strings, no SQL
Policies written in SQL
Restore window of 1 to 35 days
Requires Small compute or larger
Node.js, Python, Go, Dart, PHP, and more
Deno-compatible runtime
Rows, files, executions, sessions, teams
Postgres changes, broadcast, presence
Memberships and roles built in
Model it with tables and RLS
Migration_
Bring your Supabase project with you_
The Migrations tool imports users, databases, and files straight from your Supabase project.
- 01
Connect
Paste your Supabase pooler credentials and service key in the Migrations tab.
- 02
Select
Pick users, databases, and files. Usage during the import is not billed.
- 03
Ship
Move Edge Functions to any runtime, then deploy your frontend with Sites.
Fair play_
When Supabase might still fit_
Supabase is a solid Postgres platform with a great team behind it. It may suit you if these describe your project.
- 01
Your team relies mostly on Postgres and does not need much else from the platform.
- 02
You rely on PostgREST for an auto-generated REST API over Postgres.
- 03
You offer SAML single sign-on to your own end users.
SAML SSO for your end users is coming soon to Appwrite.
- 04
Your AI app builder has a one-click Supabase integration your workflow depends on.
Why developers choose Appwrite over Supabase_
For teams that want their whole stack in one place, yes. Appwrite includes everything Supabase covers, auth, databases, managed PostgreSQL, storage, functions, and realtime, plus web hosting, messaging, domains, and a project firewall. Permissions are readable role strings instead of SQL policies, and functions run in 13+ languages instead of TypeScript on Deno only.
Go deeper_
See why teams make the switch_
Guides, deep dives, and product pages from the Appwrite team.
Compare_
See how Appwrite stacks up elsewhere_
Ship the whole stack from one place_
Create a project, import from Supabase, and deploy your frontend next to your backend.