Knowledge Hub
For manager
Headless CMSFor developer
Web FrameworksStatic Site GeneratorsServerless DatabasesMonoreposHostingPIMLearn
GuidesTutorialsAdopt
Case studiesStarting a website or an online project means facing a lot of important decisions. Choosing the right CMS platform is certainly one of them. With the variety of existing content management solutions (CMS) on the market, when deciding which one you should use might be way more difficult than you imagine.
Self-hosted CMS platforms are the number one choice for most businesses. All the credit goes to WordPress of course, the most popular CMS in the world. We like to think that Jamstack solutions are silent contenders to the reigning CMS king. Contenders that are slowly but surely getting a lot of support.
Wait, contenders?
Yeah, well, the thing with the Jamstack is that it is not one solution like WordPress but an architectural approach relying on many different parts/tools working in unison. That means CMS is just a part of the stack used to build a website or an app.
Previously we talked about headless CMSs. Pointed out the differences between Git-based and API-driven solutions. With that in mind, it was only natural to explore and cover self-hosted CMSs in Jamstack. So, in this post, I’ll try to shed some light on what makes these platforms great (or not), and why should businesses consider using them (or not).
But first the basics.
Self-hosted content management systems require an independent responsibility for the infrastructure of the site and its software dependencies such as databases, required software libraries, and more. If you decide to go by this route, that means that you'll be responsible for installing a CMS of your choice, on the server of your choice, and completing the initial setup.
Self-hosted CMSs in Jamstack, such as DecapCMS for example, allow webmasters to do all the typical PHP CMS tasks but without the bloat. It means that you'll still be able to add pages, write blog posts, change or add contact details, and more, but you won't have to deal with updating your content management system or worry about the plugins.
There are several reasons why using self-hosted CMS is better than going with the hosted solution.
We already covered there are plenty of SAAS headless CMSs out there, and there’s nothing wrong with them. But sometimes, on some projects or for some clients, it may be better or more convenient to have it all installed in your own AWS or whatever hosting option you have. If that is the case, check one of these.
Strapi is an open-source, JavaScript, headless CMS based on Node.js. We talked about it in our headless CMS post (again, clicking the link above will take you to our dev overview).
Here, I’d like to point out that besides giving you full control by having it where you want it, it offers a drag-and-drop possibility which makes editors’ management experience seamless and it offers a lot of opportunities for customization. For instance, you can install a number of plugins in just a few seconds that offer additional functionalities.
Strapi is great if you want to start a new CMS project in no more than two minutes. During the development stage, Strapi will set up an SQLite connection so you won't need to boot up a MongoDB or MySQL just for the development process.
Let’s not repeat ourselves. Check the main article about it (linked the title with it). I’d like to mention Strapi is an open-source project and that makes it interesting for a broader developer community.
Wordpress doesn’t need any special introduction. It is one of the most popular content management systems in the world for the last 15+ years.
What does WordPress have to do with Jamstack?
Well, ever since 2016 it offers access to their API straight out of the box. This solution allowed developers to use it in new ways. In our case, we'll have to mention the most important one i.e. ability to separate the front-end and WordPress content management thanks to which you're no longer dependent on PHP. Check the official Wordpress REST API handbook for more info.
With so many developers already in the WordPress space, it's easy to understand why headless WordPress is gaining momentum.
This option is best used if you want to create a standalone program in a language that isn't PHP. If you happen to use JavaScript or jQuery in one of your themes or plugins, you can still use the REST API offered by WordPress. Why? Well, this solution provides a more structured way to interact with your content than the admin-ajax. It also provides a better user experience. The only drawback is that the REST API requires a lot of time spent on development.
There’s a good fix for this problem though. It’s called WPGraphQL. Unlike a REST API, GraphQL can help you get all of your data from a single request. For instance, apps that work on GraphQL can also work fast even on slow mobile networks.
Or you simply run your website with WordPress and don’t want to let go.
Ghost is an open-source blogging platform. The complexity of WordPress that turned it into the CMS we know today infuriated people within the WP team that wanted a clean, fast, and easy-to-use blogging platform and not a content management system for pretty much anything. So, they made Ghost.
Ghost is written in Node.js and is basically a headless CMS that you can use either a self-hosted version or hosted one on Ghost’s own servers.
Ghost was built as a blogging platform from day one and as such it still is the best use case for it. As such it is way faster than WordPress (when it comes to blogging) and it comes with native SEO and social functionalities appropriate for blogging.
Grav is a modern open-source flat-file CMS. A flat-file CMS does not have a database but saves the data directly into files and folders. While we have encountered Grav previously in EMDYN case study (we actually moved away from it rather than use it) so, I wanted to check once more if the idea behind flat-file CMSs is interesting.
Since you are not dependent on databases it should make the development and migration much easier while providing you with good performance results.
Grav is simple, efficient, and fast but only for some use cases. It works best for small and mid-sized blogs and that seems to be a common feeling in many reviews I’ve come across.
Cockpit is a self-hosted, open-sourced headless, API-driven CMS. In all honesty, we rarely had it on our radar (probably because it is loved mostly by VueJS devs). Joking aside it seems to be perfect when in need of a flexible content structure but don't want to be limited in how to use the content. So, no predefined content models but the ones you make yourself.
Small and mid-scale websites are the best use cases for Cockpit.
Directus is an open-source tool that manages custom SQL database architectures and provides an intuitive admin app for managing its content. The UI is pretty clean and written in Vue, but most importantly the docs cover all the important things (such as writing your own addons).
In case you are planning on building a custom architecture application for clients looking for an omnichannel approach, Directus fits the bill nicely.
Prime CMS is another self-hosted, headless CMS with a GraphQL interface. It is powered by TypeScript. A simple but powerful solution.
With Prime, you can create your own custom fields and the CMS supports multiple languages.
Although there are some better options than Prime, this headless CMS is not a bad choice if you want to host your CMS locally. Unlike Contentful and Strapi, Prime CMS offers group fields and a dynamic layout. Another great benefit is that it’s completely free to use.
DecapCMS is one of the most popular git-based headless CMSs on the market. It allows for the creation of a website or an app with continuous deployment and 1-click HTTPs. It's usually the number one choice by developers when it comes to creating modern static websites and apps.
We already talked about it extensively in our headless CMS post (if you click the above link you’ll be taken there).
One area where DecapCMS really excels is content. Even your writers and editors are going to love it because adding content is super efficient and super easy. It's markdown-friendly, it allows for the drag-and-drop upload of images and videos. and it can be easily installed for use with, basically, any static site generator.
Social sharing can be added with APIs from tools such as ShareThis or Shareaholic. Comments can be integrated with Disqus. And running A/B tests is straightforward thanks to the split testing feature. You'll be able to see different versions of your website or pages from various Git branches.
Let’s not repeat ourselves. Check the main article about it.
We can’t answer it for you (though we can maybe make some points). Before answering consider a couple of things first. What is your use case? Building a blog, ecommerce, or any hybrid website? And do you have a developer at hand? Some of these CMSs here require no coding while others require serious dev hours to get them to work the way you want it.
CLICK HERE to schedule a 1-on-1 talk and learn more about what we can do for you and your business.
Syntax episode 254: Headless CMS Break Down & Roundup - https://syntax.fm/show/254/headless-cms-break-down-and-roundup
Headless CMS: Self Hosted or PaaS? - https://medium.com/better-through-code/headless-cms-self-hosted-or-paas-c559b8f938fc