Comparing the 4 best self-hosted CMS in 2024

By Pieti Kinnunen

July 3rd, 2024

In the age of cloud computing and SaaS, self-hosting a CMS might seem like an outdated approach. However, there are compelling reasons why this option still makes sense for many individuals and organizations.

Self-hosting can bring multiple benefits, including enhanced control over your data, improved security, and potential cost savings, among other things. In this blog post, we explore the differences between the best self-hosted CMS platforms.

Whether you're looking to migrate over to a self-hosted CMS solution or just want to look into the best options out there, read on to discover what self-hosted options are out there.

    Table of contents

    In this post:


Strapi is an open-source, Node.js-based headless CMS. It's the most popular option for a self-hosted content management system. It empowers developers to easily build, deploy and manage content-rich applications. With Strapi, you can create a customizable API that can be consumed by any client capable of making HTTP requests, such as websites, mobile apps, or IoT devices.

The CMS supports three different SQL databases: MySQL, PostgreSQL and MariaDB. A possible challenge when migrating your content to Strapi is that it is not meant to be connected to a pre-existing database. So, if you are moving from a service that also used an SQL database, you’ll need to create a new database with the Strapi app. You can query your data from the CMS using GraphQL queries or the RESTful API.

Strapi supports role-based access control (RBAC). Single sign-on (SSO) with support for the most popular SSO providers such as Google, GitHub, Microsoft and Okta among others is available for enterprise customers.

The CMS if also known for its nice developer experience with good documentation and great community support since the community is the biggest of all the self-hosted CMS options. A drawback with Strapi is that official customer support is only available to enterprise customers, with basic customer support being available for the lower tiers of the cloud-hosted version as well, but not the self-hosted community version.

Strapi has some missing features, such as more than two levels of component nesting and conditional fields, but the CMS is extensible via plugins from the Strapi marketplace, or you can develop your own using Javascript, so technically, you could expand Strapi to have all the features you need.

The Strapi community version is free to self-host with some features missing from the paid enterprise subscription.


Directus is an open-source headless CMS and backend-as-a-service (BaaS) that you can host on your own servers. It serves as a versatile backend toolkit for creating different types of applications. With Directus, you can instantly turn your SQL database into APIs and manage your data using a no-code app that can be customized .

You could think of Directus as a blank canvas with the tools to build your own CMS powered by a REST API or GraphQL interface. This flexibility may also be a downside if you are only looking for the CMS functionality as setting up just the CMS takes more effort than the other providers in this article. Luckily Directus provides templates for getting the CMS up and running with templates for other applications as well so getting started is not a hassle.

Directus has a built-in asset manager with automatic IPTC, EXIF and ICC metadata scraping so searching assets is more efficient. Directus has support for live previews and you can create automations to schedule posts, trigger review notifications and more. 

Unlike Strapi, Directus can be made to work with any existing or new SQL database. Directus has built-in JWT auth and it supports SSO via OAuth, OpenID and LDAP. You can also set up an unlimited number of roles with granular access control and detailed logs to maintain a clear audit trail.

Directus offers a nice developer experience with good documentation and a large community around it. You can customize the layout of Directus as you wish by using Javascript. Both Strapi and Directus have support for internationalization for your content so you can provide content for global audiences.

The self-hosted version of Directus is free to use if your company’s finances don’t exceed 5 million USD in the past 12 months.


Payload CMS is a flexible and powerful backend and admin UI for websites, internal tools, ecommerce, and digital asset management. It offers AI, visual editing, and extensibility with React and hooks. Payload can be used as a headless CMS, TypeScript backend and an admin panel.

As Payload is open-source and it’s built on Next.js, it leverages the newest React server component technologies for reducing client-side load while making it simple to deploy your project to serverless platforms such as Vercel.

Unlike with Strapi or Directus where you can add components and content types via the admin UI, in Payload all the configuration is done in code. This can be a downside as adding content types might take a bit longer than with a no-code solution, but also an upside since in the other options customizing content is more complex in code because it feels as if you are expected to use the no-code approach more.

Luckily developers won’t need to worry about learning new technologies that are only usable in Payload since the CMS only uses React and Typescript without unnecessary abstractions.

Payload has support for MongoDB and Postgres databases.


Magnolia CMS is a Java-based open-source content management system that offers a composable Digital Experience Platform (DXP) for enterprises, allowing you to unify content, commerce, customer data, and legacy tech. Magnolia provides GraphQL and RESTful APIs to query your content like the other CMSs in this article. Magnolia is directed more towards enterprise-level users than the others systems listed.

Magnolia offers security features like the other CMSs on this list such as SSO and RBAC and it has the industry’s key security certifications. Unlike some, Magnolia only supports Open ID Connect compatible identity providers but it can be extended to protocols like LDAP and SAML by using an identity broker.

Magnolia supports database options such as MySQL, MariaDB, Oracle, H2 and PostgreSQL, with H2 not being recommended for production environments. With Magnolia you can choose any database that is officially supported by Apache Jackrabbit but PostgreSQL is the one that Magnolia recommends the most.

Comparing the features

DatabaseMySQL, PostgreSQL, MariaDBAny SQL databaseMongoDB, PostgresMySQL, MariaDB, Oracle, H2, PostgreSQL
APIREST, GraphQL, Entity service, Query engineREST, GraphQLREST, GraphQL, local API inside your own serverGraphQL, REST
No-Code configuration
Base codeJavaScriptJavaScriptNext.jsJava
SSOEnterprise onlyEnterprise onlyEnterprise only
TypeScript support
StrapiMySQL, PostgreSQL, MariaDB
DirectusAny SQL database
PayloadMongoDB, Postgres
MagnoliaMySQL, MariaDB, Oracle, H2, PostgreSQL
StrapiREST, GraphQL, Entity service, Query engine
DirectusREST, GraphQL
PayloadREST, GraphQL, local API inside your own server
MagnoliaGraphQL, REST
FeatureNo-Code configuration
FeatureBase code
StrapiEnterprise only
PayloadEnterprise only
MagnoliaEnterprise only
FeatureTypeScript support

Contact us

Get in touch and let's discuss your business case

Email to or send us a message here.

Submitting this form will not sign you up for any marketing lists. Your information is strictly used and stored for contacting you. Privacy Policy