Is it possible to create a great cms ?

Posted on: 2020-10-12

I hate headless CMS... I mean I love the concept but hate the (most of) the executions. Let me explain :

If you are considering using a headless CMS, it probably means that:

  • you are a developper (and you or your team will most certainly be the one that build the frontend on top of that CMS - if there is even one)
  • the admin section that allows a user to edit the data is most likely not only for you, but for someone working with you (a client or someone in your company who does not have the dev skills)
  • if you are working in a company, chances are you will need this system to be deployed on different environments, and you want to be able to make changes once and deploy them in different environments or even for different clients.

The problem with most (headless) CMS...

  • they store the information about the content types you created in the database (making it hard to reproduce changes in several environments)
  • they assume that the person using the admin UI will be the same person who is configuring/deploying the CMS (when it's probably not). A lot of them don't even provide a "granular" admin where we can show/hide different sections depending on the users' roles
  • they try to provide a UI to configure things that will probably be configured by a developer who does not need a UI because he can easily write a json file

Taking all that into consideration and trying to find a solution that fits in a B2B environment (where you are a third party building something for your client or even you client's client) does not leave us with a lot of options...

And I know that some of you will tell me: maybe what you are looking for is not a CMS, but a framework ? But I dont think that's true... I want to keep the simplicity that lies in a headless CMS...

When you think of it, that's kind of the only thing we search for when considering a headless CMS: Simplicity and Speed (we want to deploy something fast, we want it to have a ready-to-use admin that our clients will use and that we dont have to build).

In that case, what would be the perfect headless CMS checklist ?

  • A granular admin where users can add/modify content for the content-types they are allowed to
  • I should be able to configure it once and deploy it in several environments (that means configuring content types in a file, but with something easier to configure than a migration)
  • Something as light as possible, that is kind of just a simple admin layer on top of the database for our clients to use instead of a complicated database manager. I should be able to ditch the CMS and be left with a coherent set of tables in a database that I can continue using with something else
  • But it should still be versatile and extensible, so whatever I build on top can grow without needing to be refactored

I searched the web, and didn't really find a good, NodeJS-based option that respect those criteria... so I think I'm going to build something myself !

I'll keep you posted on this blog !