DEV Community

selfhosting.sh
selfhosting.sh

Posted on • Originally published at selfhosting.sh

Wagtail Vs Wordpress

Quick Verdict

WordPress is the better choice for most self-hosters. It deploys in minutes with Docker Compose, has 61,000+ plugins, and lets non-developers manage content without touching code. Choose Wagtail only if you have a development team, need a headless CMS with a first-class content API, or your project is already built on Django.

Overview

WordPress powers roughly 43% of all websites. It's a PHP application with a 20-year ecosystem of themes, plugins, and hosting solutions. For self-hosting, it pulls as a single Docker image with Apache or Nginx baked in — point it at a MySQL database and you're running.

Wagtail is a CMS framework built on Django (Python). It's not a standalone application you install — it's a library you integrate into a Django project. Wagtail gives developers precise control over content models, page types, and editorial workflows, but requires Python knowledge and a custom Docker build.

Aspect Wagtail WordPress
Language Python (Django) PHP
First release 2014 2003
GitHub stars 20,200+ N/A (SVN-origin)
License BSD GPLv2
Official Docker image No (custom build required) Yes (wordpress:6.9)

Feature Comparison

Feature Wagtail WordPress
Content API (headless) Native StreamField API, excellent REST API + WPGraphQL plugin
Plugin ecosystem ~500 packages (Django/Wagtail) 61,000+ plugins
Theme marketplace None — build your own 14,000+ free themes
Admin panel Polished React-based editor Classic or Gutenberg editor
Multi-language Built-in localization framework Polylang or WPML plugins
Version control Built-in page revisions and drafts Revisions built-in, limited
User permissions Page-level, field-level, workflow Role-based (admin/editor/author)
Rich text editor StreamField (block-based, typed) Gutenberg (block editor)
Search Built-in search backend (PostgreSQL/Elasticsearch) Plugin required (Relevanssi, SearchWP)
E-commerce Django Oscar integration WooCommerce (dominant)
SEO tools Wagtail SEO package Yoast, Rank Math (mature)
Form builder Built-in form page type Contact Form 7, Gravity Forms

Installation Complexity

WordPress has the simpler Docker setup by a wide margin:

# WordPress — pull and run
services:
  wordpress:
    image: wordpress:6.9-php8.4-apache
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_PASSWORD: changeme
    volumes:
      - wp-data:/var/www/html

  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: changeme
      MYSQL_DATABASE: wordpress
    volumes:
      - db-data:/var/lib/mysql
Enter fullscreen mode Exit fullscreen mode

That's it. Two services, five minutes.

Wagtail requires building a custom Docker image. You need a Dockerfile, a requirements.txt, Django settings, and a Gunicorn configuration. The Docker Compose file includes PostgreSQL, Redis, Nginx for static files, and the application itself. See our Wagtail setup guide for the full configuration — it's roughly four times the complexity of WordPress.

Performance and Resource Usage

Metric Wagtail WordPress
RAM (idle) 200–400 MB 100–200 MB
RAM (under load) 400–800 MB 200–500 MB
CPU Low–Medium Low
Disk (application) ~500 MB (with dependencies) ~200 MB
Cold start time 10–30 seconds 2–5 seconds
Build required Yes (compile Django project) No (runs from image)

WordPress is lighter because it runs as an interpreted PHP application — no compilation step, no build process. Wagtail's Django stack uses more memory at baseline but handles concurrent requests more predictably with Gunicorn workers.

Both scale well horizontally for self-hosting workloads. For a personal site or small business, WordPress runs comfortably on 1 GB of RAM. Wagtail needs at least 2 GB to include PostgreSQL, Redis, and the application.

Community and Support

Metric Wagtail WordPress
Community size Medium (Django community) Massive (largest CMS community)
Documentation Good (official docs + Django docs) Extensive (Codex, developer handbook)
Paid support Third-party agencies Thousands of developers and agencies
Hosting options DIY (no managed Wagtail hosting) Managed hosting everywhere
Security updates Regular, tied to Django releases Automatic updates available
Update frequency Weekly minor releases Quarterly major releases

WordPress has an incomparably larger ecosystem. Any problem you encounter has been solved and documented multiple times. Wagtail's community is active and knowledgeable, but you'll often find yourself reading Django documentation rather than Wagtail-specific resources.

Use Cases

Choose Wagtail If...

  • You have a development team that knows Python and Django
  • You need a headless CMS with a typed content API for a decoupled frontend (React, Next.js, Nuxt)
  • Your content model is complex — deeply nested structures, custom page types, editorial workflows with approval chains
  • You want precise control over the admin interface and content editing experience
  • You're building a multi-site platform where each site needs different content types
  • You need page-level permissions and structured editorial workflows

Choose WordPress If...

  • You want the fastest path from Docker Compose to a working CMS
  • Non-technical team members need to manage content independently
  • You need specific functionality that exists as a WordPress plugin (WooCommerce, LMS, membership sites)
  • You want thousands of pre-built themes to choose from
  • You need extensive SEO tooling (Yoast, Rank Math) without writing code
  • You're a single person or small team without dedicated developers

Final Verdict

For self-hosting, WordPress wins on practicality. It deploys faster, requires less technical knowledge, and its plugin ecosystem means you almost never need to write code. The wordpress:6.9 Docker image works out of the box with MySQL — no build step, no Gunicorn configuration, no static file serving to set up.

Wagtail wins on architecture. Its StreamField content model is more powerful than Gutenberg, its content API is genuinely headless rather than bolted-on, and Django's ORM gives developers precise database control. But all of that power requires a development team to unlock.

Most self-hosters should pick WordPress. If you're a developer building a content-driven application and you already know Django, Wagtail is the better CMS framework — but WordPress is the better CMS product.

FAQ

Do I need to know Python to use Wagtail?

Yes. Wagtail is a Django library, not a standalone application. You define content types in Python code, write Django templates, and manage the project through Django's tooling. WordPress requires no programming knowledge for basic use — the admin panel handles everything.

Can WordPress work as a headless CMS like Wagtail?

WordPress has a REST API and the WPGraphQL plugin for headless use, but it was not designed for this. The API is bolted onto a monolithic application, and some features (like menus and widgets) do not translate cleanly to API responses. Wagtail's API is purpose-built for headless use with typed content models. For new headless CMS projects, consider Directus or Strapi instead of forcing WordPress into a headless role.

Is Wagtail free?

Yes. Wagtail is open source under the BSD license — one of the most permissive licenses available. There are no paid features, no enterprise edition, and no commercial restrictions. WordPress is also free (GPLv2), though many essential plugins (Yoast SEO Premium, WooCommerce extensions) have paid versions.

Can I use Wagtail for e-commerce?

Wagtail does not have a built-in e-commerce system. You can integrate Django Oscar (a Django e-commerce framework) or Saleor with a Wagtail-powered frontend. This requires significant development work. WordPress with WooCommerce provides a complete e-commerce solution with minimal configuration — for online stores, WordPress is the practical choice.

Which handles multi-language content better?

Wagtail has a built-in localization framework (since Wagtail 2.11) that provides page-level translations with a translation workflow. WordPress requires plugins — Polylang (free) or WPML (paid, ~$39/year). Wagtail's implementation is cleaner architecturally, but WPML/Polylang are battle-tested with more language-specific features.

Can non-developers manage a Wagtail site day-to-day?

Yes — once the site is built. Wagtail's admin panel is actually more intuitive than WordPress for content editing. The page tree, StreamField editor, and image chooser are well-designed. The issue is building and modifying the site structure — that requires a developer. WordPress lets non-developers install themes, add plugins, and change site structure without code.

Related

Top comments (0)