Appwrite

Self-hosted backend as a service

Developer Tools BSD-3-Clause intermediate ★ 57,523 stars

What is Appwrite?

Appwrite is an open-source backend platform providing authentication, databases, storage, serverless functions and realtime APIs. Self-hosting it gives you a Firebase-style backend while keeping all data on infrastructure you control.

Best for

Developers who want a Firebase-like backend they control

Why choose Appwrite

Appwrite is what you self-host when you want Firebase's developer experience without the vendor lock-in or the unpredictable bill. It bundles the things every app needs — authentication, a document database, file storage, serverless functions, realtime subscriptions — behind clean SDKs for web and mobile, so you can start building the product instead of the plumbing. Running it yourself means your users' data sits on your infrastructure, and your costs scale with hardware rather than with usage.

Replaces

  • Firebase
  • Supabase
  • AWS Amplify

Key features

  • Auth with many providers
  • Database, storage and functions
  • Realtime subscriptions
  • Client SDKs for many platforms

What to watch out for

Backend-as-a-service platforms trade control for convenience, and the trade is real. You get a particular data model, a particular query language and a particular set of limits; working around them later is harder than choosing them correctly upfront. Self-hosting shifts operational burden onto you — backups, upgrades, storage growth and security patches all become your job, and a mistake here is a user-data incident. The project also moves quickly, and major versions have historically required migration effort.

How to deploy

  • Docker Compose

Getting started

The one-line installer is genuinely the fastest route, but on anything beyond a toy project move to Docker Compose so you can control the database and storage volumes explicitly. Back up the database and the uploads directory separately — they are two different failure modes. Do the functional and security review of your schema before you write much client code, because changing the data model after you have users is far more expensive than before. Keep the console behind a firewall or VPN; it is an admin panel, not a public page.

Typical setup

Most self-hosted Appwrite instances live on a mid-sized VPS with Docker Compose, alongside the application they serve, though larger deployments separate the database and storage onto dedicated volumes. A frequent arrangement is a staging instance on the developer's own machine and a production instance on a rented server, both configured from the same environment file. Filling the storage volume is the most common operational surprise, so serious setups monitor disk usage from the first week.

Who should look elsewhere

Reconsider if you need deep control over the database layer — a backend-as-a-service gives you a data model and a query language, and fighting them later costs more than choosing correctly now. It is also the wrong choice for anyone who does not want to run infrastructure: self-hosting means you own backups, upgrades and storage limits, and a mistake there is a user-data incident.

Project health

  • GitHub stars: 57,523
  • Last code push: 2026-10-01
  • Open issues: 672
  • Status: actively developed

Figures pulled from the GitHub API and refreshed periodically.

More in Developer Tools