Definition
I usually see them as database with API interface. So if you attach mySQL with API interface, you got a headless CMS.
if you look at the definition of headless CMS online
A headless content management system, or headless CMS, is a back end-only web content management system that acts primarily as a content repository. A headless CMS makes content accessible via an API for display on any device, without a built-in front end or presentation layer. (wikipedia)
Seems about right with my previous assumption right? No interface, API only.
But then you checkout some products of headless CMS, such as contentful.
And you see there’s no way that they don’t have an interface to see their data.
to manage, and to present.
seeing through an interface can be used to do two things. to manage, and to present.
the word see is ambiguous. see means to manage, or to present?
in headless CMS, you have an interface to manage. But you don’t have an interface to present.
difference with Backend as a Service
so based on that understanding, you can include supabase as headless CMS.
but no, you call supabase as Backend as a Service, instead of as headless CMS right? what’s the difference?
it’s a matter of feature list
BaaS over much more than just managing data and giving API. for example, supabase has Auth, Edge Function.
Headless CMS probably has more features in content management site. let’s say more robust content filtering.
you can visualize it with this graph
difference with traditional CMS
in traditional CMS, there is a prebuild interface to present your content. highlight: to present, not to manage.
present is used to consume the content. like what . manage is used to … well, manage.
contentful (which is not a headless CMS) has an interface to manage your data. but there’s no prebuild interface to show your content.
wordpress (which is a traditional CMS) has a prebuild way to show your content and to manage your content.
But you probably lose on API support. there might be some API, but you can bet that it would be more robust on headless CMS.
so based on this, headless and traditional CMS on differs in feature set. If let’s say contentful gives a prebuild UI in the future, well you can say that contentful can be used as a traditional CMS, or headless CMS.
is notion a headless CMS?
well, can you use notion to store data with API access? yes.
is it a headless CMS? Probably no, if we’re using headless CMS in their strictest definition.
But as there is no definitive feature list of something to be a considered as headless CMS, this part is debatable.
generally here’s the main gist of headless CMS
- it stores data
- Have a good API to access that data
- has an interface to manage that data