My first blog post, Message/Event Driven Application Design, was on June 7, 2010 over 15 years ago on a free hosting on Wordpress.com, which has served me well

In January 2021, the Uganda Communications Commission publicly shut down Facebook in Uganda. However it also silently blocked other sites across the different telcom providers, there were voices of GitHub access being blocked too due to hosting VPN software that was being used to get around the blockade.

I only found tat Wordpress.com hosting was blocked by mistake in 2022 as I was struggling with accessing my blog https://x.com/ssmusoke/status/1486938522166738946 since it seemed to work for some people with VPN access, despite my having a custom domain, the backend always referenced the wordpress.com hosted site

In October 2024, I moved this blog from the wordpress.com hosting to my own server https://x.com/ssmusoke/status/1849758877899710596, which had been setup and configured with Laravel Forge, since I knew that Wordpress hosting was prone to hacks, thus needed to ensure my server was never compromised

After 2 emails from my hosting provider towards the end ofJune 2025 that my Wordpress install had been compromised, let me to decide to go back to wordpress.com hosting. However the painful domain changes needed, made me question - Do I really need to go through all of this pain?

I decided that no enough is enough, I need to take back control of my blog with the Uganda government blockade in place, maybe get around that too. The key was to move it back to something I can control

I sharing the journey below, hopefully it can help someone else

Exporting content from Wordpress

I used the Wordpress export tool for all content to export an XML file with all my posts and pages. This is an XML file with Internet based links to the media, which are not included in there

Transforming Wordpress Export to Markdown

Markdown is the king of content creation as it is easily transformable into anything that you may want. Using my Google Search fu, not my AI - I found this project https://github.com/lonekorean/wordpress-export-to-markdown ( I will be sending my sponsorship very soon) which worked flawlessly

I transformed the Wordpress posts and pages as follows :

The command I ran is

npx wordpress-export-to-markdown --frontmatter-fields=author,categories,coverImage,date,draft,excerpt,id,slug,tags,title,type --input=wp-export.xml --post-folders=true --prefix-date=true --date-folders=none --save-images=all --output=output-no-folders-date-prefix

The output looks like

markdown-posts-with-images

Static Site Generation

This was the hardest part of the effort, I tried multiple options

  1. Statamic (https://statamic.dev/) - a Laravel based CMS, but I could not get the import from Wordpress running on the free version since I could not justify the full cost
  2. Jekyll (https://jekyllrb.com/) - I have used and loved this static site builder, but the challenge was integrating a theme. I am not a designer by default so I cannot put these together. The theme options I looked at were:

Deployment

My server is configured and managed by Laravel Forge, an excellent tool I must say so the approach I am using is as follows: