Third-party tutorials¶
Warning
The following list is a collection of tutorials and development notes from third-party developers. Some of the older links may not apply to the latest Wagtail versions.
Upgrading Wagtail (from 2.5 to 6.0) (18 April 2024)
Using Wagtail Form Templates in Software Development Projects (9 April 2024)
Build an Intuitive Link StructBlock in Wagtail: Simplifying Link Management for Content Editors (9 March 2024)
Improving Wagtail Richtext Block Revision Diffing (6 March 2024)
Wagtail StreamField - Propagating the
required
Attribute on Nested Blocks (20 February 2024)An overview of a Wagtail website stack (15 February 2024)
Efficient Cascading Choices in Wagtail Admin: A Smart Chooser Panel Solution (27 January 2024)
How to add an edit link to
wagtail-autocomplete
items (30 January 2024)Programmatically Creating a Wagtail page with StreamField (19 December 2023)
Adding reCAPTCHA V3 to Wagtail’s Form Builder Pages (19 December 2023)
Guide for managing a complex multi-tenancy setup with Wagtail (1 November 2023)
Wagtail tutorial video series, getting started through to e-commerce integration with PayPal (1 November 2023)
Integrating Next.js and Wagtail: Building a Headless, Content-Driven Website (21 October 2023)
Wagtail tutorial video series, building a blog (1 October 2023)
Deploy Wagtail CMS to PythonAnywhere using git push to a bare repo (27 September 2023)
Building a custom Django command to check all admin pages are loading correctly in Wagtail (1 September 2023)
Integrating ChatGPT with Wagtail for efficient content generation (15 August 2023)
Creating Wagtail StreamField StructBlocks with a Customised Editor Interface (9 July 2023)
Wagtail on Cloud Run (26 June 2023)
How to create a custom Wagtail CMS page type? (29 June 2023)
Create Stylish Wagtail Pages with Tailwind CSS (15 June 2023)
Backup and Restore a Wagtail CMS website (26 May 2023)
A guide for updating Wagtail CMS (22 May 2023)
Creating Custom Choosers with Viewsets (18 April 2023)
Build a Website Without Any Coding with Traleor (& Wagtail) in Just 10 Minutes (video) (19 March 2023)
Getting Started with Wagtail: A Beginner’s Installation Guide (Windows) (9 March 2023)
Introduction to Stimulus in Wagtail for contributors (video) (28 February 2023)
How to pick a good Wagtail package (1 February 2023)
Dockerized Wagtail 4 + NuxtJS 3 + Graphene 3 + Vuetify 3 (with template) (26 January 2023)
Wagtail: Extending the Draftail Editor Part 4 - Custom Lists (29 December 2022)
Making Wagtail pages more SEO friendly with Wagtail Metadata (24 December 2022)
Configuring a Dynamic Sitemap on Wagtail (22 December 2022)
Deploying Wagtail to Google’s Cloud Run (7 December 2022)
Tutorial: Build a Wagtail blog in 20 minutes (5 December 2022)
Headless Wagtail and Next.js preview mode (25 November 2022)
A Step-by-Step Guide on Installing the Wagtail Codebase on a Local Machine for Contribution (video) (19 November 2022)
How we created the new Wagtail.org (16 November 2022)
Build a Blog With Wagtail CMS (4.0.0) Released (7 November 2022)
Create a custom Wagtail Image filter for Thumbnails with Preserved Edges (4 November 2022)
Static-Dynamic Content With In-Memory SQLite using Wagtail (3 November 2022)
A Step-by-Step Guide for Manually Setting up Bakery Demo with Wagtail (18 November 2022)
Integrating Sa11y accessibility checker into a Wagtail website (video) (26 October 2022)
Wagtail: Extending the Draftail Editor Part 3 - Dynamic Text (21 October 2022)
What’s this? A new website? - Explainer for building a new website with Wagtail (10 October 2022)
Guide to integrate Wagtail CRX with a Snipcart storefront (9 October 2022)
Adding featured events to the HomePage with Wagtail 4.0 (video) (6 October 2022)
Wagtail: Extending the Draftail Editor Part 2 - Block Styles (5 October 2022)
Wagtail: Extending the Draftail Editor Part 1 - Inline Styles (5 October 2022)
Creating an interactive event budgeting tool within Wagtail (4 October 2022)
Configuring Rich Text Blocks for Your Wagtail Site (26 September 2022)
Deploy Django Wagtail to Render (23 September 2022)
Using a migration to apply permissions to Wagtail snippets (7 September 2022)
Deploying a Wagtail site to Fly.io - Part 1 of 5 (30 August 2022)
Django Wagtail CMS | Building A Blog In 20 Minutes (video) (12 August 2022)
Hosting a Wagtail site on Digital Ocean with CapRover (21 July 2022)
Add Heading Blocks with Bookmarks in Wagtail (5 July 2022)
Import files into Wagtail (2 July 2022)
Adding MapBox Blocks to Wagtail Stream Fields (19 June 2022)
5 Tips to Streamline Your Wagtail CMS Development (14 June 2022)
Wagtail 3 Upgrade: Per Site Features (2 June 2022)
Wagtail 3 Upgrade: Per User FieldPanel Permissions (1 June 2022)
Upgrading to Wagtail 3.0 (3 May 2022)
Django for E-Commerce: A Developers Guide (with Wagtail CMS Tutorial) - Updated (21 March 2022)
How to install Wagtail on Ubuntu 20.04|22.04 (1 March 2022)
Building a blog with Wagtail (tutorial part 1 of 2) (27 February 2022); part 2 of 2 (6 March 2022)
Creating a schematic editor within Wagtail CMS with StimulusJS (20 February 2022)
Adding Placeholder Text to Wagtail Forms (11 February 2022)
Deploying a Wagtail 2.16 website to Heroku (9 February 2022)
Build an E-Commerce Site with Wagtail CMS, Bootstrap & Django Framework (7 February 2022)
Complex Custom Field Pagination in Django (Wagtail) (3 February 2022)
How to Connect Wagtail and React (31 January 2022)
Wagtail: Dynamically Adding Admin Menu Items (25 January 2022)
Headless Wagtail, what are the pain points? (with solutions) (24 January 2022)
A collection of UIKit components that can be used as a Wagtail StreamField block (14 January 2022)
Introduction to Wagtail CMS (1 January 2022)
How to make Wagtail project have good coding style (18 December 2021)
Wagtail: The Django newcomer - German (13 December 2021)
Create a Developer Portfolio with Wagtail Part 10: Dynamic Site Settings (3 December 2021)
Dockerize Wagtail CMS for your development environment (29 November 2021)
How To Add an Email Newsletter to Wagtail (25 November 2021)
Dealing with UNIQUE Fields on a Multi-lingual Site (6 November 2021)
General Wagtail Tips & Ticks (26 October 2021)
Branching workflows in Wagtail (12 October 2021)
Wagtail is the best python CMS in our galaxy - Russian (12 October 2021)
Adding Tasks with a Checklist to Wagtail Workflows (22 September 2021)
How to create a Zen (Focused) mode for the Wagtail CMS admin (5 September 2021)
Deploying Wagtail on Divio (~September 2021)
How to Install Wagtail on Shared Hosting without Root (CPanel) (26 August 2021)
Django for E-Commerce: A Developers Guide (with Wagtail CMS Tutorial) (26 August 2021)
How to create a Kanban (Trello style) view of your ModelAdmin data in Wagtail (20 August 2021)
eBook: The Definitive Guide to Next.js and Wagtail (19 August 2021)
How to build an interactive guide for users in the Wagtail CMS admin (19 August 2021)
Add Custom User Model (with custom fields like phone no, profile picture) to django or wagtail sites (16 August 2021)
File size limits in Nginx and animated GIF support (14 August 2021)
Deploying Wagtail site on Digital Ocean (11 August 2021)
Multi-language Wagtail websites with XLIFF (21 June 2021)
Add & Configure Mail in Django (or Wagtail) using Sendgrid (28 May 2021)
Advanced Django Development: How to build a professional CMS for any business? (3 part tutorial) (2 April 2021)
Matomo Analytics with WagtailCMS (31 March 2021)
Dockerizing a Wagtail App (16 March 2021)
Deploying Wagtail on CentOS8 with MariaDB/Nginx/Gunicorn (7 March 2021)
How to add a List of Related Fields to a Page (6 March 2021)
Wagtail -
get_absolute_url
, without domain (3 March 2021)How To Alternate Blocks in Your Django & Wagtail Templates (19 February 2021)
Build a Blog With Wagtail CMS (second version) (13 January 2021)
Migrate your Wagtail Website from wagtailtrans to the new wagtail-localize (10 January 2021)
How to Use the Wagtail CMS for Django: An Overview (21 December 2020)
Wagtail
modeladmin
and a dynamic panels list (14 December 2020)Install and Deploy Wagtail CMS on pythonanywhere.com (14 December 2020)
Overriding the admin CSS in Wagtail (4 December 2020)
Migrating your Wagtail site to a different database engine (3 December 2020)
Wagtail for Django Devs: Create a Developer Portfolio (30 November 2020)
Create a Developer Portfolio with Wagtail Tutorial Series (11 November 2020)
Wagtail Instagram New oEmbed API (5 November 2020)
Image upload in Wagtail forms (21 October 2020)
Adding a timeline of your Wagtail Posts (18 September 2020)
How to create amazing SSR website with Wagtail 2 + Vue 3 (1 September 2020)
Migrate Wagtail Application Database from SQLite to PostgreSQL (5 June 2020)
How to Build Scalable Websites with Wagtail and Nuxt (14 May 2020)
Wagtail multi-language and internationalization (8 April 2020)
Wagtail SEO Guide (30 March 2020)
Adding a latest-changes list to your Wagtail site (27 March 2020)
How to support multi-language in Wagtail CMS (22 February 2020)
Deploying my Wagtail blog to Digital Ocean Part 1 of a 2 part series (29 January 2020)
How to Create and Manage Menus of Wagtail application - An updated overview of implementing menus (22 February 2020)
Adding a React component in Wagtail Admin - Shows how to render an interactive timeline of published Pages (30 December 2019)
Wagtail API - how to customise the detail URL (19 December 2020)
How to Add Django Models to the Wagtail Admin (27 August 2019)
How do I Wagtail - An Editor’s Guide for Mozilla’s usage of Wagtail (25 April 2019)
Learn Wagtail - Regular video tutorials about all aspects of Wagtail (1 March 2019)
How to add buttons to ModelAdmin Index View in Wagtail CMS (23 January 2019)
Wagtail Tutorial Series (20 January 2019)
How to Deploy Wagtail to Google App Engine PaaS (Video) (28 December 2018)
How To Prevent Users From Creating Pages by Page Type (25 October 2018)
How to Deploy Wagtail to Jelastic PaaS (11 October 2018)
Basic Introduction to Setting Up Wagtail (15 August 2018)
E-Commerce for Django developers (with Wagtail shop tutorial) (5 July 2018)
Supporting StreamFields, Snippets and Images in a Wagtail GraphQL API (14 June 2018)
Wagtail and GraphQL (19 April 2018)
Wagtail and Azure storage blob containers (29 November 2017)
Building TwilioQuest with Twilio Sync, Django [incl. Wagtail], and Vue.js (6 November 2017)
Upgrading from Wagtail 1.0 to Wagtail 1.11 (19 July 2017)
Wagtail-Multilingual: a simple project to demonstrate how multilingual is implemented (31 January 2017)
Wagtail: 2 Steps for Adding Pages Outside of the CMS (15 February 2016)
Deploying Wagtail to Heroku (15 July 2015)
Adding a Twitter Widget for Wagtail’s new StreamField (2 April 2015)
Working With Wagtail: Menus (22 January 2015)
Upgrading Wagtail to use Django 1.7 locally using vagrant (10 December 2014)
Wagtail redirect page. Can link to page, URL and document (24 September 2014)
Outputting JSON for a model with properties and db fields in Wagtail/Django (24 September 2014)
Bi-lingual website using Wagtail CMS (17 September 2014)
Wagtail CMS – Lesser known features (12 September 2014)
Wagtail notes: stateful on/off hallo.js plugins (9 August 2014)
Add some blockquote buttons to Wagtail CMS’ WYSIWYG Editor (24 July 2014)
Adding Bread Crumbs to the front end in Wagtail CMS (1 July 2014)
Extending hallo.js using Wagtail hooks (9 July 2014)
Wagtail notes: custom tabs per page type (10 May 2014)
Wagtail notes: managing redirects as pages (10 May 2014)
Wagtail notes: dynamic templates per page (10 May 2014)
Wagtail notes: type-constrained PageChooserPanel (9 May 2014)
You can also find more resources from the community on Awesome Wagtail.
Tip¶
We are working on a collection of Wagtail tutorials and best practices. Please tweet @WagtailCMS or contact us directly to share your Wagtail HOWTOs, development notes or site launches.