Nine years ago I used my first CMS, B2Evolution. Since then, I made my way over various platforms and kept stuck with Wordpress and Drupal.
In a recent blog post John Chan explains how the StackExchange blog was migrated from Wordpress to static files. This made me think: Despite improvements in bandwidth, computational power, and more and more powerful webhosting and cloud offerings, website speed often did not follow this trend.
No question, the extensibility of these frameworks’ is a great. For example WooCommerce turns Wordpress into a full-fledged e-commerce platform that can be set-up without deep technical knowledge.
Nevertheless, the main use cases of Wordpress are blogs and product / company / event websites. Is having fancy slider XY that is used on one page really worth loading megabytes of code on every page request?
I doubt that…
For my private page rck.ms I wanted to keep it straightforward and lean. I need some static pages and a blog. That’s it. Let’s do it like 1995. Why not have a small static website that every 56k modem can rock (despite the large images)? So I omit monstrosities and unneccessary includes as much as possible. As secondary goal I wanted to build a website without a bit of PHP code, but with contemporary frameworks. As tertiary goal I wanted to leverage free offerings as much as possible. Basically I wanted a minimal system that I can control, that is fast, and that does not cost much.
My agenda was to…
2. Settle on a deployment method
My first thought was to have a local instance, manage source code with GitHub, locally generate deployables, and push them to Amazon S3. My second thought was to not do that. I don’t want to manually deploy everytime I change something and I don’t want to pay money for hosting when I could get the same for free.
Here comes Jekyll! GitHub provides free hosting for static websites and, more important, provides Jekyll support. In fact, every push to the repository initiates automatic deployment at GitHub Pages. Even better, blog posts are markdown files that can be conveniently created on GitHub itself. No tooling needed.
- 4. Make it better
GitHub already serves pages quite fast, using fastly.com as CDN. I am also able to use my custom domain registered ad gandi.net with it. But I can’t do that using https. GitHub provides no means to upload a SSL certificate.
Luckily, clever people found a solution: Ben Burwell shows, how to get SSL for custom domains mapped to GitHub Pages. Essentially, traffic is rerouted through CloudFlare which provides free SSL encryption.
I will write a concise tutorial on what I did, viz., how to host a website using Jekyll on GitHub Pages with a custom domain that supports https.
Don’t use bloated CMS for small private web projects. Instead, leverage static site generators and free web services.
I’m more than happy to not to worry about page speed, security implications and complexity anymore.