eBooks
I started writing blog posts about Wagtail CMS since 2017, some content and code might be a little outdated.
You can check the ebooks below to get the latest learning resources maintained by me.

This book will teach you how to build a SPA (single-page application) with React and Wagtail CMS
Table of Contents:
Review
- Python CMS Framework Review: Wagtail vs Django-CMS In this Python CMS review article, I will talk and compare `Django CMS` and `Wagtail CMS`, the two most popular CMS frameworks in Python world.
Tutorials
- Wagtail Tutorials #1: Create Wagtail Project I will show you how to create a Wagtail project, talk about basic points such as project structure, how the request is handled by this Wagtail project and more.
- Dockerizing Wagtail App We will use Docker Compose to create and manage Wagtail, Postgres services, and do local development.
- Wagtail Tutorials #2: Create Page Model In this Wagtail tutorial, I will show you how to create the data model of a blog app, clarify the workflow of hierarchical tree of page.
- Wagtail Tutorials #3: Category And Tag Support In this Wagtail blog tutorial, I will continue to move on to show you how to add category and tag support to blog app as standard CMS does.
- Wagtail Tutorials #4: Routable Page In this Wagtail blog tutorial, I will show you how to use RoutablePageMixin to make blog app routable, so it can handle sub-URLs like category and tag links.
- Wagtail Tutorials #5: Customize Blog Post URL In this wagtail tutorial, I will show you how to customize the permanent link of post page, and how to reverse the blog post link in the template.
- Wagtail Tutorials #6: Import Bootstrap Theme Into Wagtail Blog In this wagtail tutorial, I will teach you how to quickly import an existing theme into wagtail blog to make our blog look more decent.
- Wagtail Tutorials #7: Add Search Function In Wagtail Blog In this wagtail tutorial, I will teach you how to add search function in wagtail blog so the user can filter the posts through the keywords.
- Wagtail Tutorials #8: Add Markdown Support In Wagtail Blog In this wagtail tutorial, I will show you how to add Markdown support to our wagtail blog.
- Wagtail Tutorials #9: Add LaTeX Support & Code Highlight In Wagtail In this tutorial, I will talk about how to add Latex support and code highlight support in our wagtail blog application.
- Wagtail Tutorials #10: Add Comment Support In Wagtail Blog In this chapter, I will talk about how to add comment support to our Wagtail Blog.
- Wagtail Tutorial #11: How to use StreamField in Wagtail I will talk about the StreamField feature of Wagtail in detail and I must say StreamField is one of the most amazing features in Wagtail.
- Wagtail Tutorial #12: How to Create and Manage Menus of Wagtail application We would learn how menu in Wagtail works, and how to create a powerful menu using wagtailmenus package.
Advanced Features
- How to do A/B Testing in Wagtail CMS In this Wagtail tutorial, I will show you how to do split testing (A/B testing) in Wagtail CMS.
- How to build form page in Wagtail I will teach you how to build form page using Wagtail's FormBuilder.
- How to build a landing page using Wagtail CMS In this Wagtail CMS tutorial, I will teach you how to build a simple landing page using Wagtail
- How to make your Wagtail/Django project have good Python coding style In this Wagtail tutorial, I will teach you how to check coding style for your Wagtail/Django project, how to fix it and how to keep it clean and concise.
- How to support multi-language in Wagtail CMS In this blog post, I will talk about how to support multi-language in Wagtail CMS
- Wagtail SEO Guide In this Wagtail tutorial, I would talk about something which can help SEO in Wagtail
Wagtail Tips
- Wagtail Tip #1: How to replace ParentalManyToManyField with InlinePanel In this Wagtail tip, I will talk about How to replace `ParentalManyToManyField` using Wagtail InlinePanel
- Wagtail Tip #2: How to Export & Restore Wagtail Site You will learn how to how to export & restore wagtail site using Django dumpdata & loaddata command
Write theme for Wagtail project
I have seen many people are still using old CSS to add style to their Wagtail projects.
So I wrote some posts to help them write SCSS instead of CSS in Wagtail projects, I think SCSS is better and I strongly recommend you to give it a try.
- How to use SCSS/SASS in your Django project (Python Way) In this blog post, I will talk about how to use SCSS/SASS in your Django project with Python package.
- How to use SCSS/SASS in your Django project (NPM Way) In this blog post, I will talk about how to use SCSS/SASS in your Django project with NPM.
How to deploy your Wagtail project
- How to deploy Wagtail project to Heroku with Docker I will show you how to use Docker to deploy your project on Heroku, you can also use the code to deploy Wagtail on AWS if you prefer.
- How to deploy Django project to Dokku In this Dokku tutorial, I will talk about how to deploy Django project with Dokku, it would use Postgres db and Amazon S3 to store data and media files.
- How to deploy Django project to Dokku with Docker In this post, I will talk about how to deploy Django project to Dokku with Docker.