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.