Blog & Static Pages

Ed | Nov. 19, 2020, 11:30 p.m.

A key purpose of my neighbourhood-planning.co.uk site is to provide advice and resources relevant to the preparation of Neighbourhood Plans. My blog provides commentary on current issues relating to neighbourhood planning, whilst my static pages include 'fixed' content such as a guide to preparing a Neighbourhood Plan. On re-building my site as a Django project, I structured it around the blog content and static pages.

Screenshot of neighbourhood-planning.co.uk blog

Screenshot of neighbourhood-planning.co.uk blog

I decided to use Wagtail to build my blog app and static pages app, as I was really impressed with the CMS which provides all the functionality I need for creating posts and page content. Notably, Wagtail's 'streamfields' are excellent in providing flexibility and versatility for blogging.

As I got to grips with Wagtail, I realised it is far more than a CMS, with many useful built in classes and methods to create well functioning sites. Making use of these built-iin methods made building the site pretty straight-forward.

A more complex aspect was building a commenting system. Whilst I could have added a third party app, I decided I would build my own commenting system to give me greater control over how it functions, and to give my readers greater confidence around how their data would be used and stored.

I made use of built-in django methods to create a registration and log in/out process. I added a password reset system with email authentication, after following this tutorial from Simple is Better than Complex.

Building the commenting system required careful consideration of the relationship between model objects, to comments to be made against posts, and in response to other comments. I used javascript functions to control the display of comment and reply forms.

It was a good feeling to be able create a blogging app which offered better functionality than an off-the-shelf platform.

Click the button to launch the neighbourhood-planning.co.uk blog.

Launch →