Are Static Site Generators All What They’re Hyped up to Be?
I’ve had a website for a good 10+ years or so now, and I’ve come to use a lot of web development tools in that time. This includes everything from coding in pure HTML to using CMSs such as WordPress, Joomla and Drupal. I’ve also come to use some static site generators on and off over the years before settling with WordPress.
Static sites generators, also known as SSG’s, such as Jekyll and Hugo are all the hype these days. I’ve tried both, and I must say, I like them very much.
I love the idea of SSG’s. They’re both fast and secure. In the end, you’re essentially serving static files which are quick and easy to load and works with any type of web server (Apache, nginx, etc). Also, by taking the database out of the equation there are almost no security implications to consider which also makes the process much simpler. It’s as solid as a rock as there is nothing to be hacked.
It sounds like such a great deal, but there are a few issues which many people forget to consider before migrating their site to a SSG.
Issues of SSG
Firstly, you’ll need to reconsider how to manage your content. As there is no need to have a database involved, all the data will be stored as text files. In most cases, this often comes in the form of Markdown files. This raises a few questions. “How do I organise files?“, “How do I manage images?” and “What markdown editor do I use?“. The truth is, there is no right or wrong way to go about it, but in my experience, things start to get messy after a while as it becomes hard to keep track of everything.
For a while, I did end up using FrontMatter – an extension for VS Code which brings CMS features to SSG’s such as Jekyll and Hugo. This met my needs for a bit, bot the process for publishing and updating content just become a pain. Which leads me to my next issue. The issue of updating content.
Again, there is no right or wrong way to do this, but in most cases, you end up using some form of git-based workflow for tracking changes and deployment. While there are free services like GitHub Pages and Netlify (which are excellent, by the way) for hosting your content, these depend on git as a way of publishing which, in turn, forces you to use a desktop machine with a terminal – not ideal for those who, like me, want to edit on the go.
Personally, I found the process of creating, editing and publishing markdown files so tedious and time-consuming. I had to run a command to 1) Create the markdown file, 2) Add the front matter (title, timestamp, categories, tags e.t.c), 3) Write the content, 4) Save the file, 5) build the site then, 6) Publish. As you can see, I had to run a bunch of commands every time I wanted to make changes to my site. I find that it’s just an unnecessary. Personally, I found that this made blogging on a regular basis, much harder.
Why I use WordPress
Don’t get me wrong, WordPress isn’t perfect as it certainly has many flaws, but ultimately, WordPress has allowed me to publish in a regular schedule as it helps to simplify my workflow. In a matter of a few clicks, I can get a new draft open and start editing. This is great for someone like myself who struggles to get into the rhythm of writing consistently.
For me, the single best thing about WordPress is the GUI block editor and web interface. It’s not perfect, and I’m very aware that not everyone likes the new block editor. It does mean that I can edit content when I’m away from my computer using either my iPhone or iPad. For me, this is really important as I want to be able to dump ideas on the go which is a massive plus in its favour. It also means, I don’t have to worry about trivial content management issues, such as knowing where to locate images. It will just do it by itself.
Furthermore, because WordPress is one of the largest content management systems on the web, it has a large community of supporters meaning that it’s better documented and understood. This is reassuring, should I need help with something important.
Will I go back to using a SSG at some point? Maybe, but not for now at least. I am open to using it again if things take a turn for the worst.
For now, I currently run this WordPress site on a Raspberry Pi which is sitting in my office. This can be accessed over Cloudflare Tunnels, which means I don’t have to expose any ports on my home network. Because I use Cloudflare, I also have additional protection against various hacks and DDoS attacks. I also try to reduce the amount of plugins I use to make the site as fast and as efficient as possible.