Compare

backlex vs Appwrite

Both are open-source backends with auth, storage, functions, and an admin console. backlex adds edge deployment, runs on PostgreSQL/SQLite and adopts your existing tables, and ships built-in vector search with a runtime MCP server.

Appwrite is a popular open-source Firebase alternative — a self-hosted (Docker Compose) or cloud BaaS that bundles auth, a managed store, storage, functions, and realtime behind broad client SDKs. backlex covers the same surface but is built to run at the edge — the same codebase deploys to Cloudflare Workers, Vercel, Netlify, AWS Lambda, Google Cloud & Azure Functions, Deno Deploy, or your own server (Bun, Node, or Deno) — sits directly on your relational database, ships built-in semantic/vector search, and exposes a first-class runtime MCP server so AI agents can use your backend as a tool.

backlex Appwrite
License Apache-2.0 BSD-3-Clause
Runtimes 9 runtimes — Cloudflare Workers, Vercel, Netlify, AWS Lambda, Google Cloud & Azure Functions, Deno Deploy, or self-host on Bun/Node/Deno Self-host via Docker Compose, or Appwrite Cloud
Edge-native Runs inside the edge runtime No — Docker / server containers
Database PostgreSQL and SQLite / Cloudflare D1 Appwrite-managed store (TablesDB)
Data model Managed tables (dynamic, additive-only DDL) or adopt existing tables via a metadata row Appwrite-managed collections — no adopting existing SQL tables
REST + GraphQL Both, auto-generated; nested-relation filters, expand, aggregation REST, GraphQL & Realtime APIs
Realtime Live row changes streamed to clients over Server-Sent Events (SSE), permission-filtered WebSocket subscriptions
Permissions Role-based DSL: conditions + field-level allow-lists, one model across APIs + realtime Per-document / collection permissions (roles, users, teams)
Multi-tenancy First-class — workspaces with isolated data, end-users, auth, SSO & email; one deployment serves many, sessions pinned per tenant Projects isolated; teams group users, but no per-tenant data isolation in one project
Vector search Built in — pgvector or Cloudflare Vectorize; auto-embed on write Not built in (integrate Pinecone, Qdrant, Weaviate, etc.)
Embedding models OpenAI, Workers AI (bge-m3), or self-hosted TEI/Ollama/vLLM
AI agent runtime Built in — define agents that reason over your data and call your tools (DSL-scoped) in a persisted thread, with per-thread vector memory + live step streaming Not built in (build on Functions yourself)
MCP server Built-in runtime MCP server — collections, vector & admin to agents, per-key tool allow-lists + read-only guards Official MCP server (databases, functions, sites)
Storage + images Files with ACLs, signed URLs; image transforms on Bun in-process or the Cloudflare edge File storage with image transformations
Edge functions Sandboxed functions — http / event / cron triggers Functions (many runtimes, container-based)
Automation Visual, no-code op-chains on item events Event triggers / functions
Webhooks Signed webhooks on item events Webhooks on events
Auth providers Email/password, OAuth, magic link, email-OTP, passkeys Email/password, OAuth (many), phone, magic URL, anonymous
SSO SAML 2.0 + LDAP/AD (per workspace) OAuth / OpenID; SAML on Cloud (Enterprise)
Audit logs Built-in activity trail + opt-in sensitive-read auditing + revisions Activity / usage logs
Client SDKs 11 first-party SDKs, hand-written & typed (TS, Python, Go, Rust, Swift, Kotlin, Dart, Java, .NET, Ruby, PHP) Broad SDK matrix across many languages (code-generated)
Admin UI + CLI Admin SPA and the `backlex` CLI (migrate, gen-types) Console + CLI
Messaging (push + SMS) Built in — FCM/APNs/Web Push + SMS (Twilio/Amazon SNS), per-tenant credentials, registries & templates Messaging (push / SMS / email)
Batch / transactional writes Bulk + opt-in atomic (all-or-nothing) writes over REST and GraphQL Per-document writes (no atomic batch)
Background jobs Durable queue — retry with backoff, dead-letter, delayed/scheduled Functions (no durable retry / dead-letter queue)
Resumable uploads TUS 1.0.0 chunked/resumable, native R2 / S3 multipart Chunked uploads
Draft / publish Built-in draft↔published status, dedicated publish permission, scheduled publishing Not built in
Feature flags / remote config Built in — rollout-% + permission-DSL targeting, evaluated per caller Not built in
Offline-first sync Incremental changefeed + tombstones + client store (IndexedDB) + offline write queue Not built in
Auth hardening Per-IP rate-limiting + account lockout, 2FA/TOTP, email verification Built-in rate limits + abuse protection

Your relational database, not an abstracted store

Appwrite manages its own store and exposes it through SDK collections — you don't point it at an existing SQL database. backlex runs directly on PostgreSQL or SQLite / Cloudflare D1: it can create managed tables with an additive-only DDL applier, or adopt an existing database by writing a metadata row, auto-detecting foreign keys as relations with no data migration. Your data stays in plain SQL tables you can query with anything.

Vector search & AI

backlex builds semantic search into the backend: flag a collection's text fields and it auto-embeds on write and runs ANN search via pgvector or Cloudflare Vectorize, with embeddings from OpenAI, Workers AI, or a self-hosted model — and the same vectors reach agents through the vector.search MCP tool and the Ask-AI / RAG page. Appwrite ships an official MCP server and rich SDKs, but semantic/vector search isn't native — you connect an external vector database such as Pinecone, Qdrant, or Weaviate.

When backlex is the better fit

  • You want to deploy at the edge on Workers, Vercel, or Netlify instead of running Docker containers.
  • You want your data in a relational database you own — and the option to adopt tables you already have.
  • You want built-in vector search and native MCP access for AI agents.
  • You want one permissions DSL that also filters realtime and sandboxed functions.

When Appwrite is the better fit

  • You want an even broader auto-generated SDK matrix across many languages and mobile platforms — Appwrite code-generates a very wide set.
  • You prefer an all-in-one Docker Compose stack and don't need edge deployment.
  • You're happy with an abstracted document/collection store rather than direct SQL.

See the backlex documentation or the source on GitHub to get started. backlex's core is free and open under Apache-2.0; the managed Cloud is optional.