CR

Craft CMS

Flexible CMS for custom-designed websites

Content Management Systems ★ 3.6k stars Medium setup MIT

Craft CMS is a content management system focused on giving developers and designers complete control over content structure and markup. The core product is open source with optional commercial editions.

Key features

  • Flexible content modeling
  • Twig templating
  • GraphQL API
  • Plugin store

Pros & cons

Strengths

  • Excellent for bespoke sites
  • Clean control panel

Trade-offs

  • Pro edition is paid
  • Not ideal for non-developers

Craft CMS replaces

Last reviewed Sep 13, 2026 · 783 words

Craft CMS is the wrong choice for anyone who wants to install a theme and start typing. There are no themes. Every template is Twig you write, every content type is a structure you model, and the control panel is empty until you do both. That is also why agencies building bespoke sites have quietly preferred it to WordPress for a decade: the client sees a clean editing screen with exactly the fields their site needs, and the developer never fights a plugin's markup. The self-hosting question is whether you are that developer.

The pricing is the first thing to understand

The core is MIT-licensed and the Solo edition is free with one control-panel user, which covers a personal site, a portfolio or a small business you build for yourself. Pro adds unlimited control-panel users with groups and permissions, system branding and the team-oriented features, and costs about $399 per site at last check, plus a yearly renewal for continued updates. Nothing stops Solo from running forever without paying; a lapsed Pro renewal only means you stop receiving new versions. For a family site that is irrelevant. For a client site with 3 editors, Pro is the licence you need, and it is still cheaper than a year of a managed WordPress host.

Content modelling is the reason people put up with it

The core idea is that you define sections (blog, projects, pages), each with entry types, each with a field layout. Fields are typed: plain text, rich text, assets, relations to other entries, dates, tables, and the Matrix field, which is a repeatable block builder that lets editors compose a page from blocks you designed (a quote, an image pair, a callout) without ever touching layout. Compared to WordPress, this is the difference between a fixed post schema plus Advanced Custom Fields plus a page builder, and one coherent system. Compared to headless tools like Directus or Strapi, Craft ships with the rendering layer too, so you can be headless through its GraphQL API, templated through Twig, or both on the same install.

What the server needs

PHP 8.2 or newer, MySQL 8 or PostgreSQL, and Composer, because the install is a composer create-project craftcms/craft and updates are Composer updates. The 512 MB minimum is for the runtime; a real install with image transforms wants 1 GB and ImageMagick. There is no official all-in-one Docker image, which surprises people coming from the Docker-first half of this directory. The usual pattern is a PHP-FPM image plus nginx plus a database container with the project directory bind-mounted, or DDEV for local work. The web root must be the web/ subdirectory, not the project root, or you will expose your .env file with database credentials in it. That one mistake is common enough to state twice: point the server at web/.

The plugin store is smaller and better

Plugins install through Composer or the in-panel store, and many cost $29 to $99 one-off. The catalogue is a few hundred entries rather than WordPress's tens of thousands, but the median quality is far higher, and the ones that matter (SEO, form handling, image optimisation, commerce through the first-party Craft Commerce) are maintained by businesses that depend on them. You will write more of your own code than a WordPress builder would, and you will install far fewer things you do not understand.

Where it loses

The learning curve is real: Twig, the element query API, the field system and the project-config workflow (a config/project/ directory of YAML that you commit so environments stay in sync) each take a few days. Non-developers cannot self-serve past what you have modelled for them. Blogging-first users will find Ghost faster to a finished site, and content teams that want themes and a marketplace of everything should stay with WordPress and accept its maintenance burden. Among the directly comparable tools, Statamic is the closest sibling: also PHP, Laravel-based, flat-file instead of a database, with a similar free-core-paid-Pro model.

What I'd do

If you write Twig or any templating language comfortably and you are building a site whose structure you want to own, install Craft Solo, model your content before you write a line of template, commit config/project/, and decide on Pro only when a second editor turns up. If you want to publish tonight, choose Ghost. If you want to hand a site to someone who will install plugins themselves, choose WordPress and read the CMS category with that constraint in mind.

Compare Craft CMS

27 head-to-head comparisons.

Similar content management systems apps