Databasesintermediate

Appwrite vs Supabase

Appwrite and Supabase compared for 2026: Free and Pro plan limits, MAU and bandwidth pricing, Postgres vs multi-model databases, permissions vs Row Level Security, function runtimes, realtime, storage, hosting, messaging and what self-hosting really gives you, with a clear pick per situation.

Quick Answer

Supabase is a Postgres development platform: every project gets its own dedicated Postgres database with an auto-generated REST API, Auth, Storage, Realtime, Edge Functions (TypeScript on a Deno-compatible runtime), Cron, Queues and vector support. Appwrite is a backend platform built around its own APIs and SDKs: TablesDB (the default), DocumentsDB and VectorsDB with table- and row-level permissions, plus managed PostgreSQL or MySQL on dedicated compute, functions in more than a dozen runtimes, Sites for hosting web apps, and Messaging for email, SMS and push. Both Pro plans start at $25 a month and both free plans pause projects after a week of inactivity and allow two projects. Supabase Free gives 50,000 MAU and a 500 MB database; Pro includes 100,000 MAU, an 8 GB disk, 250 GB egress and a Micro compute instance. Appwrite Free gives 75,000 MAU, 5 GB bandwidth and 2 GB storage; Pro includes 200,000 MAU, 2 TB bandwidth and 150 GB storage per project. Supabase is Apache-2.0; Appwrite is BSD-3-Clause (latest 2.7.1, 4 November 2026). Pick Supabase if you want real Postgres with SQL, RLS and its extension ecosystem at the centre. Pick Appwrite if you want one platform for backend, hosting and messaging, non-TypeScript functions, or a multi-project self-hosted install.

Last updated November 11, 2026. Covers Appwrite 2.7.1 (4 November 2026) and the current Supabase Platform, with plans and prices from appwrite.io/pricing and supabase.com/pricing and features from each vendor's docs, read in November 2026.

Feature comparison of Appwrite vs Supabase
FeatureAppwriteSupabase
License
BSD-3-Clause
Apache-2.0
Core Data Model
Appwrite APIs and SDKs over databases, tables and rows (TablesDB by default)
Dedicated Postgres database per project
Database Options
TablesDB (serverless or dedicated), DocumentsDB, VectorsDB, managed PostgreSQL 18/17 and MySQL on dedicated compute
Postgres only, with extensions; vector and analytics (Iceberg) buckets on the platform
APIs
REST, GraphQL and Realtime APIs; SDKs for web, Flutter, Apple, Android, React Native and server languages
Auto-generated REST Data API, GraphQL API, client SDKs, direct and pooled Postgres connections
Access Control
Table- and row-level permissions as role strings (any, users, user, team, label); RLS available inside managed PostgreSQL
Row Level Security policies written in SQL, tied to Auth JWTs
Auth Methods
Email/password (Argon2), phone SMS, magic URL, email OTP, OAuth2 with 30+ providers, anonymous, JWT, SSR, passkeys, custom tokens, MFA, teams
Password, magic link, OTP, social OAuth, custom OAuth/OIDC, anonymous, phone, MFA (TOTP; phone as add-on), Auth hooks, third-party JWTs
SAML SSO for Your Users
Not yet for end users (listed as coming soon); SSO listed on Enterprise
SAML 2.0 on Pro and Team: 50 SSO MAU included, then $0.015 per MAU
Serverless Functions
Many runtimes (Node.js, Bun, Deno, Python, Go, Dart, PHP, Ruby, .NET, Java, Kotlin, Swift, C++, Rust); HTTP, event and schedule triggers; Git deploys
Edge Functions: TypeScript on Supabase Edge Runtime (Deno-compatible), globally distributed; cold starts possible
Realtime
WebSocket subscriptions to events from every service (rows, files, executions, sessions, teams), filtered by permissions
Broadcast, Presence and Postgres Changes
File Storage
Buckets with permissions, image transformations (add-on usage), file APIs
S3-compatible, REST and TUS resumable uploads; CDN; image transformations on paid plans; RLS-based access
Web App Hosting
Appwrite Sites: static and SSR apps with Git deploys, previews and monorepo support
No; pair with a separate frontend host
Email / SMS / Push Messaging
Yes: email, SMS and push with topics and scheduling
No built-in messaging product (Auth emails via custom SMTP)
Free Plan
$0: 75K MAU, 5 GB bandwidth, 2 GB storage, 750K executions, 1 database, 1 bucket, 2 functions per project, 1 member, 2 projects, paused after 1 week inactive
$0: 50K MAU, 500 MB database, shared CPU with 500 MB RAM, 5 GB egress, 1 GB file storage, 2 active projects, paused after 1 week inactive
Pro Plan (Included)
From $25/month: 200K MAU, 2 TB bandwidth, 150 GB storage, 3.5M executions per project; unlimited databases, buckets, functions and members; daily backups; $10 database compute credit
From $25/month: 100K MAU, 8 GB disk, 250 GB egress, 100 GB file storage, 2M function invocations, 5M Realtime messages; $10 compute credit covers one Micro instance
Pro Overage Examples
$3 per 1,000 MAU above 200K; other add-ons pay-as-you-go under an organization budget cap
$0.00325/MAU, $0.09/GB egress, $0.125/GB disk, $0.0213/GB storage, $2 per 1M function invocations; spend cap on by default
Dedicated Database Compute
Optional dedicated tiers from Starter (1 core, 1 GB, $10/mo) to Scale Max (32 cores, 256 GB, $4,099/mo); HA replicas at full tier price
Per project, Micro (1 GB, $10/mo) to 16XL (64 vCPU, 256 GB, $3,730/mo); additional projects from $10/mo
Backups & PITR
Daily backups on Pro; backup policies; PITR on dedicated databases for +20% of the tier price
Daily backups kept 7 days (Pro) or 14 days (Team); PITR $100/month per 7 days of retention
Branching / Preview Environments
Database branches on managed PostgreSQL; Sites deployment previews
Branching at $0.01344 per branch-hour on Pro and above
Self-Hosting
Docker Compose or Helm; min 2 CPU cores, 4 GB RAM, 2 GB swap; same APIs and Console as Cloud; multiple projects per install
Docker Compose (min 2 cores, 4 GB RAM, 40 GB SSD); one project per stack; Kubernetes via community projects
Compliance (Cloud)
SOC 2 Type II certified; HIPAA/BAA on Enterprise
SOC 2 and ISO 27001 on Team ($599/month); HIPAA as a paid add-on
Latest Release (Nov 2026)
2.7.1 (4 Nov 2026)
Hosted platform is continuously updated; self-hosted Docker stack versioned on GitHub

Pricing at a glance

Entry prices and free tiers as listed on TechLogHub for Supabase; the other tool is not listed in the directory yet.

ToolFree tierStarts atBillingPlans listed
Supabase pricingYes——Free · Pro · Enterprise

Prices as written by the maker on their listing; medians and context on each tool's pricing page. See the 2026 pricing report for the directory-wide picture.

Appwrite

Open-source (BSD-3-Clause) backend platform with Auth, Databases, Storage, Functions, Messaging, Realtime, Sites hosting, Domains and a project firewall behind one set of APIs and SDKs. Available as Appwrite Cloud or self-hosted with Docker or Helm, using the same APIs, SDKs and Console.

Pros

  • Functions run in many runtimes, including Node.js, Bun, Deno, Python, Go, Dart, PHP, Ruby, .NET, Java, Kotlin, Swift, C++ and Rust
  • Sites hosts static and server-rendered apps (Next.js, Nuxt, Astro, SvelteKit, TanStack Start and more) next to the backend, including from npm, pnpm and Bun monorepos
  • Messaging for email, SMS and push notifications is built in, so you don't need a separate notification service
  • More included on Pro: 200,000 MAU, 2 TB bandwidth and 150 GB storage per project, plus unlimited databases, buckets and functions
  • Permissions are role strings on tables and rows (users, teams, labels) enforced across the REST API, Realtime and every SDK, with no SQL policies to write
  • Self-hosting supports many projects in one install, with PostgreSQL (default), MariaDB or MongoDB underneath

Cons

  • The SDK-driven TablesDB/DocumentsDB model is Appwrite-specific; raw SQL, extensions and psql access require a paid managed PostgreSQL database on dedicated compute
  • No SAML SSO for your own end users yet; Appwrite lists it as coming soon
  • Free plan is tight on structure: 1 database, 1 bucket and 2 functions per project, 1 organization member, and projects freeze when a limit is hit
  • Not every function runtime is available on Appwrite Cloud, and SSO, HIPAA/BAA and log drains are Enterprise-only

Best For

Teams that want backend, hosting and messaging in one platform, developers who write functions in Python, Go, Dart, PHP or other non-TypeScript languages, mobile and Flutter apps that lean on SDKs, and anyone self-hosting several projects on one server.

Supabase

Open-source (Apache-2.0) Postgres development platform. Each project is a dedicated Postgres database with an auto-generated REST API, Auth, Storage, Realtime, Edge Functions, Cron, Queues and vector tooling around it. Available as the hosted Supabase Platform or self-hosted with Docker Compose.

Supabaseon TechLogHub: reviews, pricing & alternatives

Pros

  • Real Postgres in every project: SQL, extensions, foreign keys, triggers, and direct or pooled connections from any Postgres driver or ORM
  • Row Level Security in SQL drives authorization for the auto-generated REST API, Realtime and Storage, so the database is the single source of access rules
  • Mature auth on paid plans, including SAML 2.0 SSO for your users (50 SSO MAU included on Pro), Auth hooks and third-party JWTs from Clerk, Auth0, Firebase, Cognito or WorkOS
  • Branching gives each pull request its own preview environment, billed per branch-hour on Pro and above
  • Spend cap is on by default on Pro, and pricing for compute, disk, egress, MAU and add-ons is published down to the cent
  • Largest community of the two (about 115,000 GitHub stars) and wide support in AI app builders and tutorials

Cons

  • Edge Functions are TypeScript only, on a Deno-compatible runtime; Python or Go code needs another host
  • No built-in web hosting or email/SMS/push messaging; you pair it with a frontend host and a messaging provider
  • Pro includes less bandwidth (250 GB egress) and fewer MAU (100,000) than Appwrite Pro, and each extra project adds compute from $10/month
  • Self-hosted Supabase runs one project per stack and lacks branching, managed backups and PITR, analytics and vector buckets, ETL and the Management API; the Kubernetes options are community-maintained

Best For

Teams that want Postgres as the centre of their stack: SQL-heavy apps, products that depend on extensions like pgvector, teams that prefer authorization in RLS policies, and B2B apps that need SAML SSO for customers on a mid-tier plan.

Data model: Postgres underneath vs Appwrite's own APIs

This is the decision that matters most. A Supabase project is a dedicated Postgres database. The REST Data API, GraphQL API, Auth tables, Storage metadata and Realtime's Postgres Changes all sit on top of it. You can connect with psql, run migrations with any tool, add extensions and write triggers, and your data is plain Postgres you can dump and move. Appwrite's default is TablesDB, a typed tables-and-rows model you reach through Appwrite's SDKs and REST or GraphQL APIs. It supports relationships, transactions, bulk operations, offline sync, CSV import and export, and type generation. DocumentsDB (schemaless) and VectorsDB (embeddings) sit beside it. If you want the raw engine, Appwrite also sells managed PostgreSQL (18 by default, 17 optional) and MySQL on dedicated compute, with pooling, up to five HA replicas, extensions such as PostGIS and pgvector, branches and PITR. Those databases are plain Postgres, though, without Appwrite's SDK permissions. So with Appwrite you choose per database between the platform model and the raw engine. With Supabase you always get the raw engine with a platform around it.

Authorization: role strings vs Row Level Security

Supabase authorizes data access with Postgres Row Level Security. The client sends the user's JWT, and RLS policies written in SQL decide row by row what the auto-generated API returns. The same model protects Storage. It is powerful: policies can join other tables, call functions and express multi-tenant rules precisely. The cost is that a missing or wrong policy is a data leak, and every engineer touching the schema needs to read SQL policies fluently. Appwrite attaches permissions to tables and rows as readable role strings: anyone, all users, one user, a team, a team role or a label. They are enforced the same way across the REST API, Realtime subscriptions and every SDK, so a Realtime client only receives events for resources it can read. Built-in teams and memberships handle multi-tenancy without writing policies. The trade-off is expressiveness. Rules that depend on data in other tables are easier in SQL than in role strings, and Appwrite's own comparison suggests RLS inside its managed PostgreSQL for that case. Choose based on who will maintain the rules: database-minded teams tend to prefer RLS, and app and mobile teams tend to prefer Appwrite's model.

Pricing at scale: where the $25 plans diverge

Both Pro plans start at $25 a month, but they bundle different things. Supabase Pro covers one project's Micro compute with a $10 monthly credit. Each additional project adds compute from $10 a month, and the quota includes 100,000 MAU, an 8 GB disk, 250 GB egress and 100 GB of file storage. Beyond that, list prices are $0.00325 per MAU, $0.125 per GB of disk, $0.09 per GB of egress and $0.0213 per GB of storage, and the spend cap is on by default. At 300,000 MAU, for example, the extra 200,000 users come to about $650 a month at list price. Appwrite Pro includes 200,000 MAU, 2 TB of bandwidth, 150 GB of storage and 3.5 million function executions per project, with $3 per 1,000 MAU beyond that. The same 300,000 MAU therefore adds about $300. Both include $10 of database compute credit and dedicated tiers from $10 a month. The gap is largest for bandwidth-heavy consumer apps and for teams running several small projects. Enterprise needs differ too. SOC 2, ISO 27001 and dashboard SSO come with Supabase Team at $599 a month, while Appwrite puts SSO and HIPAA/BAA on custom-priced Enterprise.

Functions, realtime, hosting and messaging

Supabase Edge Functions are TypeScript files that run on the Supabase Edge Runtime, which is Deno-compatible and distributed across regions. They suit webhooks, small API endpoints and calls to third-party or LLM APIs. Supabase's own docs warn about cold starts and suggest moving long jobs to background workers, and Cron and Queues cover scheduled and durable work. Appwrite Functions deploy from Git and are triggered by HTTP, SDK calls, events or schedules. They run on a long list of runtimes: Node.js, Bun, Deno, Python (including an ML image), Go, Dart, PHP, Ruby, .NET, Java, Kotlin, Swift, C++ and Rust. Not all of them are available on Appwrite Cloud. For realtime, Supabase offers Broadcast, Presence and Postgres Changes, while Appwrite streams events from every service, including files, executions and sessions. Two products have no Supabase counterpart. Appwrite Sites hosts static and server-rendered frameworks with Git deploys and previews, and it added monorepo builds on 10 November 2026. Appwrite Messaging sends email, SMS and push. With Supabase you would add a host such as Vercel or Netlify and a messaging provider.

Self-hosting and moving between them

Both projects are open source and both self-host with Docker, but they don't deliver the same thing. Supabase's Docker Compose stack needs at least 2 cores, 4 GB of RAM and 40 GB of SSD (8 GB or more recommended) and ships Studio. Its docs are explicit that a self-hosted install is a single project, without multiple organizations or projects in Studio. Branching, advanced metrics, managed backups and PITR, analytics and vector buckets, ETL and the Management API are platform-only, and the Kubernetes Operator and Helm chart are community-maintained. Appwrite's installer asks for 2 CPU cores, 4 GB of RAM and 2 GB of swap. It lets you pick PostgreSQL (default), MariaDB or MongoDB as the internal database, runs the same APIs, SDKs and Console as Appwrite Cloud, and hosts many projects per install. Helm charts support managed PostgreSQL, Redis, ClickHouse and S3. To move from Supabase to Appwrite, Appwrite's Migrations tool imports users, databases and files from a Supabase project, but Edge Functions have to be rewritten by hand. Leaving Supabase for any Postgres host is simpler, because your data is already standard Postgres.

Verdict

Pick Supabase when Postgres is the point. If your team thinks in SQL, wants Row Level Security as the one place access rules live, depends on extensions such as pgvector, or needs SAML SSO for business customers without an enterprise contract, Supabase fits better, and its branching and published per-unit prices make it predictable to run in production. Pick Appwrite when you want one platform for more than the database. Sites hosts your Next.js, Nuxt or SvelteKit frontend next to the backend, Messaging covers email, SMS and push, functions run in Python, Go, Dart, PHP and other runtimes rather than TypeScript only, and permissions are role strings rather than SQL. Appwrite also gives more on Pro for the same $25 starting price: 200,000 MAU against 100,000, and 2 TB bandwidth against 250 GB egress. That matters for consumer and mobile apps with many light users. For self-hosting, Appwrite is the easier choice if you want several projects on one server with the same Console as Cloud. Supabase's self-hosted stack runs one project per deployment and drops branching, managed backups and PITR. For a hobby project either free plan works, but both pause idle projects after a week.

All Comparisons

Appwrite vs Supabase — FAQ

Common questions answered from the comparison above

Is Appwrite cheaper than Supabase?

Both Pro plans start at $25 a month, but Appwrite Pro includes more: 200,000 MAU, 2 TB bandwidth and 150 GB storage per project, against Supabase Pro's 100,000 MAU, 250 GB egress and 100 GB file storage. Extra MAU cost $3 per 1,000 on Appwrite and $3.25 per 1,000 on Supabase. Supabase also charges compute per extra project, from $10 a month. For apps with many users or heavy bandwidth, Appwrite usually costs less. For one database-heavy project, the difference is small.

Does Appwrite use PostgreSQL?

Partly. Appwrite's default TablesDB, DocumentsDB and VectorsDB are reached through Appwrite's own APIs and SDKs. Appwrite also offers managed PostgreSQL 18 or 17 (and MySQL) on dedicated compute, where you connect with psql or any driver and can install extensions such as pgvector and PostGIS. When self-hosting, you choose PostgreSQL (default), MariaDB or MongoDB as Appwrite's internal database.

Can I self-host Supabase and Appwrite for free?

Yes. Supabase is Apache-2.0 and Appwrite is BSD-3-Clause, and both self-host with Docker. The difference is scope. Self-hosted Supabase runs one project per stack and lacks branching, managed backups, PITR and the Management API. Self-hosted Appwrite runs many projects in one install with the same Console and APIs as Appwrite Cloud.

Which is better for Flutter or mobile apps?

Both support Flutter, Swift and React Native clients. Appwrite tends to suit mobile teams better because it includes push notifications through Messaging, role-based permissions without SQL, offline sync for databases, and functions in Dart. Supabase is the better fit if your mobile app sits on a relational Postgres schema you also query from other services.

Do Supabase Edge Functions support Python?

No. Supabase Edge Functions are TypeScript running on a Deno-compatible runtime. Appwrite Functions support Python (including a Python ML image), Go, Dart, PHP, Ruby, Java, Kotlin, .NET, Swift, C++, Rust, Node.js, Bun and Deno, although not every runtime is available on Appwrite Cloud.

Can I migrate from Supabase to Appwrite?

Yes. Appwrite's Migrations tool imports users, databases and files from a Supabase project, and Appwrite says usage during migration doesn't count toward your Cloud bill. Edge Functions must be rewritten for an Appwrite runtime, and RLS policies have to be translated into Appwrite permissions or kept inside an Appwrite managed PostgreSQL database.

Get the next comparison by email

One email a week: new and trending developer tools, fresh comparisons, and what shipped. Unsubscribe in one click.