Awesome
Introduction
This open source project is for my book Build Blog With Wagtail CMS
You can support my work by purchasing the ebook
Other books written by me
- The Definitive Guide to Next.js and Wagtail
- Build SPA with React and Wagtail
- The Definitive Guide to Hotwire and Django
Objective
This book will teach you how to build a modern blog with Wagtail CMS
By the end of this course, you will be able to:
- Understand
Docker
and useDocker Compose
to do development - Use
python-webpack-boilerplate
to jump start frontend project bundled by Webpack. - Install
Tailwind CSS
as the style solution. - Install
Stimulus
, understand how it works and write Stimulus controllers. - Learn how
Dark Mode
works in Tailwind CSS and use Stimulus controller to toggle the dark mode. - Understand the benefit of the healthy Stimulus ecosystem by reusing 3-party Stimulus controller.
- Create blog models to work with Wagtail.
- Use
PDB
andDjango shell
to debug, test code and check data in terminal. - Learn to use
RoutablePage
and addDate
to the post url. - Build
Pagination
component and correctly handle querystring. - Make the blog supports writing in
Markdown
andLatex
. - Create contact page using Wagtail
FormBuilder
- Build menu, meta tags, sitemap, robots.txt for better SEO.
- Build comment system based on
django-contrib-comments
which supportGeneric Relations
- Use
Tribute.js
,Axios
to addMention
andEmoji
support to the comment form. - Deploy the production app to DigitalOcean
Tech
- Python 3.10
- Django 4
- Wagtail 4
- Stimulus 3
- Tailwind CSS 3
How to run on local
$ git clone https://github.com/AccordBox/wagtail-tailwind-blog
$ cd wagtail-tailwind-blog
First, let's build frontend assets, please make sure node
is available.
$ node -v
# install dependency packages
$ npm install
# launch webpack dev server and keep it running
$ npm run watch
You need Docker and Docker Compose and you can install it here Get Docker
# build and launch app
$ docker-compose up --build
Now open a new terminal to import data and change password.
$ docker-compose exec web python manage.py load_initial_data
$ docker-compose exec web python manage.py changepassword admin
Now you can check on
Demo
The demo is also online if you want to check.