The guys at Strapi are aiming at eliminating the boilerplates of creating, managing and maintaining an API. And they're good at it.

Hitting that File -> New... on a new API project always brings that "here we go again..." feeling, that I personally really hate. Strapi is a headless*, opinionated but highly customizable, extendable, code generating, production ready CMS that alleviates some of that pain.

It's based on NodeJS, KOA and React and integrates with many of the leading databases (both SQL and NoSQL), but its most powerful feature seems to be its management dashboard.

Here at Hippotec (where I serve as CTO), we fell in love with Strapi pretty much from the get-go, and it's already powering projects for a couple of our customers.

Headless*

Strapi is headless - meaning it does not come with a frontend.
The little * in the header signifies that while the developer doesn't get a client facing frontend, you do get a very powerful admin panel.

This admin panel is Strapi's wheel behind its engine. It has a model editor that creates and manages the schemas, tables, objects and their connections. Oh.. and also migrations for when you need to change things in production.

aa5bb9eeccf747bc88a54848e6af7978

Opinionated

This is the good kind of "opinionated". NodeJS, KOA, React, GraphQL, MySQL, Mongo, SQLite - these are all well established technologies that would have probably been chosen by Strapi's target audience anyways. The developer gets a neat stack where everything is deploying and working together great, while still maintaining a very high level of customizability.

Highly customizable

The entire Strapi stack is open source. The developer's generated code is of course open source. The produced schema and ORM is not in concrete. The developer is free to use whatever plugin, middleware, library or code snippet he's used to, not to mention Strapi's own bootsrap marketplace for plugins. This is OSS at its purest form.

Code generating

Suppose the developer adds a new model and some connections. A full KOA CRUD API route is immediately generated for him. Slap in the graphQL plugin and you also get a GraphQL explorer and API to follow. Need a favorite middleware or a security mechanism? Just code it straight in.

It's not a codeless GUI approach to creating services. On the contrary - Strapi employs a boilerplate-less approach to coding services.

The emphasize here is on coding.

Production ready

The burden of proving this is of course on the Strapi crew. At Hippotec we've already deployed to AWS 2 products based on Strapi, serving both web and mobile frontends to and we're pleased with the process.

Also - the entire stack has a proven production track record and whatever the developer might feel needs more fortification or just plain fixing (Microservices!) can be easily baked into the process.

What's not to like

There are some pains of course. During the alpha phase, Strapi was divided into 2 separate packages: the admin and the engine. While switching to the beta lane these were unified, which made making modifications to the admin while being able to update Strapi regularly quite hard.

The team

Strapi is mainatined by the Strapi company, which employs a talented group of young ex web freelancers. Having recently secured a round of $3.49 million, the future looks brihght.

Where to next

Here be tutorial and here is Strapi's future roadmap. I like to visit this page from time to time and fantasize.
I'm planning on a much more technical article down the road, so stay tuned (or subscribe).
And of course, Strapi is not alone in the headless CMS market: there is Express-Admin, good old Parse and so many others.