Blog

A Strapi alternative for app backends, not content sites

Need a Strapi alternative for app backends rather than a CMS? Kanesh is a small self-hosted data backend with REST, GraphQL, roles and MCP.

If you want a backend for an app, not a content management system, Kanesh is a Strapi alternative built around data: typed collections, relations, REST, GraphQL and per-collection roles in one small container. Strapi has a CMS focus and is the better fit for content-heavy sites. Kanesh is new, at its first stable release, so check the gaps below before you commit.

A CMS and an app backend are different shapes

Strapi is a headless CMS. Its community edition is MIT licensed, with enterprise code under a separate license, and it runs on SQLite, PostgreSQL, MySQL or MariaDB. For websites where editors manage content, that focus is a strength.

An app backend asks for different things. You need tables that match your domain, relations that the database enforces, an API your client code can rely on, permissions per collection, and a way to inspect and fix data. You may not need anything that resembles editorial work.

What an app backend needs

  • Typed fields: string, text, integer, float, boolean, datetime, json, file and image.
  • Relations with real foreign keys, so the database rejects broken references.
  • Indexes of up to four fields, optionally unique, for the queries your app runs.
  • REST and GraphQL on every collection without writing controllers.
  • An OpenAPI 3.1 export generated from the live schema, so docs do not drift.
  • Roles and policies that apply the same way to every request.
  • Bounded CSV and JSON import and export for moving data in and out.

What Kanesh provides

You create collections and fields in the Studio. Kanesh writes the SQL tables and serves the API right away. Relations (N:1, 1:N and N:N with junction tables) use real foreign keys on SQLite and PostgreSQL, and the Studio draws a schema graph so you can see how collections connect.

A list request needs no code:

curl -H "Authorization: Bearer $KANESH_TOKEN" \
  http://127.0.0.1:8080/api/v1/workspaces/WORKSPACE_ID/collections/orders/records

The REST response uses a data and meta envelope, with filters, sort and lookups. Access follows five roles (Owner, Administrator, Editor, Viewer and Public), up to 20 custom roles and 50 policies per workspace, and CRUD overrides per collection. Read access control for the details.

Strapi and Kanesh side by side

KaneshStrapi
FocusData backend for apps and agentsHeadless CMS and content framework
LicenseAGPL-3.0 core; 1 workspace free, unlimited workspaces + AI assistant $9/month per installMIT community edition, enterprise code under a separate license
DatabasesSQLite, PostgreSQL, MySQLSQLite, PostgreSQL, MySQL, MariaDB
APIsREST, GraphQL, OpenAPI 3.1 exportNot compared here
AI agentsOpt-in read-only MCP endpointNot compared here
FootprintOne Docker image, about 8.9 MBNot compared here
MaturityNew, first stable releaseProduction CMS

What you give up

Kanesh has no hooks and no SDKs yet, so custom server logic stays in your own service, which calls REST or GraphQL. There is no realtime, no OAuth or SSO and no workflows, and all three are on the roadmap. If you need a mature CMS with an ecosystem around it, choose Strapi.

FAQ

Is Kanesh a headless CMS?

No. Kanesh is a data backend for apps and agents. You can store posts, authors and tags, as the blog use case shows, but it is built for application data rather than editorial work.

Which databases does Kanesh support compared with Strapi?

SQLite is the default, and PostgreSQL and MySQL are supported. MariaDB is not on Kanesh’s supported list. If Kanesh cannot reach the external database you chose, it stops instead of falling back to SQLite. See database setup.

How do the licenses compare?

Strapi’s community edition is MIT, and its enterprise code is licensed separately. The Kanesh core is AGPL-3.0 and free to self-host for one workspace. Unlimited workspaces and the in-Studio AI assistant need a Pro license at $9 per month per install, and that Pro code in ee/ is under the Kanesh Commercial License (draft). See pricing.

Next steps

Run it with Getting started, or read the full Kanesh vs Strapi comparison.

Buy me a coffee