Alex Dee's blog



How This Blog Works

July 06, 2026 13:56:52 ADT

I figured you may appreciate a little background as to how this blog works, what my workflow is, and generally how this website (or capsule for our Gemini readers) comes to be. This post will attempt to explain that. This is not a how-to post, but you could use this as a blueprint for creating your own space on the internet. Here’s how it all goes down.

Hugo

Hugo is what makes this easy once everything is setup. It takes some time to set up Hugo, but then the workflow is predictable and changes very little for years. Only a major version release would give you reason to really re-evaluate a workflow change once you’re happy with how Hugo is setup.

What Hugo does is take Markdown files and exports them to HTML files according to a set of instructions called a layout. In my case, because I’m dual publishing both HTML and Gemtext, Hugo outputs to both from the same Markdown file. This saves time when creating a new post. It creates everything in a public directory that I can then just upload to my web server. And that’s the next piece of this puzzle.

VPS

I have a VPS, a virtual private server. I rent mine from Hostwinds. They have competitive offerings and excellent customer support. I intend to write a product review of their services in a later post. For now, all that’s important to know is that I host both an HTTP server and a Gemini server on the same box. They both point to the same document root, which means I only need one directory for both the website and the capsule (that’s the Gemini protocol equivalent of a website).

Using my own VPS means that I also can choose to migrate to another VPS provider if I choose to, configure some of my own custom settings that better fit my needs, and I can upgrade my plan if the website ever gets huge or I need more bandwidth. Overall, a VPS is a great way to serve the content.

Editing

I edit my pages with a Linux tool called vim. Vim is a very powerful text editor that runs in a console window and provides various options for editing text in a way that conventional text editors simply can’t match. Once I direct Hugo to create a new page or post, it creates a bare bones Markdown file. Then, I open vim to edit it. This provides a powerful workflow for me to edit the post, which as discussed above will be exported to two different protocols at the same time.

Publishing

With all of this tied together, I use another Linux tool called rsync. With one command, I tell my computer to take the public directory that Hugo created earlier, and upload it to the VPS. Once it’s on the VPS, the HTTP server and Gemini server already have access to it. This makes those posts available to the public and live on this very website or capsule. It’s efficient, it’s scalable, and best of all, it’s mine so I have better control over my data than relying on website builders like Wix or pre-existing blog engines like Wordpress.

Backups

Of course, none of this is worthwhile without backups. This website is backed up to my physical computer. So if the website goes down, I have a copy I can access. If my computer goes down, the website will likely still exist.

But for an even more robust backup, I use another Linux tool called git. Git is a tool that was originally developed in 2005 and had programmers in mind, so it has features like version control. But this works extremely well for a blog too, as you can see how documents change over time, when new ones get pushed to the repository, etc.

This also makes for a very convenient backup. If both the website and my computer copies somehow disappear, there’s a git repository available. With a single command, I can restore the website from the most recent backup and begin working again. With git, even in a catastrophic data loss scenario, so long as the repository is intact, I can be online again within an hour if needed.

Conclusion

Ultimately, I think this is a great workflow, and working from Linux is the best option for me. These tools help me, they stay out of my way, and I get to publish a minimalist, reader focused blog. This is a win/win for everyone involved. This website and capsule get built from tools that each do one job well, from Hugo generating the code, vim editing it, Hostwinds hosting it, and git backing it up. This leaves me free to focus on writing now that everything is set up just the way I like it.