CMS

Content Management Systems.

Both Python CMS picks run on Django: Wagtail for page types your developers define, like articles, and django CMS for editors building pages on the live site.

How to choose:

  • Content types your developers define, like articles and events: Wagtail
  • Editors composing pages from reusable components on the live site: django CMS

Listed in editorial order. Click a column header to re-sort the whole list.

Press / to search. Tags open their category. Click a row for details.

Search and filter

Results

Row number Tags
A Django content management system.
wagtail/github.com/wagtail/wagtail /20,593 stars /
The easy-to-use and developer-friendly enterprise CMS powered by Django.
django-cms/github.com/django-cms/django-cms /10,682 stars /

CMS guide

Wagtail is not an instant website in a box: expect to write code. Start a project with wagtail start. Each page type is a Django model that inherits from Page, so give each kind of content its own type with its own fields. An event page with a date and a location can show up in a calendar, and a styled heading on a generic page can't. Use StreamField for pages without a fixed structure, like blog posts, and snippets for content that doesn't need its own page, like headers and footers. For a headless site, use its built-in API.

In django CMS, editors compose pages from plugins in a toolbar on the live site, and developers write standard Django. Each template declares its placeholders with {% placeholder %}, and CMS_TEMPLATES lists the templates editors can pick from. For a region that is the same on every page, like a footer, use {% static_alias %}, so the content is stored once. For content from your own app, ask where it lives. If it fits in a placeholder on a page, write a plugin. If it has its own list view, detail view, and URL, mount it as an app with an apphook. The core publishes as you edit, which is rarely enough for a production site with editors, so add a versioning package.

Both are built on Django. Wagtail deploys like a Django site. You can add either one to an existing Django project: Wagtail integrates into one, and django CMS doesn't make you rebuild around it. Neither fits a very small or static site. For a two-page brochure, django CMS calls itself overkill, and a static site generator is lighter.

Know a project that belongs here?

Tell us what it does and why it stands out.