Creating a tech blog which I actually enjoy writing
📝

Creating a tech blog which I actually enjoy writing

Tags
Static Site Generator
Web Dev
Blog Engine
Published
February 7, 2024
Author
Onni Hakala

In the beginning, there was WordPress - capital_P_dangit()

I started my career in 2012 by working with WordPress. I created many small sites for multiple clients and helped my first workplace, seravo.com, pivot from a Linux server maintenance company into Premium WordPress Hosting. I have attended 7 WordCamps all around Europe and have given few workshops and talks about WordPress as well. Working with WordPress paid my bills until 2017 so I’m very grateful for it.
WordPress allows you to create pages and articles very easily and contains very impressive amount of plugins to do whatever you can imagine. This extensibility and huge feature set make it also pretty clunky to use for just writing content.
I guess ignorance is a bliss. Because WordPress is so popular, there are multiple hacker groups constantly scanning the whole internet for WordPress sites which they try to then take control of. After working so long with WordPress and maintaining hundreds of client sites, I learned the hard way that using it requires good security practices like server hardening, file scanning, and ensuring all updates are installed ASAP. Some updates create breaking changes which can take time away from the content creation.
Me giving a presentation about WordPress updates in WordCamp Helsinki in 2017.
Me giving a presentation about WordPress updates in WordCamp Helsinki in 2017.
Sucuri, a security company, reported that 4.3% of WordPress websites scanned with their SiteCheck tool in 2023 showed signs of compromise. This translates to roughly 13,000 hacked sites per day or 4.7 million per year. Source: secure.wphackedhelp.com/blog/hack-wordpress-website
The extra maintenance headache pushed me personally away from using WordPress for content creation 🏃💨
The extra maintenance headache pushed me personally away from using WordPress for content creation 🏃💨

Static Site Generators

Jekyll.rb in 2018-2019 for a company tech blog

In 2018, I tried SSGs for the first time by creating a personal tech blog for keksi.io. Back then, Github Pages were the easiest way to create them and it defaulted to Jekyll. Jekyll was nice since it was created with Ruby, which I really enjoyed using back then. It was easy to customize and I added AMP support to my site because back then it looked like AMP was going to take over the world.
Getting the same project up and running turned out to be pretty complex because Ruby used the Nokogiri gem which required native XML parsing C-libraries. Getting these libraries to work in different machines was pretty painful. Also, the local development for the site was very sluggish (especially after adding my poor and slow AMP implementation to the site).
Because the site was so slow, it really didn’t motivate me to do much writing and I kind of gave up on that soon after I had started.

Hugo in 2023 for a travel blog

In late 2023, we wanted to start a travel guidebook & blog with my wife. The intention was to write more about what we had learned when traveling in Europe.
Again, I wanted to have a static site because it’s much cheaper to run them and they are fast to load for the users. I spent some time looking at different SSGs and many people had told me that Hugo is pretty fast and I found a very nice template for Hugo called Lotus Docs:
I modified the template and we were pretty happy with the results and wrote a few guide pages to the site. I documented in the project README how it can be used locally and enabled the git integration in Cloudflare so that Cloudflare will automatically build the site when new commits have been pushed. It’s pretty fantastic that Cloudflare has such large support for different site generators in the Cloudflare Pages and provides this for free of charge.
The original idea was that my wife would also participate in this blog. Even if she has studied the basics of programming and even though VSCode supports previewing markdown, editing the content and adding pictures directly in the markdown was very painful and slow for her. When teaching her this process I realized that it’s also pretty awkward for me as well.
I didn’t want content creation to be painful and slow. Back to the drawing board 🤔

Using Notion as the Content Management System (CMS)

I had been using Notion a lot in my job at swappie.com. It is easy to use and contains brilliant AI-assisted workflows for editing and creating content. It does lack the ability to do few things like:
  • Adding “alt” texts to images to improve accessibility
  • No way to add structured metadata like JSON-LD so Search Engine Optimization is harder
  • Link relationships like rel=”me” or rel=”sponsored” can’t be added
  • You can’t decide if links should be opened in new tab with target=”_blank” or not
Even with these limitations it’s still faster and more pleasant to write content with it.
I googled how to create my own website with Notion and found out that one can actually publish pages and their sub-pages to the web directly from Notion.
By default, Notion creates pretty terrible-looking URLs like: https://onnimonni.notion.site/Creating-a-tech-blog-which-I-actually-enjoy-writing-2eaa0fc326db46b2852c1e60ce3bc981 and doesn’t have any way for users to add a custom domain or prettify the URLs. I guess Notion will probably add these features in future.
When I continued to explore this, I noticed that super.so is providing this exact thing as a service. In hindsight, I maybe should have just given them the money since they provide a lot of nice features in their 16$ / month paid tier like custom domains and SEO optimizations.
I thought that I wanted to learn more and build this on my own and checked from Github what open-source alternatives there are and found out about nextjs-notion-starter-kit:
nextjs-notion-starter-kit
transitive-bullshitUpdated Dec 3, 2024
The creator has created a sample blog for himself which is published at http://transitivebullsh.it/.
I followed his instructions and was able to get this site and up and running quite easily on Vercel.

Conclusion

I have now been using Notion for content writing for few weeks and have been very pleased with the experience.
I hope that this story will motivate you to start a blog of your own. Please let me know if you have had a better time with SSGs and which kind of CMS you’re using for your content 🤝
Editing content is so easy with the Notion apps for MacBook and iPhone 🥳
Editing content is so easy with the Notion apps for MacBook and iPhone 🥳