In short, the idea is to separate the data from the UI and representation. The UI should talk to the data via API.<p>That's cool in theory, but in practice, most headless CMSes provide mainly the data part and API, saying, "Hey, take a look at how nicely we organised the data for you, and there is your API."<p>My reaction is: That's cool, but first, I know way better how to organise my data, and I already have the API, and second -- give me THE UI; I need the UI!<p>I built many internal CMSes with transactions, reports, charts, etc. I personally found that the most time-consuming and laborious part is UI, not data and API.<p>To be helpful, the UI needs to be: 1] generic, flexible, and configurable with little development effort but at the same time -- 2] tailored to the concrete workflow.<p>I personally know only one out-of-the-box software that does all that: Django Admin. With zero ceremony, you have functional, generic software that is still tailored to your data UI.<p>However, Django can achieve it because of SQL. In RDMS, the data is already nicely normalised and split into logical parts—the relational tables. Unfortunately, in NoSQL, where the data can be whatever, building a generic UI editor/admin is a tricky task. Every project is unique, requiring its own fully custom UI.<p>So why bother about a third party HEADLESS (!) CMS?