Most people, when writing a blog, choose one platform and blog on it for a very long time. Think WordPress, or Ghost, or some other sort of blogging platform like Medium.
Me? I’m crazy! This blog has gone through probably seven different migrations – from Jekyll to WordPress to Ghost to Jekyll again then to WordPress and then finally (as you are reading on it) back to Jekyll.
Out of all these migrations, I finally realized why hosting blog platforms, such as Ghost and WordPress, are not worth it for me.
Let’s start with setup.
If you wanted to spin up a blog server, then you’d have to go to a VPS company, like DigitalOcean or Linode, or some other service like AWS. You create an instance and log into the virtual server using SSH credentials.
Great! Now you need to hunt through various Internet articles on how to properly set up your server. Installing Nginx, PHP, and other miscellaneous dependencies. Done? Now you need to grab WordPress, figure out why Nginx won’t serve WordPress (oh, wrong permissions!) and then set up WordPress as well.
OK, now it’s all set up. But that took ages. Easily two hours gone just to set up the server.
How does a static website host, like GitHub Pages, compare?
Let’s say you start from scratch. You create a GitHub account, then create a
git repo, and then install Jekyll on your computer (if you already have Ruby installed). You type
jekyll new site and
cd site, then make your changes and push them to the new repository.
Done! You could probably do this in 20 minutes if you’re good with the terminal.
WordPress and Ghost need to dynamically generate webpages. That’s great, but you lose out on speed.
In contrast, static websites are generated when you push your updates to GitHub, or some other service like Netlify. These services will only build your website once when you push the updates, and then serve the generated static files.
OK, sure, this is not much of a differentiator in 2020. Most dynamic CMS websites are still pretty fast with good optimizations. But remember that with static websites you don’t need to make any optimizations because it’s fast by default.
Not to mention, if you have a lot of traffic hitting your website at the same time, then the static blog will definitely serve your users faster than dynamically generated websites.
With static websites, you don’t need to consider security. GitHub and Netlify does that for you.
With dynamic websites, you become the devops. You need to make sure your server is up-to-date. Try handling that in addition to everything else you do! It becomes a chore, a hassle, to run
sudo apt update && sudo apt upgrade -y every once in a while.
“But you can just add it to
crontab and let the server patch itself!” Valid point, until something breaks due to a version mismatch and you have to troubleshoot why.
Also, for WordPress, you need to update it constantly as well, as it won’t automatically update for big version releases.
Imagine somebody managed to hack into your server and deleted all of the website contents. To prevent that, you need backups. But that means you need to log into the server periodically and save backups every once in a while. What a chore!
git repository itself is a backup. The local
git repository on your computer is a backup. Since there are always two copies, you can easily push your changes back up again if your GitHub account gets hacked, or you can easily download your blog if your laptop accidentally goes for a swim.
Or just add 2FA to your GitHub account and make it harder to hack.
Most VPS instances cost $5 per month or more. That’s $60 a year!
“But that’s the price of a coffee. Are you seriously saying that’s too expensive?” Yeah, because:
GitHub Pages is completely free. Netlify? Completely free too (with paid plans available for bigger sites).
I just realized I keep mentioning those two services a lot. To be clear, this is not a promotion and I’m definitely not affiliated with any of those companies. They are just the free options that I know of. I’m pretty sure there are similar static website hosts that have free plans, too!
OK, here is a clear benefit for dynamic websites: it’s easy to use! I admit that if you’re a blogger with no technical expertise then the block editor in WordPress is certainly easier to use than editing Markdown documents.
But for me, I feel like manually editing Markdown documents makes me post not for the sake of posting, but to share actual, useful information with others. Quite often I come across WordPress websites littered with completely crappy, clickbait articles that I have no intention of even reading. I never want my blog to become one of these websites.
So the above reasons are why I finally made the transition from WordPress back to GitHub Pages and Jekyll. I hope that I can stick to this platform for a long time, but I’m certainly open to experimentation if a better platform comes out in the future!