20 August, 2025
Over the years, I’ve used several platforms to publish the various blogs I’ve maintained. Those have included Blogger, WordPress, Ghost, Write.as, and a few others that are no longer with us. For a while, I also published a blog or two using software called a static site generator.
For a variety of reasons1, I ditched all of those platforms and tools a few years ago and went back to my web publishing roots by embracing simple HTML. That sounds old school, and it is. At least, to a point. But I also added something of a modern twist to it all.
So, how do I write and publish my blogs? Here’s a look behind the curtain to find out.
Writing Posts
Every post sta…
20 August, 2025
Over the years, I’ve used several platforms to publish the various blogs I’ve maintained. Those have included Blogger, WordPress, Ghost, Write.as, and a few others that are no longer with us. For a while, I also published a blog or two using software called a static site generator.
For a variety of reasons1, I ditched all of those platforms and tools a few years ago and went back to my web publishing roots by embracing simple HTML. That sounds old school, and it is. At least, to a point. But I also added something of a modern twist to it all.
So, how do I write and publish my blogs? Here’s a look behind the curtain to find out.
Writing Posts
Every post starts with a simple text file, formatted with Markdown. While I have a good knowledge of HTML (I wrote a short ebook about it, you know!), using Markdown just flows better when I’m writing.
I use a simple template for writing blog posts, which looks like this:

That stuff at the top, between the dashes, comes into play when I publish the post. The title and date are added at the top of the published post. The abstract is a description that’s included with the post’s entry in the blog’s RSS feed.
I won’t go into how I write blog posts — it’s mostly typing, after all. A future entry in this space might go into detail about what passes for my writing process. Stay tuned.
Publishing a Blog Post
Once a blog post is written and is ready to be fired off to the wider web, what happens next? I’ve automated that process, which involves:
- Converting the text file formatted with Markdown to HTML.
- Adding some code to links so that they open in a new tab.
- Adding a link to the post to the blog’s landing page.
- Generating an entry for the blog’s RSS feed. At the centre of my publishing efforts is a script2 that does all of the above. I didn’t write that script myself — I don’t have anywhere near the technical chops to do that. Instead, I wrote a very detailed prompt and got an AI chatbot to write the script for me3. That script saves me more than a bit of time and effort — I don’t need to try to remember a bunch of commands I only use once every few weeks.
Doing the Job
When I run it, the script asks me for 1) the name of the file containing the blog post that I want to publish, and 2) which blog it belongs to (remember, I have two blogs).
Each blog has its own layout and link structure. They’re similar, but just different enough that I need two templates for publishing posts. A piece of software called pandoc converts the Markdown-formatted text file to HTML and drops that HTML into one of the templates. The script then runs through the other tasks that I listed a few paragraphs ago. The entire process takes a couple of seconds.
Once that’s done, I need to move the HTML file elsewhere and change the date and time for the entry in the RSS feed4. Then the post gets shoved on to the web.
Final Thoughts
That all sounds a bit techie, doesn’t it? I guess it is, but on the other hand I don’t know much (if anything) about the details of how the script I use works. I just run it and I wind up with what I need.
Admittedly, this isn’t a solution for everyone. And it’s definitely wouldn’t be suitable for someone regularly publishing a large number of blog posts — especially someone churning out loads of content every day. Since that’s not me, and since I take a slower, more measured approach to blogging, this setup works very well.