Compare

Backlex vs Supabase

Both give you an instant backend over a real database. The difference is where it runs, how you model collections, and how AI agents reach your data.

Supabase is an excellent open-source backend built around a single managed PostgreSQL database, with PostgREST, Realtime, Auth, and Storage on top. Backlex targets a different shape: one codebase that deploys to Cloudflare Workers, Vercel, Netlify, AWS Lambda, Google Cloud & Azure Functions, Deno Deploy, or your own server (Bun, Node, or Deno), runs on either PostgreSQL or SQLite/D1, and ships a first-class runtime MCP server so AI agents can use your backend as a tool.

Backlex Supabase
License Apache-2.0 core + managed Cloud Apache-2.0 + managed cloud
Database PostgreSQL and SQLite / Cloudflare D1 (dual-dialect) PostgreSQL only
Runtimes 9 runtimes — Cloudflare Workers, Vercel, Netlify, AWS Lambda, Google Cloud & Azure Functions, Deno Deploy, or self-host on Bun/Node/Deno — one codebase Managed cloud; self-host via Docker
Edge-native Runs inside the edge runtime, next to the request Regional Postgres + Deno edge functions in front
Collections / schema Managed tables (dynamic, additive-only DDL) or adopt existing tables via a metadata row — no data migration Manage Postgres schema directly (SQL / migrations / Studio)
Schema versions Snapshots, diff between any two points, branching, and scheduled auto-snapshots SQL migrations, `supabase db diff`, preview branching
Database import Import from PostgreSQL, MySQL, a SQLite file, MongoDB, Firestore or DynamoDB — plan → run, resume/cancel, `--since` delta re-sync Migration guides using external tools (pg_dump, pgloader)
Field types text, longtext, number, boolean, uuid, timestamp, json, relation / relation_many, i18n_text Native Postgres column types
REST API Auto-generated; filter/sort/paginate, nested-relation filters (2 hops), expand, aggregation Auto-generated via PostgREST
GraphQL Built in, auto-generated from collections Via pg_graphql extension
Realtime Live row changes streamed to clients over Server-Sent Events (SSE), permission-filtered Postgres logical replication over WebSockets
Permissions Role-based DSL: conditions + field-level allow-lists, one model across REST/GraphQL/realtime Postgres Row-Level Security (SQL policies)
Multi-tenancy First-class — workspaces with isolated data, end-users, auth, SSO & email; one deployment serves many, sessions pinned per tenant DIY via Postgres RLS / separate schemas
Vector search Built in — pgvector (PG) or Cloudflare Vectorize (SQLite/D1); auto-embed on write Built in (pgvector)
Embedding models OpenAI, Workers AI (bge-m3), or self-hosted TEI/Ollama/vLLM Bring your own (OpenAI, etc.)
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 (bring your own LLM via Edge Functions)
MCP server Built-in runtime MCP server — ~149 tools (protocol 2025-11-25) over collections, vector search & admin, with OAuth 2.1 so hosted clients connect without an API key (bearer `pak_` keys still work for headless agents), per-key tool allow-lists + read-only guards Official MCP server (project / database management from dev tools)
Storage + images Files with ACLs, signed URLs; image transforms (resize/format/fit) on Bun in-process or the Cloudflare edge Storage with image transformations
Edge functions Sandboxed functions (QuickJS / worker-thread / remote executor); http/event/cron triggers Edge Functions (Deno)
Extensions Install admin panels, field editors & hooks from npm or an upload; hooks run sandboxed on events or on the cron tick Postgres extensions at the database level
Auth providers Email/password, OAuth, magic link, email-OTP, passkeys, anonymous Email/password, OAuth, magic link, OTP
SSO SAML 2.0 (per-workspace) and LDAP/AD SAML (Pro / Enterprise)
Audit logs Built-in activity trail + opt-in sensitive-read auditing Via Postgres / log drains
Flows (automation) Visual, no-code op-chains triggered by item events Database triggers / functions (no visual builder)
Webhooks Signed webhooks on item CRUD events Database webhooks
Client SDKs 11 first-party SDKs — TS, Python, Go, Rust, Swift, Kotlin, Dart, Java, .NET, Ruby, PHP supabase-js + Flutter, Swift & Python (official); Kotlin, C#, Go (community)
Admin UI + CLI Admin SPA and the `backlex` CLI (migrate, gen-types) Studio + Supabase CLI
Spreadsheet grid + Kanban Editable grid — cell selection, copy/paste, fill-down, undo — plus a Kanban board grouped by status Studio table editor grid; no Kanban view
Live collaboration Presence + field-level awareness on the item form and rows table, with an optimistic-concurrency guard on PATCH Realtime Presence primitives; build the editing UI yourself
Dashboards / BI Insights — embedded dashboards over collections, six chart types, grouping, public iframe embed token SQL editor charts + Reports; embeddable dashboards via external BI
Advisor Schema, permissions & config linter with a score and deep links to each fix Security & Performance Advisors in the dashboard
Tracing + usage metering W3C `traceparent` propagation, an admin Traces panel, OTLP export; per-key usage ledger with limits Logs & metrics (Prometheus-compatible endpoint); usage per project in the dashboard
Messaging (push + SMS) Built in — FCM/APNs/Web Push + SMS (Twilio/Amazon SNS), per-tenant credentials, device & phone registries, templates No first-party messaging (Twilio for auth OTP only)
Batch / transactional writes Bulk + opt-in atomic (all-or-nothing) writes over REST and GraphQL SQL transactions / RPC functions
Background jobs Durable queue — retry with backoff, dead-letter, delayed/scheduled; rides the cron tick, no extra infra Supabase Queues (pgmq) + pg_cron extensions
Resumable uploads TUS 1.0.0 chunked/resumable, native R2 / S3 multipart Resumable uploads (TUS) in Storage
Draft / publish Built-in draft↔published status, dedicated publish permission, scheduled publishing DIY (status column + RLS)
Content localization Per-field translations sidecar (any field type), side-by-side locale editing, compare mode, AI auto-translate of missing keys DIY (locale columns or a translations table)
Public forms Drag-block, multi-step form builder — share a link or embed script, anonymous uploads via signed tickets, conditions + per-locale copy; submissions land in a collection Not built in (third-party form tools)
Feature flags / remote config Built in — rollout-% and permission-DSL targeting, evaluated per caller Not built in
Offline-first sync Incremental changefeed + delete tombstones, client store (IndexedDB) + offline write queue Via PowerSync (third-party)
Auth hardening Per-IP rate-limiting + account lockout, 2FA/TOTP, email verification Managed rate limits on auth endpoints

Collections flow

In Backlex you either let it create a managed table (dynamic schema with an additive-only DDL applier that never drops or rewrites columns) or adopt an existing table by writing a single metadata row — no data migration, foreign keys auto-detected and surfaced as relations. Every collection instantly gets permission-aware REST + GraphQL, realtime, and an admin UI. With Supabase you manage the Postgres schema yourself (SQL, migrations, or the Studio table editor) and wire RLS policies per table.

Vector search & AI

Mark a collection vectorizable and flag the text fields to embed — Backlex auto-embeds on every write and runs approximate-nearest-neighbour search, using pgvector on Postgres or Cloudflare Vectorize on SQLite/D1. Embeddings come from OpenAI, Workers AI (bge-m3), or your own self-hosted model. The same vectors back the Ask-AI / RAG page and the vector.search MCP tool, so agents get semantic search for free. Supabase also offers vector search via pgvector, but you wire the embedding pipeline and any agent access yourself.

When Backlex is the better fit

  • You want your backend to run at the edge (Workers / Vercel / Netlify) instead of in front of a regional database.
  • You're building AI agents and want collections, vector search, and admin actions reachable over MCP with per-key scoping.
  • You need SQLite / D1 as well as Postgres, or want to stay database-portable.
  • You prefer a permissions DSL with field-level allow-lists over hand-written SQL row-level security.
  • You want to adopt existing tables without migrating data.

When Supabase is the better fit

  • You're committed to PostgreSQL and want its large, mature ecosystem.
  • You rely on Postgres Row-Level Security and existing PostgREST tooling.
  • You want a long-established managed platform with a big community.

See the Backlex documentation or the source on GitHub to get started. Self-hosting is free under Apache-2.0; the managed Cloud is optional.