Appwrite 2.0 is the most consequential release yet for the open-source backend platform, and it arrives at a moment when engineering teams are actively re-evaluating vendor lock-in across their stack. This Appwrite review breaks down what version 2.0 actually ships — reported database throughput gains of up to 35x, full-stack static and SSR site hosting, enterprise SSO, and a migrations hub targeting Firebase and Supabase users — and analyzes where the platform genuinely beats incumbents, and where it still does not.
What Is Appwrite 2.0? Core Architecture Explained
Appwrite is an open-source, self-hostable Backend-as-a-Service (BaaS) distributed under a BSD-3-Clause license, with a community of 45,000+ GitHub stars. Architecturally, it is a fleet of containerized microservices — Accounts, Databases, Storage, Functions, Realtime, Messaging, and now Sites — that expose both REST and GraphQL APIs behind a single gateway. This means every capability is SDK-agnostic at the protocol level: you can drive the entire platform with plain HTTP if you want to, a meaningful difference from Firebase, whose SDKs are the primary interface.
Three Deployment Models
- Self-hosted (Docker Compose): A single docker compose up boots the full stack on any VPS — full data sovereignty, no egress fees.
- Self-hosted (Kubernetes): Official Helm charts with horizontal scaling for Functions execution and database replicas in production topologies.
- Appwrite Cloud: A managed control plane with a permanent free tier, usage-based Pro pricing, and SOC 2-aligned enterprise infrastructure.
Native SDKs cover Web, Flutter, Android, iOS, React Native, and server-side runtimes including Node.js, Python, PHP, Dart, Ruby, Deno, and Go — with unified versioning across all SDKs, which reduces upgrade friction in polyglot teams.
The Headline Change: Database Performance in Appwrite 2.0
The centerpiece of the 2.0 release is a rebuilt database engine. Appwrite reports benchmarks of up to 35x faster reads and up to 20x faster writes versus 1.x — gains delivered through internal query-path optimization and smarter attribute indexing rather than a storage-engine swap. The underlying datastore remains MariaDB, wrapped in Appwrite's document-model API: schema is defined as typed attributes per collection, with relationships (one-to-one, one-to-many, many-to-many) supported since the 1.x line.
Practical implications for application design:
- Attribute-level indexes now materially change query plans — composite and fulltext indexes become a first-class performance lever, not a nicety.
- Cursor-based pagination and projection-style attribute selection reduce payload size on hot read paths.
- Permissions live at the document level (role- and user-based), enforced inside the database read path — security rules and queries are a single operation, unlike Firestore-style rule evaluation layers.
Caveat: these figures come from Appwrite's own benchmarks. Run your own workload profiling, but the directional improvement is real and observable in migration reports.
Appwrite Sites: Full-Stack Hosting Without a Second Vendor
Version 2.0 introduces Sites: deploy static frontends and server-side rendered applications directly from a Git repository, built on the same execution infrastructure as Functions. Key technical details:
- Automatic build pipelines on push, with branch-scoped preview deployments for review workflows.
- SSR support via integrated runtimes — the same codebase can serve dynamic routes without a separate Node hosting contract.
- Global CDN distribution and automatic SSL on Appwrite Cloud; self-hosted users route through their own reverse proxy.
- Direct SDK access to Databases and Auth from SSR contexts — the frontend and backend share one permission model.
This collapses the typical stack of hosting provider + BaaS + auth vendor into a single platform, which is precisely the consolidation argument Appwrite is making against Firebase Hosting + Cloud Functions.
Authentication: The Deepest Feature Surface in the Platform
Appwrite's Auth service remains its most mature subsystem, and 2.0 pushes it into enterprise territory:
- 30+ OAuth2 providers, plus email/password, email OTP, magic URL, and phone/SMS flows out of the box.
- TOTP-based multi-factor authentication and recovery codes at the platform level — no third-party dependency required.
- Enterprise SSO via SAML 2.0 and OIDC, enabling Okta, Azure AD, and Google Workspace identity federation.
- Teams with granular roles (owner, member, guest) mapped onto resource-level permissions — RBAC without a custom authorization layer.
- Full session lifecycle control: device-scoped sessions, token expiry windows, and anti-CSRF primitives enforced by the API itself.
Functions 2.0 and Event-Driven Execution
Serverless Functions in Appwrite execute against 50+ runtimes — including Dart, Swift, Kotlin, .NET, Java, PHP, Ruby, Deno, Bun, Node, and Python — built on the open Open Runtimes specification, with custom Docker images supported when you need native extensions. Functions trigger on three event classes:
- System events: database inserts/updates/deletes, auth lifecycle events, storage uploads.
- Schedules: CRON expressions managed through the console UI or Infrastructure-as-Code.
- HTTP execution: functions exposed as REST endpoints with configurable domains and auth scopes.
Cold-start behavior improved materially in the 2.0 line, and because self-hosted users control replica counts, execution concurrency becomes a tunable infrastructure parameter instead of an opaque platform quota.
Storage, Realtime, and Messaging
- Storage: S3-compatible object storage with antivirus scanning, on-the-fly image crops and transformations, compression, and per-file ACLs — effectively a lightweight Cloudinary replacement.
- Realtime: WebSocket subscriptions scoped to documents, collections, files, and even specific users — subscribe to any API resource you can read, with no additional configuration.
- Messaging: Unified push (APNs, FCM), email (SMTP + providers), and SMS providers behind one API, with per-provider rate limits and delivery logs.
Enterprise Readiness: SSO, Audit Logs, and On-Prem
Appwrite 2.0 ships the compliance surface that unblocks regulated buyers: SAML/OIDC SSO for organization members, organization-level audit logs capturing administrative and data-plane activity, role-based access to the console itself, and formal on-premise/private-cloud deployment for the Enterprise tier. For teams operating under GDPR or data-residency mandates, self-hosting the full stack inside your own VPC remains the strongest lock-in escape hatch available in the BaaS category.
The Migrations Hub: A Direct Shot at Firebase and Supabase
Appwrite 2.0 ships first-party, console-driven importers for Firebase, Supabase, AWS Amplify, NHost, and 8base, covering auth users, database documents, storage files, and function scaffolding. The engineering signal here matters as much as the tooling: Appwrite is explicitly positioning itself as the exit path for teams facing Firebase pricing shocks (per-read metering at scale) or Supabase operational complexity. Expect rough edges on schema edge cases, but the migration surface is genuinely usable rather than marketing-ware.
Appwrite vs. Firebase vs. Supabase: Where Each Wins
- vs. Firebase: Appwrite wins on open-source licensing, self-hosting, REST/GraphQL access without SDK lock-in, and SAML SSO on lower tiers. Firebase wins on mature tooling (Crashlytics, Remote Config, A/B testing) and Cloud Run-backed Functions at hyperscaler scale.
- vs. Supabase: Supabase wins if you need a real relational engine — Postgres with row-level security, SQL joins, and extensions like PostGIS. Appwrite wins on multi-platform SDK consistency, a broader managed feature set (Messaging, Sites, MFA), and a document model that is friendlier to schema-flexible product iteration.
- vs. DIY microservices: Appwrite eliminates weeks of auth, storage, and realtime plumbing; the trade is operational ownership of that stack when self-hosting.
Pricing Model
- Self-hosted: Software is free forever — you pay only infrastructure.
- Cloud Free: A permanent tier suitable for prototypes and small production apps.
- Cloud Pro: Usage-based (reads, writes, bandwidth, storage, function executions) with no per-seat costs — verify current quotas directly on the pricing page, as limits have shifted release to release.
- Enterprise: Custom contracts with SSO, audit logs, on-prem deployment, and SLAs.
Trade-offs You Should Price In
- No managed SQL: The document database is powerful but is not Postgres — complex analytical queries and joins across relationships carry design cost.
- Younger ecosystem: Community templates, tutorials, and hiring pool trail Firebase significantly.
- Self-hosting is real ops work: Upgrades, backups, and replica tuning are yours; budget accordingly or use Cloud.
- Cloud region coverage is thinner than hyperscaler footprints — latency-critical global products should validate region availability first.
Verdict: Who Should Build on Appwrite 2.0
Appwrite 2.0 is the right call for teams that want platform-level velocity — auth, database, storage, functions, realtime, and now hosting in one deployable unit — without surrendering data ownership or API access to a closed SDK contract. The 2.0 release specifically resolves its two historical weaknesses: raw database performance and enterprise identity, which together unblock both startup MVPs and regulated mid-market workloads. For heavily relational or analytics-first systems, Supabase or direct Postgres remains the stronger default.
You can evaluate Appwrite 2.0 on Product Hunt or go straight to the source with Appwrite's official documentation and self-hosting quickstart.
If you would rather ship on this stack than evaluate it, our edge-optimized web development services cover Appwrite-based backend architecture end to end — and you can see it applied in production across our portfolio of shipped products.