In-depth comparison of 15 CMS platforms based on official docs, GitHub repos and changelogs. No marketing fluff.
QFD (Quality Function Deployment) is a structured decision-making methodology developed in Japan, widely used in engineering and product management to translate customer needs into measurable technical parameters. Instead of comparing features in a flat list, QFD weights each requirement by its real importance to your project — so a feature that matters 9× gets 9× the influence on the final score.
This eliminates gut-feeling bias and produces transparent, reproducible, and defensible results you can share with stakeholders.
↓ Start QFD MatrixTen traditional (full-stack) CMS platforms and five headless/API-first CMS platforms compared across 110 features in 24 categories.
GitHub stars, contributors, plugin counts, project age and market share — hard data showing each platform's scale and community health.
| CMS | ⭐ Stars | 👥 Contributors | 🧩 Extensions | 📅 Since | 🌐 Market share | 🏠 Sites |
|---|---|---|---|---|---|---|
| Craft CMS | 3.5k Main repo on GitHub | 160+ GitHub contributors + Plugin Store developers | 1,000+ plugins (Plugin Store) | 2013 13 years | 0.2% of all CMS-powered sites (W3Techs) | ~55k estimated active Craft sites |
| Directus | 34k BSL license (was GPL) | 400+ GitHub contributors | 100+ extensions | 2004 22 years | n/a headless — no W3Techs tracking | n/a |
| Drupal | 4.2k Mirror repo — dev on drupal.org | 1,500+ Monthly active contributors on drupal.org | 50,000+ modules | 2001 25 years | 1.3% of all CMS-powered sites (W3Techs) | ~760k reporting to drupal.org update status |
| Ghost | 51.6k Non-profit organization | 500+ GitHub contributors, core team of 17 | 100+ integrations | 2013 13 years | n/a headless — no W3Techs tracking | n/a |
| Joomla | 4.8k Main repo on GitHub | 700+ GitHub contributors | 5,000+ extensions (JED) | 2005 21 years | 3.5% of all CMS-powered sites (W3Techs) | ~2.7M active Joomla websites |
| KeystoneJS | 9.8k v6 repo (classic had 14.5k) | 200+ GitHub contributors | ~10 packages | 2013 13 years | n/a headless — no W3Techs tracking | n/a |
| October CMS | 11.1k Main repo on GitHub | 160+ GitHub contributors across octobercms org | 1,000+ marketplace plugins | 2014 12 years | < 0.1% Niche — primarily Laravel developer community (W3Techs) | ~25k estimated active October CMS installations |
| Payload CMS | 40.1k Fastest-growing CMS on GitHub | 200+ GitHub contributors | 50+ plugins | 2021 5 years | n/a headless — no W3Techs tracking | n/a |
| Plone | 270 Meta-package repo — code split across 100+ repos in plone org | 400+ GitHub contributors across plone org (300+ repos) | 3,000+ add-ons (PyPI) | 2001 25 years | < 0.1% of all CMS-powered sites (W3Techs) | ~10k estimated active Plone installations |
| Strapi | 71.2k Most-starred headless CMS | 800+ GitHub contributors | 200+ marketplace plugins | 2015 11 years | n/a headless — no W3Techs tracking | n/a |
| Sulu CMS | 1.3k Core framework repo on GitHub | 190+ GitHub contributors across sulu org (54 repos) | 54+ official bundles | 2015 11 years | < 0.1% Niche — primarily DACH/European market (W3Techs) | ~5k estimated active Sulu installations |
| TYPO3 | 1.2k Main repo on GitHub | 300+ Active community, mainly DACH region | 1,500+ extensions (TER) | 1998 28 years | 0.5% of all CMS-powered sites (W3Techs) | ~200k live websites (BuiltWith) |
| Umbraco | 4.5k Main repo on GitHub | 500+ GitHub contributors across umbraco org | 2,000+ packages (Marketplace) | 2004 22 years | 0.1% of all CMS-powered sites (W3Techs) | ~750k estimated active Umbraco sites |
| Wagtail | 20.1k Main repo on GitHub | 900+ GitHub contributors | 300+ packages (awesome-wagtail) | 2014 12 years | < 0.1% Niche — primarily Python/Django community (W3Techs) | ~30k estimated active Wagtail installations |
| WordPress | 11.5k Gutenberg repo — core is SVN/Trac | 62 Core committers (thousands of community contributors) | 60,000+ plugins | 2003 23 years | 62% of all CMS-powered sites (W3Techs) | ~500M estimated total WordPress sites |
All ten traditional CMS platforms can also serve content via API, working as headless or hybrid (server-rendered + API) systems. Here's how they compare in that mode.
Craft CMS ships with a built-in GraphQL API since v3.3, enabling full headless mode. Content is queryable via a self-documenting GraphiQL IDE. A fully-headless mode disables the frontend entirely.
Drupal was among the first traditional CMS platforms to embrace "API-first" as a core initiative. Since Drupal 8, every entity is exposed via JSON:API out of the box.
October CMS is built on Laravel and primarily serves content via Twig templates. Headless mode requires building custom REST API routes via Laravel controllers. No auto-generated API by default.
Joomla 4+ introduced a Web Services API exposing core content (articles, categories, contacts, banners) via REST. It's functional but less mature than Drupal/WordPress headless ecosystems.
Plone ships with plone.restapi, a comprehensive REST API that exposes all content, users, groups, workflows, and search. The Volto frontend itself is a React SPA consuming this API, proving its production-readiness.
Sulu CMS is built on Symfony and offers both traditional server-rendered output via Twig and a headless mode via SuluHeadlessBundle, delivering content as JSON. REST API is core, with GraphQL available via bundles.
TYPO3 was built as a traditional server-rendered CMS. Headless mode requires the official "headless" extension (EXT:headless) which converts page rendering to JSON output. Not API-first by design.
Umbraco ships with a built-in Content Delivery API (since v12) and Management API (since v14), enabling full headless mode. Built on ASP.NET Core, it provides auto-generated REST endpoints for all content types with filtering, sorting, and pagination.
Wagtail ships with a built-in REST API (Wagtail API v2) exposing pages, images, and documents as JSON. It supports full headless mode where Django serves only as an API backend. GraphQL is available via the wagtail-grapple package.
WordPress ships with a REST API since v4.7. The Gutenberg editor itself is a React SPA consuming this API. Headless WordPress is a well-established pattern with dedicated hosting (WP Engine Atlas, etc.).
Click a category to expand the comparison table. Hover over an icon to see details.
QFD (Quality Function Deployment) is a structured decision-making methodology developed in Japan, widely used in engineering and product management to translate customer needs into measurable technical parameters. Instead of comparing features in a flat list, QFD weights each requirement by its real importance to your project — so a feature that matters 9x gets 9x the influence on the final score. This eliminates gut-feeling bias and produces transparent, reproducible, and defensible results you can share with stakeholders.
Select categories that matter to your project, adjust importance weights (1-9), and optionally expand each category to include or exclude individual features. The matrix auto-calculates scores from the comparison data above.
features
Based on your weighted priorities, scores highest with weighted points.
These notes are not stored in any database. They are encoded in the shareable URL. Use the share link below to save your analysis and share it with your team or on the internet.