What we build with it

Strapi solves a specific and very common problem: the client needs to change content without a developer, and the product needs that content over an API rather than as rendered pages.

You define content types, and you get an admin interface, role-based permissions, media handling and a REST or GraphQL API. The front end — a Nuxt site, a Vue app, a Flutter client — consumes that API and stays entirely unaware of how editors work.

It is self-hosted and extensible in code, which is what separates it from a SaaS CMS: the data is in your own PostgreSQL, and custom endpoints or lifecycle hooks are ordinary code in your repository rather than a feature request to a vendor.

Where it fits

Content-led products where a marketing or editorial team publishes independently — landing pages, catalogues, help centres, in-app copy that changes without a release.

When we recommend it

When non-developers genuinely need to edit content, and when you want to own the data and the deployment.

Not for content that only developers touch. This site's content is Markdown in the repository, reviewed alongside the code, because the people writing it are the people shipping it — a CMS there would add an admin, a database and a deployment to solve a problem nobody has. And if the content model is trivial and never changes, a CMS is more moving parts than the job needs.