Compare

backlex vs Strapi

Both give you an admin app and an instant API over your content. backlex adds edge deployment, a fully Apache-2.0 core (no Enterprise tier for SSO or audit logs), built-in vector search and realtime, and the ability to adopt your existing database.

Strapi is the most popular open-source headless CMS — a Node.js app where you define content types in an admin panel and serve them over REST or GraphQL. backlex shares the "instant API + admin" idea but is built as a data platform for 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), the whole core is Apache-2.0, and it ships realtime, vector search, and a first-class runtime MCP server so AI agents can use your backend as a tool.

backlex Strapi
License Apache-2.0 MIT community core; SSO, audit logs & advanced RBAC are paid Enterprise
Runtimes 9 runtimes — Cloudflare Workers, Vercel, Netlify, AWS Lambda, Google Cloud & Azure Functions, Deno Deploy, or self-host on Bun/Node/Deno Node.js (self-host or Strapi Cloud)
Edge-native Runs inside the edge runtime No — Node server
Database PostgreSQL and SQLite / Cloudflare D1 PostgreSQL, MySQL, MariaDB, SQLite
Data model Managed tables (dynamic, additive-only DDL) or adopt existing tables via a metadata row Strapi-owned content types — it manages its own tables
REST + GraphQL Both, auto-generated; nested-relation filters, expand, aggregation REST built in; GraphQL via plugin
Realtime Live row changes streamed to clients over Server-Sent Events (SSE), permission-filtered Not built in
Permissions Role-based DSL: conditions + field-level allow-lists, one model across APIs + realtime Roles & permissions; field-level + advanced RBAC in Enterprise
Multi-tenancy First-class — workspaces with isolated data, end-users, auth, SSO & email; one deployment serves many, sessions pinned per tenant Not built in (DIY or separate instances)
Vector search Built in — pgvector or Cloudflare Vectorize; auto-embed on write Not built in (Meilisearch / external)
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 (custom code / external)
MCP server Built-in runtime MCP server — collections, vector & admin to agents, per-key tool allow-lists + read-only guards MCP via community plugin (CMS content)
Storage + images Files with ACLs, signed URLs; image transforms on Bun in-process or the Cloudflare edge Media library with upload providers; image formats via sharp
Edge functions Sandboxed functions — http / event / cron triggers Lifecycle hooks, controllers & services (Node)
Automation Visual, no-code op-chains on item events Custom code / plugins
Webhooks Signed webhooks on item events Webhooks on content events
Auth providers Email/password, OAuth, magic link, email-OTP, passkeys Email/password + OAuth (Users & Permissions plugin)
SSO SAML 2.0 + LDAP/AD (per workspace) SAML / OIDC (Enterprise only)
Audit logs Built-in activity trail + opt-in sensitive-read auditing + revisions Enterprise only
Client SDKs 11 first-party SDKs — TS, Python, Go, Rust, Swift, Kotlin, Dart, Java, .NET, Ruby, PHP Strapi client (JS/TS) + REST/GraphQL
Admin UI + CLI Admin SPA and the `backlex` CLI (migrate, gen-types) Admin panel + CLI
Messaging (push + SMS) Built in — FCM/APNs/Web Push + SMS (Twilio/Amazon SNS), per-tenant credentials, registries & templates Not built in (community plugins)
Batch / transactional writes Bulk + opt-in atomic (all-or-nothing) writes over REST and GraphQL Limited (no atomic batch endpoint)
Background jobs Durable queue — retry with backoff, dead-letter, delayed/scheduled Not built in (cron plugin)
Resumable uploads TUS 1.0.0 chunked/resumable, native R2 / S3 multipart Not built in
Draft / publish Built-in draft↔published status, dedicated publish permission, scheduled publishing Draft & Publish (core)
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 Basic rate limiting (plugin)

Your database vs an owned content model

Strapi owns its schema: you model content types in the admin and Strapi manages the underlying tables. backlex can do the same with managed tables (a dynamic, additive-only DDL applier that never drops or rewrites columns), but it can also adopt an existing database — point it at a table and it writes a metadata row, auto-detecting foreign keys as relations, with no data migration. That makes backlex a fit for wrapping a database you already run, not just greenfield content.

Vector search & AI

Semantic search is part of the backend in backlex, not a bolt-on. 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 are exposed to agents through the vector.search MCP tool and the Ask-AI / RAG page. Strapi has no built-in semantic search; you wire up Meilisearch or an external vector database.

When backlex is the better fit

  • You want to deploy at the edge on Workers, Vercel, or Netlify instead of running a Node server.
  • You want SSO, audit logs, and field-level permissions in the open-source core, not behind a paid Enterprise tier.
  • You want to adopt an existing database, plus built-in realtime and vector search.
  • You want native MCP access so AI agents can read & write through your permissions.

When Strapi is the better fit

  • Your team is editorial-first and wants a mature, content-focused authoring experience and publishing workflow.
  • You want the large Strapi plugin marketplace and a long-established ecosystem.
  • You need MySQL/MariaDB support and a Node.js server fits your infrastructure.

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.