mrkeyoor.com_
Tue 01 Sept 17:39 UTC
Self-Hostedevaluationupdated 30 Aug 2026

appwrite review

Appwrite is a backend platform for web, mobile, and AI applications, available as a managed service or a self-hosted Docker deployment. It combines authentication, databases, file storage, functions, messaging, realtime APIs, and web hosting so a product team does not have to assemble each backend service separately.

+39 / 2dstars / 7d
Verdict

Our Appwrite root npm check installed 1 package in 5 seconds but found no build or test target, so it says nothing about whether the 382,524-line platform is ready to run. Choose Appwrite when its integrated auth, data, storage, functions, messaging, and hosting can replace several services and your team can operate the Docker stack, or use its managed cloud. For a small self-hosted application, PocketBase is much easier to carry; for a Postgres-first system, compare Supabase before committing.

We ran it

Lab card: what happened when we ran appwriteScreenshot of appwrite (appwrite.io)
Install✓ · 5s1 packages · 10 MB
Buildn/ano build script
Testsn/ano test script
Known vulns00 critical · 0 high · 0 moderate · 0 low (npm audit)
Repo3162 files~382,524 lines of source · 107 MB · 12 CI workflows · Dockerfile · tests dir

Answers from our run

Does appwrite build from source?

Dependencies installed in 5 seconds (1 packages), and the project has no separate build step. We cloned commit 2e9aabd into a clean Debian container with 3 CPUs and no project-specific setup.

Does appwrite have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Does appwrite have known vulnerabilities in its dependencies?

npm audit found none in the dependency tree at the time of our run.

Who should not use appwrite?

Small projects seeking a single lightweight executable: the self-hosted Compose file includes databases, Redis, a proxy, executors, schedulers, and many worker roles.

What are the alternatives to appwrite?

Supabase, PocketBase, Nhost. Our Appwrite root npm check installed 1 package in 5 seconds but found no build or test target, so it says nothing about whether the 382,524-line platform is ready to run.

Setup3/5Cloud is simple; self-hosting spans many containers and settings
Docs5/5Product, SDK, self-hosting, upgrade, and contributor paths are covered
Community5/557,160 stars with same-day pushes and active PR discussion
Maturity4/5v1.9.6 and 12 CI workflows, but our full platform tests did not run

Discussed on

  1. hnShow HN: Appwrite – Open-Source and Self Hosted Firebase Alternative326 points
  2. hnShow HN: Open-source Firebase Alternative? It's here153 points
  3. hnAppwrite: A New Open-Source Back End Server for Mobile and Web Developers93 points
  4. hnShow HN: Appwrite 0.12 – Open Source alternative to Google's Firebase45 points
  5. hnShow HN: Appwrite Sites – the open-source vercel alternative44 points

Who it’s for

Product teams that want one API and console for auth, data, files, functions, messaging, realtime events, and hosted sites.
Organizations willing to operate Docker infrastructure to keep application data and backend services under their control.
Web and mobile developers who want maintained client and server SDKs across several languages.
Teams whose backend needs fit Appwrite's built-in products better than a custom collection of services.

Who it’s NOT for

Small projects seeking a single lightweight executable: the self-hosted Compose file includes databases, Redis, a proxy, executors, schedulers, and many worker roles.
Operators whose security policy forbids mounting the Docker socket into an installer container: the documented self-hosting command uses that mount.
Contributors expecting npm test or npm run build at the repository root: neither target exists, and the main server workflow uses PHP, Composer, and Docker.
Teams that cannot own upgrades, backups, domains, mail delivery, storage, queues, and function-runtime capacity but still insist on self-hosting.
Cloud users who must export after exhausting the free database-read allowance: open issue 13397 reports that this blocked a cloud-to-self-hosted export in Appwrite 1.9.6.

Setup reality

Our root npm install succeeded in 5 seconds, adding 1 package and using 10 MB. The repository exposed no npm build target and no npm test target, so both steps were skipped. Npm audit reported 0 known vulnerabilities across that installed root package set.

That npm result does not install or exercise Appwrite itself. Self-hosting needs Docker and uses an installer container with the Docker socket mounted. The platform then needs persistent database and storage configuration, domains, secrets, and provider credentials for features such as OAuth, email, SMS, or external object storage.

The source checkout contained 3,162 files, about 382,524 lines, and occupied 107 MB. It has a Dockerfile, Compose configuration, 12 CI workflows, and a tests directory. Contributor commands use PHP 8.5+, Composer, Swoole 6, and service-specific tests inside containers.

Seven backend products sit behind one Appwrite project

Appwrite puts authentication, databases, storage, functions, messaging, realtime events, and Sites hosting behind one console and API surface. Client SDKs cover web, Flutter, Apple, Android, and React Native. Server SDKs include Node.js, Python, PHP, Go, Rust, and several other languages. For a product team, the attraction is consistent users, permissions, events, and project configuration across services that otherwise arrive from different vendors.

That convenience comes from a large system. Our checkout had 3,162 files, about 382,524 source lines, and occupied 107 MB. The architecture routes REST, Realtime, GraphQL, and S3-compatible traffic through a security layer into product services. Queues feed background workers; cache and databases carry state; an executor runs Functions and Sites workloads. Appwrite is closer to adopting a backend platform than adding a library.

What happened when we ran it

Our sandbox ran npm install at the repository root in 5 seconds. It added 1 package and used 10 MB on disk. The root package is private and declares Prettier for formatting Compose files. Npm audit found 0 known vulnerabilities in that installed package set, with 0 critical, high, moderate, or low findings. This is a narrow JavaScript tooling result.

No npm build script or target existed, so the build step was skipped. No npm test script or target existed, so tests were skipped too. The repository does contain a tests directory and 12 CI workflow files. Its server test command lives in Composer, and the contributor guide runs service-specific PHPUnit checks inside the Appwrite container. Our Node 22 probe did not install Composer dependencies, start Compose, or call an Appwrite API.

Self-hosting starts with Docker and expands into operations

The documented Unix installer runs Appwrite 1.9.6 as a container, publishes port 20080, mounts a local Appwrite directory, and mounts /var/run/docker.sock. The installer uses that access to create the deployment, after which the console is available through a browser. Windows commands are also supplied. A Docker API mismatch has its own documented workaround through DOCKER_API_VERSION.

The public Compose file names far more than 1 service. It includes Traefik, the API, console, realtime process, workers, schedulers, browser and assistant services, an Open Runtimes executor and orchestrator, Redis, ClickHouse, MariaDB, MongoDB, PostgreSQL, and an embedding service. Some roles can be combined, but operators still own persistent volumes, secret values, upgrades, TLS and domains, capacity, logs, backups, and recovery.

The managed cloud removes the stack, not the product choices

Appwrite Cloud is the shortest path because users create a project and connect an SDK instead of installing containers. That is appealing when a team wants Appwrite's APIs without managing the supporting services. Self-hosting becomes worthwhile when infrastructure control, data location, or internal integration matters enough to pay the operational cost. The product model remains the same either way, so SDK work is portable between the two deployment choices.

Migration deserves a trial before depending on that portability. Open issue 13397, filed August 28, 2026, reports that a Cloud Free project which had exhausted its database-read allowance could not complete the documented export to a fresh self-hosted 1.9.6 instance. The request returned HTTP 402 before a migration job was created. That is one reported case, but it is a serious walk-away reason for teams treating export as an emergency exit.

PHP 8.5 and containers are the contributor path

The main server is PHP 8.5 or newer with Swoole 6, despite GitHub labeling TypeScript as the repository's primary language and the root npm manifest being easy to spot first. Composer scripts run PHPUnit, Pint, PHPStan, benchmarks, and refactoring checks. The project instructions warn that whole-project static analysis is slow and recommend targeted checks while developing. Docker Compose builds and starts the services needed for end-to-end tests.

Our 5-second npm install therefore measures only the formatting corner of a 382,524-line repository. A useful contribution environment needs Composer packages, PHP extensions, databases, Redis, containers, and the service under test. The repository has a Dockerfile, a compose file, tests, and 12 workflows, which gives contributors visible machinery. It also means a change to functions, storage, auth, or databases can require different fixtures and containers.

Release 1.9.6 focused on safer self-hosted upgrades

Appwrite 1.9.6 was released on July 22, 2026. Its notes include idempotent migration batches, repair of missing Sites and Functions attributes during upgrades, a side-effect-free health check, waiting for a writable MongoDB primary, better doctor reporting, and more installer time for pulling images. Those are operational fixes, and their presence shows why self-hosted upgrades need version-specific instructions instead of a blind image replacement.

The repository was pushed on August 30, 2026, and GitHub showed 57,160 stars plus 1,022 combined issues and pull requests. Same-day work included an end-to-end test adjustment for Node 22 function cold starts, while other current pull requests covered transactions, storage previews, and worker errors. The queue is large because the platform is large; the recent push and issue activity show it is not dormant.

Appwrite pays off only when several products are useful

Appwrite makes sense when a team would otherwise buy or operate several backend services and wants one permission model, console, SDK family, and event system. Auth plus databases alone may justify a trial, but storage, functions, messaging, realtime, or Sites should also be on the roadmap before accepting the self-hosted stack. Managed Cloud is the more honest default for teams without platform operators.

A small application that needs users, records, and files can be easier to run on PocketBase. A team that thinks in PostgreSQL schemas and SQL policies should compare Supabase. Appwrite is the better choice when its product boundaries match the application and the team wants those services under one roof. Our lab did not validate that full stack, so the next evaluation step is a disposable Compose deployment with one real user flow and a tested backup and restore.

Alternatives

ProjectWhat it isPick it when
Supabase gh↗A Postgres-centered backend platform with auth, storage, realtime, functions, and hosted or self-hosted options.pick this instead when direct PostgreSQL access and its surrounding SQL ecosystem are central to the application.
PocketBase gh↗A compact backend in one executable with an embedded database, auth, files, and realtime subscriptions.pick this instead when deployment simplicity matters more than Appwrite's service range and scaling model.
NhostA Postgres and GraphQL backend platform with auth, storage, and functions.pick this instead when a GraphQL-first Postgres stack is a better match than Appwrite's broader API surface.

What people are saying

  1. [velocity-scout] appwrite/appwrite

Sources

  1. Appwrite repository README
  2. Appwrite contributor architecture and commands
  3. Appwrite Docker Compose services
  4. Appwrite 1.9.6 release notes
  5. Cloud export quota issue
  6. Appwrite self-hosting documentation

More self-hosted reviews

v2 · OpenShell · wigolo · Mindwtr · club-3090 · reclip · the whole board →