move strapi content into schema-as-code

put the model in git, store entries in real Postgres tables, and keep the Studio generated from code instead of clicks.

pepper — migration

pepper migrate --from strapi

reading strapi content types

mapping fields to chili.config.ts

flagging plugin-specific fields for review

generated an import plan for review

done. your content is ready for Postgres.

SQLquery your content directly60sfrom container to first entry$0self-host, free foreverApache-2.0core licence, no CLA

chilicms vs strapi, marked where we lose

we print our losses in the same table as our wins. if a row matters to you and we lose it, you should know before you switch.

chilicms vs strapi, marked where we lose — we print our losses in the same table as our wins. if a row matters to you and we lose it, you should know before you switch.
capabilityChiliCMSStrapi
schema lives in version controlschema-as-code in chili.config.ts; the GUI is generated from it
real Postgres tables you can querypoint psql at your content; no abstracted content store
delivery APIs from one modelREST today, GraphQL for built-ins, and a generic SDK helper while generated clients mature
tenant isolation enforced in the databaseFORCE ROW LEVEL SECURITY per table, not app-code you have to trust
draft-vs-published as a first-class stateevery save is a draft; published gets a dedicated green + label
one-command migration off the incumbentpepper migrate --from hygraph today; --from strapi in beta
plugin marketplace and ecosystem maturityStrapi has a 5-year plugin ecosystem; ours is new and small
self-managed cloud product you can buyStrapi Cloud is GA; ChiliCMS Cloud is in private beta
self-host free forever, no feature paywallApache-2.0 core; enterprise add-ons are BSL, free under 10 seats
direct SQL access
starting price (managed)$29/mo$15/mo

the difference is schema-as-code on real postgres

your model lives in chili.config.ts and your content lives in tables you can query. the Studio is generated from the schema, not the other way around.

postgres-native, not postgres-backed

your content lives in real Postgres tables you can query, index, and back up. no proprietary store, no lock-in — point psql at it and read.

rest today, graphql where it fits

REST is the stable delivery path today. GraphQL covers the built-in content graph, and the SDK gives a typed helper while generated per-model clients mature.

self-host, free forever

Apache-2.0 core, no feature paywall. one container plus your Postgres. deploy it on a $40 box and keep your data.

multi-tenant on row-level security

tenant isolation is enforced in Postgres with FORCE ROW LEVEL SECURITY, not in app code you have to trust.

tiptap editing, draft until you publish

a real rich-text editor on Tiptap. every save is a draft; nothing goes live until you publish it.

flat studio, fast editing

the Studio keeps gradients out of data surfaces so repeated editing stays calm. your content path is one app container plus Postgres.

read it however your app already talks

rest ships from the same model today, graphql covers the built-in content types, and the sdk gives a generic typed helper while generated per-model clients mature.

read content

bash
curl https://api.chilicms.dev/v1/posts \
  -H "Authorization: Bearer $CHILI_TOKEN"

where strapi wins today

we are months old and Strapi is five years in. here is what they do better right now, in plain words.

Strapi has a real plugin ecosystem. You do not.

True. Strapi has shipped since 2021 and has hundreds of community plugins, providers, and integrations. ChiliCMS is months old; our plugin surface is small and our marketplace does not exist yet. If your build depends on an existing Strapi plugin, check our list before you switch.

You cannot buy a managed ChiliCMS today.

Mostly true. Strapi Cloud is generally available and you can swipe a card right now. ChiliCMS Cloud is in private beta. Today the honest answer is self-host: one container plus your Postgres. If you need a vendor-run plane this quarter, Strapi Cloud ships and ours does not.

Strapi has a bigger community and more Stack Overflow answers.

Also true. Five years of adoption means more tutorials, more hires who already know it, and more answered questions. We are early. Our bet is that schema-as-code and a calmer Studio earn the switch; we will not pretend the community gap is closed.

pricing that scales with your content, not your traffic

we charge for workspace shape — members, environments, locales, entries. no per-call metering, no surprise bills. self-host the Apache-2.0 core free, always.

  • Free

    self-host or evaluate, no card

    $0forever
    • 1 project
    • 2 members
    • 1 environment
    • 1 locale
    • 10k entries
    • community support
    Start free
  • Pro

    solo devs and small product teams

    $29/ project / mo
    • 3 environments
    • 5 members
    • 3 locales
    • 100k entries
    • custom Studio domain
    • email support
    Start self-hosted
  • Team

    most teams

    funded startups and mid-market teams

    $199/ project / mo
    • 5 environments
    • 15 members
    • 10 locales
    • 1M entries
    • RBAC, audit log, scheduled publishing
    • preview tokens, priority support
    Start self-hosted
  • Enterprise

    regulated and 50+ seat orgs

    $1.5k–$8k/ mo, annual
    • unlimited everything
    • SSO / SAML, SCIM
    • SOC 2 report, custom DPA
    • 99.95% SLA, multi-region
    • dedicated Slack, on-prem option
    Email sales

enterprise features (SSO, audit log, SAML) are BSL-licensed — free to self-host under 10 seats, paid above. the core stays Apache 2.0.

leaving strapi, answered

Why leave Strapi at all?

The usual reasons we hear: the v3 to v4 to v5 migrations broke plugins and ate weekends, the admin UI feels a decade old, and the content store is hard to query directly. ChiliCMS keeps the schema in version control and puts your content in real Postgres tables you own. If Strapi works for you, stay; we only win the people it burned.

Can I migrate my Strapi content to ChiliCMS?

A --from strapi importer is in beta now. It reads your content types, maps them into chili.config.ts, and writes the migrations plus row-level-security policies. The Hygraph path is further along; the Strapi path should be tested against your own export before you commit.

Does ChiliCMS run on the Postgres I already pay for?

Yes. ChiliCMS runs on your Postgres 16+ with row-level security on every tenant table. No separate datastore, no Redis. The bill stays one app container plus the database you already know how to operate.

Is the schema really code, not a database of UI clicks?

Yes. Your content model is canonical in chili.config.ts and the Studio generates the editing UI from it. You review a schema change as a pull request, not as a GUI you have to undo. Strapi can describe types in code too, but its content-type builder writes back into the database, so the GUI stays the source of truth.

What does it cost?

Self-host is free forever under Apache-2.0, with no feature paywall and no seat caps. Managed Pro starts at $29 per project per month; Team is $199 and adds RBAC, audit log, and scheduled publishing. The Enterprise floor is printed publicly, so there is no contact-us wall under $5k.

move your content onto your own postgres

self-host the Apache-2.0 core free, or start managed in 60 seconds. the strapi importer is in beta now.