Another year, another blog
A little more than a year ago, I moved my blog from Blogger to Medium. Medium, as a blogging platform, was always meant to be temporary. It is platform with a modern look. It is a free service. One does not need to worry about domain registration, uptime, security patches(!), or a host of little things that adds up. The price is, however, to give up control of your content.
Control is a high price. I will turn forty-one this year and memories seem strikingly precious. Control, for me, isn’t simply about monetization - I care little about that. Nor do I care much about appearance and layout. I just need occassional code snippets and images. Control means agency over how my writings are backed up and programmatically processing my contents.
This last year gave me time to work on a couple of side projects. Now, with Grs and Forget being usable, I can take the time to look into running my own content platform. This effort was by no means easy. It isn’t sufficient to just run your own site, it is important to meet the following criteria:
- A way to deploy your contents indepently
- Guard against vulnerabilities
- Backing up your data
- Store contents in a platform neutral form
A way to deploy your contents indepently
This is possible through Terraform and AWS. Terraform allows one to codify infrastructure. This allows a single command to: Deploy a server, configure a firewall, install required software, checkout raw content of a web site, then deploy the website using S3. AWS is not going away anytime soon. My contents will always be public and accessible at a reasonable price.
Guard against vulnerabilities
To guard against vulnerabilities, I decided to use a static site generator. Unlike Wordpress, which runs live code that may be hacked, a pre-generated site is always read-only. While the underlying OS and web server may still be subject to hacks, the surface area is significantly smaller and easier to keep secure.
Backing up your data
For the short term, backups takes the form of a Git repo, which is effectively backed up both locally (on my own hardware) and in a paid repo. This is ok for now. But there is still a todo to automatically version the repo in S3 for long-term safe-keeping.
Store contents in a platform neutral form.
This means minimizing markups. One thing Medium was great about was the simplicity of its markup language. It is almost plain text like in its design, which makes it very easy to copy-and-paste data out of Medium should that be necessary. With this new blog, my contents will be stored as Markdown, or plain text files, which can be easily processed and transformed if I ever need to move the contents into another format. Unlike the posts in Medium, however, I can process them en-mass using a computer script.
I’m looking forward to move more and more of my writings into a form that I have control over so I get to keep them forever. Because, at the end of the day, written words will be all I have to hold on to.