Comparison

CrescoDB vs Appwrite

Appwrite and CrescoDB agree on the important thing — you should be able to run your backend yourself. They disagree completely on how much machine that should take. Appwrite is a platform: functions, messaging, hosting, 25+ SDKs. CrescoDB is a toolkit: one process, your database, and code in your repo.

Appwrite details checked September 2026 against appwrite.io/docs and their pricing page. Appwrite is BSD-3-Clause and free to self-host.
('

The quick answer

\n

Skip to the bottom line — then dig into the workflow below.

\n
\n
\n

Choose CrescoDB if you…

\n
    \n
  • want a backend that fits on a $5 VPS and boots in seconds
  • \n
  • want to read the whole thing — one process, your database, plain SQL
  • \n
  • want SQL with real joins across SQLite, PostgreSQL or MySQL
  • \n
  • want features written into your repo as code you edit, not called through an SDK
  • \n
  • want cresco eject — the whole app in a folder, with no vendor left in it
  • \n
\n
\n
\n

Choose Appwrite if you…

\n
    \n
  • want one platform for everything: auth, functions, messaging, hosting, storage
  • \n
  • need push notifications, SMS and email managed for you
  • \n
  • want serverless functions in a dozen languages, deployed for you
  • \n
  • want GraphQL alongside REST
  • \n
  • want SDKs for 25+ platforms maintained by a real team
  • \n
\n
\n
\n', '\n

Side by side

\n

Appwrite does more than CrescoDB. That is the point of the comparison, not a footnote to it.

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
CapabilityCrescoDBAppwrite
Self-hostable — this is the shared premise
What one install costs youOne Node process + your database20+ Docker containers
Memory to run itComfortable on a 1 GB box2 GB minimum, 4 GB recommended
Time from nothing to an APInpx crescodb init && cresco devInstall Docker, compose up, wait, configure
Your data on diskSQLite file, or your own Postgres/MySQLIts own backing store (Mongo, MariaDB or Postgres)
Reading your data without the platform it is just SQLPossible — but it is their schema
Backend code you own and edit real files in your repo you call their SDK
REST API generated from your schema
GraphQL
Auth + roles per-table RBAC plus many OAuth providers
Realtime (SSE)
File storage
Serverless functions write routes in your app many runtimes
Messaging (push/SMS/email)
Static site hosting Appwrite Sites
Client SDKsREST over HTTP from any language 25+ official SDKs
LicenceMIT (CLI & engine) BSD-3-Clause, fully open source
Managed cloudOn the roadmap Appwrite Cloud
\n
\n', '\n

Getting to a working API

\n

Same task both sides: a posts table with auth, running somewhere you control.

\n
\n
\n

CrescoDB

\n
no container runtime, ~2 minutes
\n
    \n
  1. npx crescodb init — a project, instantly.
  2. \n
  3. Add Post to schema.cresco and save.
  4. \n
  5. cresco create auth — register.js, login.js and middleware, written into your repo.
  6. \n
  7. cresco dev — REST API, dashboard and API explorer on localhost.
  8. \n
  9. cresco deploy when you want it on a server you own.
  10. \n
\n
\n
\n

Appwrite

\n
Docker required, longer first run
\n
    \n
  1. Install Docker Engine 24+ and Compose v2 on a box with at least 2 GB of RAM.
  2. \n
  3. Run the install command; Compose pulls and starts 20+ containers.
  4. \n
  5. Create the project and an API key in the console.
  6. \n
  7. Define the collection and its attributes in the console UI.
  8. \n
  9. Set permissions, then install one of the SDKs and write against it.
  10. \n
\n
\n
\n', '\n

The trade, stated plainly

\n
\n

Appwrite's architecture is not accidental complexity — it is what a platform of that scope\n costs. Messaging, functions in a dozen runtimes, static hosting and 25+ maintained SDKs genuinely\n need more than one process. If you want those things, the containers are the price and it is a fair\n one.

\n

CrescoDB has deliberately not built any of that. The result is a backend you can hold in your\n head: one process, one schema file, your own database, and generated code you can open. When\n something breaks at 2am, the surface area you have to reason about is the difference between the two\n approaches.

\n

Ask which failure mode you would rather have: too little platform, or too much of it running on\n a box you are also paying for.

\n
\n', '\n

The honest bottom line

\n
\n

Use Appwrite if you want one vendor for the whole backend — auth, database, functions, push notifications, file storage and hosting — and you are happy to run Docker to get it. It is mature, properly open source under BSD-3-Clause, backed by a real team, and it does more than we do.

\n

Use CrescoDB if what you actually need is a database with a good API in front of it, you want that on a small server, and you want the backend to exist as SQL and code you own rather than as state inside a platform.

\n

The honest gap: Appwrite has a managed cloud today and we do not — ours is on the roadmap. If you want to self-host now and move to managed hosting later without changing tools, Appwrite can do that and CrescoDB cannot yet.

\n
\n')

Try CrescoDB in 30 seconds

No account, no cloud project. One command.

npx crescodb init && cresco dev