OpenSource-Hub
W

Wagtail

20.3k stars·Developer Tools·SHA-256 checksum verified

Wagtail is an open-source content management system built on Django, offering a fast, user-friendly interface and powerful control for developers.

Smart Download

Visit Project Homepage

No installer available yet — head to the source repository

A Django-based CMS that combines editor-friendly interface with developer control.

Core Features

  • Fast, attractive interface for content authors
  • StreamField enables flexible content without sacrificing structure
  • Powerful built-in search (Elasticsearch or PostgreSQL)
  • Multi-site and multi-language ready
  • Headless content API for decoupled frontends

What It Can't Do

  • Wagtail requires Django knowledge. Default SQLite is for development; use PostgreSQL/MySQL in production. StreamField flexibility can lead to inconsistent content without careful planning.

Use Cases

  • Corporate websites, news portals, blogs
  • Multi-language sites for governments and NGOs
  • Projects requiring highly customized front-end design
  • Headless CMS for mobile apps or SPAs

Detailed Introduction

Wagtail is a modern, open-source content management system (CMS) built on Python's Django framework. It is designed for both content editors and developers, providing an intuitive interface for creating and managing content while giving developers full control over front-end design and structure. Wagtail is scalable, supporting millions of pages and thousands of editors, and includes features like StreamField for flexible content modeling, built-in search (Elasticsearch or PostgreSQL), multi-site and multi-language support, and a headless content API. It is used by organizations such as NASA, Google, and the NHS.

Troubleshooting & FAQ (1)

How-to
How to allow editors to use Django template variables like {{ user.name }} inside Wagtail CMS fields?

Use a custom re-rendering function. First, render your template with the initial context (e.g., via render_to_string). Then, pass the output through a function that re-evaluates it as a Django Template with the same context. Example function:

from django.template import Context, Template

def re_render_html_template(email_body, context):
    template = Template(email_body)
    context = Context(context)
    return template.render(context)

Call it:
email_body = render_to_string('email.html', context)
email_body = re_render_html_template(email_body, context)

This works because Wagtail renders CMS-inserted {{ var }} as plain text, but the second rendering interprets them as template tags. Place this logic in the view/server-side function that prepares the final output (e.g., before sending an email or displaying a page). Note: this is a general Django technique, not an official Wagtail feature, so careful consideration of security implications (e.g., user-supplied template code) is advised.

GitHub Issue #3767

Tags

cmsdjangocontent-managementpythonopen-source

Getting Started

1

Download installer

Click the button above to download the installer for your system

2

Install the software

Double-click the downloaded installer and follow the prompts

3

Step 1: In a virtual environment, run pip install wagtail

4

Step 2: Create a project with wagtail start mysite

5

Step 3: cd mysite && pip install -r requirements.txt

Install Guide
  1. Step 1: In a virtual environment, run pip install wagtail
  2. Step 2: Create a project with wagtail start mysite
  3. Step 3: cd mysite && pip install -r requirements.txt
File Integrity

Checksum not available

This project has not published a SHA-256 checksum on its GitHub Release page

SHA256 Checksum

No checksum available

Download directly from GitHub Releases and verify file integrity yourself

All SHA-256 checksums on this platform are extracted from the project's official GitHub Release page, without any modification. You can independently verify them on the GitHub Releases page.

Open Source Transparency

View GitHub Source
Environment Guide

Uninstall Info

If installed via pip, run pip uninstall wagtail. To remove project files, delete the project folder. Back up database and media files before uninstalling.

No Extra Dependencies

Ready to use after download. No additional runtime required.

Project Info
LicenseBSD-3-Clause
Last Updated2026-06-27 14:25:34
GitHub RepositoryOfficial Website

Having issues? Check the FAQ below

1 FAQ

Similar Projects