Migrating to a static blog with Jekyll
I’m the first to point out that this blog has been dead for ages, but it (somewhat surprisingly) still gets some decent number of page views - which is why I was slightly annoyed when randomly checking the “old” blog (with Ghost) and figuring out it was not properly working.
Side note: Yes, there was a free uptime check set up, but Ghost would actually render the page and just fail to serve the CSS - making the site unusable, but still “online”. The Ghost container was set up to automatically update with new images from Docker Hub, keeping data in a separate volume. Since I wasn’t keeping a close eye on it I have no idea on which version this actually happened, but one of my “newer” posts also vanished in the process (since restored from an older backup).
Since I had some time to spare, I took the opportunity to have some fun and migrate the whole thing to a static site - no more having to worry about Ghost, about updates, nginx configuration, etc, etc… now, you do lose some UX by doing that (I’m now writing everything in markdown text files in Sublime and then git commiting it to a respository, so no “edit” button for a typo), but there are also quite a lot of advantages:
Everything is faster and more reliable
Depending on your host, of course, but no more databases to query. No more databases at all! No worries if you have only two users of a gazilion, you’re just using bandwidth and not CPU resources, memory…
CDNs also work better. I’m still using Cloudflare because of their DNS flattening (I like naked domains, but Netlify does not), even though Netlify also has a CDN + SSL in their free plan.
Because everything is static and cached, you don’t have to worry so much if your database goes down or if your CMS has an issue.
GitHub Pages is nice, but it forces all your files to be open source. I’ve been using Netlify, which also has a free plan.
Netlify also has this cool feature where you link a git repository and they build and serve it (in my case, I commit the jekyll config/layout/markdown post files and it automatically builds the complete thing). Using webhooks, every new commit turns into a new version of your site being built and deployed automatically.
Pull requests from your main branch can also be built and are automatically served in a new subdomain for a preview. Nice!
I was already using disqus, meaning not having to deal with managing posts. Just edited the template to include them, migrated existing comments to the new URL scheme, and voilà.
I still love DigitalOcean and their cheap servers, but from now on I’ll not be using those to host simple stuff anymore (: