I’m a strong believer in:
The easier something is to do, the more likely you’ll do it.
That’s why I spent some upfront energy making it as easy to write new blog posts as possible. This is what allows me to document small thoughts or issues I encounter.
The first step was choosing a tool that makes it easy to write new blog posts. I’ve been sold on the idea of static site generators, where one essentially has to write markdown and the framework will apply a series of HTML/CSS/JS in the form of a “theme” and spit out a static website. I’ve personally decided to use Hugo but any tool will work, as long as its easy to write in.
From there I store my website on Github, using a private repository. That way I have everything under version control and I can write my content on any machine.
The next step was choosing a tool to perform my hosting. There are many services out there that will provide free or next to free hosting options for static websites. I decided to go with Netlify to try the platform out and ended up enjoying it a lot.
So at this point we have a place to store our code and a place to host our code. The only downside is the process of pushing a new article is all manual. In come CICD. Netlify has the ability to interact with Github, where on push to the repository, Netlify will pull down the latest version of our website, invoke Hugo to build our static site and host our content.
Additionally, I find most of my software development to be in Python lately and find writing quick scripts in Jupyter Lab to be a pleasant way to quickly visualize data and write notes inline. A wonderful tip when writing code in Jupyter is one can export the content into HTML/CSS/JS, pure markdown or even an interactable slidedeck using Reveal JS. So what I’ve found useful is developing my software, for a blog post, in Jupyter Lab and exported as one of the formats mentioned. The exporting to Markdown works particularly well with Hugo or any static site generator.
One more thing to add is I have configured the Android app Termux on my phone to be able to write quick blog posts on the go. I don’t know if I’ll actually leverage this, but it was fun to setup.
This wraps up our process. For completion sake, I should mention I decided to go with Namecheap to register my DNS name with.