I have chosen to use a static site generator called Pelican, written in Python, to generate this site. It takes articles written in text, in my case using Markdown format, and converts it to HTML using a standard layout (pelican-3) and a bootstrap theme. It adds all the CSS and HTML without coding.
Why Use a Static Site Generator
First, I want to go into a little detail on my technology choices for creating this website including and especially using static site generation. If you're already convinced this is the best thing since Javascript was re-invented, and Pelican/Python is the best approach, then skip to Part 2 of this series to find out how or read more about Pelican including tutorials.
Creating a website has come along way since the early 90s when all you needed was a basic knowledge of HTML. Now there are many ways to create it with little or no knowledge of code (cough SquareSpace or something similar) or some basic knowledge and lots of flexibility and capabilities (Wordpress).
Both of these approaches were a poor fit for me for a personal website and a blog. With a platform like SquareSpace, I would be locked into the editor and pricing model, not to mention the other constraints in a pre-defined eco-system. For Wordpress, the issues are similar. I have used Wordpress open source software and hosted it myself in the past. This required learning how the PHP code works and constantly updating plugins. It was hacked several times on the GoDaddy shared hosting site. The problem comes down to that a database-driven approach like Wordpress requires a lot more than is needed to run a simple site or blog with one author and infrequent updates.
The blog site Medium is a contender for a blog, but not for a personal website. It is better as a secondary publishing outlet, like social networks, with a built-in audience and discovery tools. Pelican and other site generator tools can support Medium in a seemless way (more on this later). See more on Medium vs Wordpress
You can read more about Pelican including tutorials.
Hosting Pelican
Some great options for hosting a static site:
- GitHub Pages - Free to use within limits but requires github for your code.
- Amazon S3 - More complicated to use. Free to use within limits.
- Netlify - Simple to use compared to S3. Free for personal use with limits.
I chose to use Netlify because it gave me the most flexibility, support for expansion and is free. It also is the easiest to get going. The downside is that it takes a little more setup to use with Pelican than Jekyll or other site generators.
Read more
- Static generation of websites
- A list of Pelican and other generators from the creators of Netlify
- Medium post on netlify hosting and other builders