Having a technical blog in 2024
What's the most convenient way to set up a technical blog in 2024? The fact is that in this day and age there is an almost overwhelming plethora of choices from Wordpress, to Github pages it seems that there is something for everyone.
Thinking a bit more about my goals and what I value these were the initial requirements I set for this project:
- Cost efficient - if possible I don't want to pay for hosting or a server for a blog that probably will not get a lot of traffic
- Low maintenance overhead - I really don't want to fiddle with server management and updates
- Content is version controlled - There is power in simplicity. Content should be stored in plain text (preferably Markdown), authored in my favorite tools and stored under version control.
- Allows for custom domains
With this in mind, solutions like Wordpress really didn't fit the bill, and thus I started looking at what's out there in the Jamstack world.
I evaluated three different infrastructure providers (by no means complete, but one does what one can):
Pros:
- Seamless integration with Github
Cons:
- Forces you to use Jekill (personal preference... But I am not a Ruby man)
Pros:
- Rock solid
- I'm super familiar with the AWS ecosystem
- Flexibility - you can choose pretty much any site generator out there
Cons:
- SSL support requires usage of AWS Cloudfront
- Requires setting up a github action to deploy
- I would probably end up writing some Terraform code to manage the AWS resources - so more complexity
Pros:
- Flexibility - you can choose pretty much any site generator out there
- Seamless integration with Github
Cons:
- N/A
Conclusion:
At the end of the day Cloudflare pages hit the sweet spot for my needs, and so far the experience has been stellar. The setup is straightforward and it amounts to allowing Cloudflare to access the github repo, and adding the build command and the target directory for the build (I'm using Docusaurus).
If you have a domain registered with Cloudflare associating it with the website is also quite straightforward - a much better experience that what you have in the AWS ecosystem.