Getting Started With Wagtail CMS

Wagtail is a powerful, flexible, open-source content management system for the Django web framework. However, it might not be the off-the-shelf solution you’re looking for. Below are some tips for getting started with Wagtail, as well as what I’ve found to be its strengths and weaknesses.

Published On:   Aug. 13, 2020, 10 a.m.

A content management system is a way to manage your digital content (e.g., media, text) on a website. The Wagtail CMS is an open-source application developed by Torchbox and international volunteers for the Django Web Framework, a popular web framework that powers many high-profile websites (e.g., Instagram, Mozilla, Bitbucket, The Washington Post). If you’re unfamiliar with Django, you can learn more at their website or documentation.

To determine if Wagtail is right for you, you can read their guiding principles. Notice that "Wagtail is not an instant website in a box”. If you’re trying to create a website without any coding or administrative configuration, Wagtail is probably not for you. However, if you’re looking for a flexible, powerful, open-source Django CMS, Wagtail is an excellent option. And if you’re not sure, you can try out Wagtail for free with one-click deployment from GitHub to GitPod.

Wagtail Pros Include:

Wagtail Cons Include:

  • The wagtail default installation is pretty basic. It’s probable that you’ll have to customize your installation to meet your own needs
  • For example, you’ll probably need to code some of your own blocks for StreamFields.
  • Getting started with Wagtail requires some administrative overhead.
  • The Wagtail WYSIWYG rich text editor is a very basic compared to other editors like TinyMCE or Froala.

If you’re an organization with dedicated front-end engineers, maintaining Wagtail should be no problem at all. If you don’t have as much time for web development, extending Wagtail might be more of a challenge.

If you want to start learning about Wagtail, I’d recommend the following:

  1. Do the official tutorial. It’s pretty quick and covers wagtail basics.
  2. Learn what StreamFields are! They’re amazing, and one of my favorite features of Wagtail!
    1. Here's a link to the official documentation.
    2. Michael Yin also has a helpful example of StreamFields on his blog.
    3. If you’re still a bit confused, no worries. I’d recommend that you check out the Wagtail Bakery Demo – hopefully that’ll make things a lot more clear.
  3. Check out the Wagtail Bakery Demo– I found it really helpful for learning wagtail concepts! [important!]
    1. The Wagtail Bakery Demo features 1-click deployment to Heroku so you can try it out quickly for free.
    2. After the bakery demo, you should be pretty comfortable with Wagtail, or at least comfortable enough to teach yourself whatever else you want to learn.
  4. I’ve found that migrating databases in Wagtail can be kind of tricky. If your project will outgrow SQLite, consider setting up Django to use PostgreSQL or another DB.
    1. To do so, you can reference Django’s official documentation. Digital Ocean also has a tutorial for setting up PostgreSQL with Wagtail.
    2. One benefit of using PostgreSQL is that it’s compatible with the Wagtail PostgreSQL Search backend, though other search options are available as well (e.g., Elasticsearch).
  5. Check out the advanced topics for some more useful features:
    1. Of course, Wagtail is just one of many Django apps! If there’s a feature you want, it might be better to implement it through Django.
  6. Check out awesome-wagtail for a curated list of cool wagtail apps, plug-ins, and instructional material.

If you’ve made it this far, you should be good to go! Congratulations!

A huge shout out to all those who contribute to the Wagtail community! You all are amazing, and we are eternally grateful for your work!