Portfolio Site
Intro
For my first blog post I thought it would be good to discuss the site itself and what technologies I used to build it. The portfolio design itself was from a challenge on Frontend Mentor.
My repository for the site is publicly available on GitHub if you want to check out the code!
App Overview
The main site is built using Wagtail CMS. Wagtail is an open source and free CMS that extends the underlying Django Python web framework and gives extra functionality such as:
- Managing content pages
- Live preview
- Publishing states
- Moderation workflow
- Enhanced admin interface
I got exposed to Wagtail via one of the clients I work with and have found it to be a great content management system. It is currently used by organisations such as NASA, the NHS, Google and many more for their public facing sites and for internal tools.
Wagtail's main feature is a custom Page model that you can use to create content. These 'Pages' are then stored in a tree like data structure and mapped to a URL namespace. If you are really interested, I went into excruciating detail about Wagtail and how it works in my Project Report for my MSc 😉
The main site styling is Tailwind. I have found it works well with Django if you just directly download the Tailwind binary and compile it locally.
The app is running inside multiple Docker containers on a Digital Ocean VPS behind a load balancer where my HTTPS is terminated. The NGINX web server on the VPS is also controlling the traffic to the subdomains where my other apps (such as the Notes App and Link Sharing App) are hosted.
App Screenshots