This post was first sent to my newsletter on March 19th, 2021.
You really ought to subscribe :)

I blame Mahe for this post.

Hey, Jason!
Can you please write an article on how to build a website like yours, where I can post my blogs?

Check out her blogs, here and here.

This one is squarely aimed at all the young ones, who are convinced that they need to be writing.
(Maybe, it was me who convinced you, in the first place.)
You are young (or like me, forever young) and broke (also like me).
You need a place for your thoughts to call home.
You need a place to write, and grow and focus more on what you want to say about life and what you study or what you work at, or the portfolio/showcase of thoughts you will slowly build.

What you use to write, does not matter at this stage!

So, what now?

Intent (aka, what do you want out of your blog?)

I have learnt the hard way, that the only way I can write better posts, is by writing [*lots* of crappy ones][crap]. I started a static website in the early oughts, then had a blogger blog, then a tumblr blog, then a self hosted wordpress blog, and then a self hosted ghost blog and now this self hosted [nikola blog][nb]. I sweated over the spacing. I fretted over which blog engine was best and most performant. I wondered about which ones protected privacy best. I had flame wars over which language was the best one to create a blog in, what sites were the best hosts, what frameworks would work better and how static blogs were so much faster than dynamic blogs but dynamic blogs offered so much power and flexibility. (all while I did not know how to write a single line of code.) I designed my blogs the way I wanted them, I bought premium themes, I bought fancy text editors and then figured out how I would write and where I would share them. I was all set.

And then? … zip, nada, nothing.
The blogs just languished.

This current incarnation of the blog is the only one that I have stuck with and written lots on.
Every one of those previous attempts just withered on the vine.
And not for lack of good intentions.
I was always going to write that perfect post.
I was waiting for more data, so that the post would be complete.
I was researching for depth, because this subject was not just a post. It was a whole series.
I never got around to actually writing though.
It was lack of focus. Lack of intent.
Think about why you are starting the blog and what do you want on there?
And that will give you direction about what to write.
You might realise that you don’t want to write, and just play with technology.
That is fair too. At least you’re being intentional about it.

Begin Writing!

If you have never written before, my advice to you is
  • to do precisely 1 hour of research, into all the free, hosted blog engines that are out there. Off the top of my head, Write.as, Netlify, Tumblr, Wordpress, and Medium come to mind.
  • make dummy blogs and explore all their features over the next day or two (at most). Figure out what interface you are most comfortable with.
  • Begin Writing.

I cannot stress this enough.
You will never write perfect posts.
How do I know?
Because I tried so hard, for so many years.
And failed.

What you can do, is show up on the first day.
Publicly commit to writing everyday.1
And write.
Everyday.
Good.
Bad.
Ugly.
Whatever.
Just put words on the page.

The only two things that’d probably matter are,

  1. That you show up on the time you committed to
  2. And if your blog needs a general direction in the long run, you kinda sorta write your posts in that general direction.

Even that is a pretty distant second though.
First, master showing up daily.
Build that discipline.

Tools of the trade

Caveat, don’t even *think* about reading this section, if you have not written close to a hundred posts on a regular schedule first. You need that muscle built strong. The rest as they say, is window dressing. Once you have written a couple of hundred posts, you get a pretty good handle on what it is that you are writing and what it is, that the blog needs to do to serve that purpose. I can tell you why I did, what I did with my blog. It might help you build yours? I don’t really know. But honestly, once you get on with writing, you will figure out most of this stuff or know someone who does, or understand that maintaining the status quo is good enough, until you can afford to pay for a hosted vendor, who does this all for you.

I used Wordpress for a long time and loved it.
Then I thought I wanted to control it all, and so I hosted Wordpress on my own site.
Then I actually understood, what a headache maintaining it all really is.
Then I looked for something simpler.
I backed the Ghost kickstarter and as soon as they released it, I began using it.
It served my needs really well, until they decided to go in a different direction and abandon what I loved most about it. Writing in markdown. (I had written enough, to realise that any blog engine that I would use, needed to support Markdown.)

And by then, like I said, I had written enough to know what I wanted out of a blog.
I was writing for myself, so I did not want comments.
That eliminating comments also got rid of moderating people and spam was just a bonus.
If I wanted, I could actually go spread my message seperately. (the fediverse, email newsletters, social media networks and all that jazz.) But that is an intentional step. Separate from my act of writing.
I mostly wrote words. So I needed something that would have pretty text.
And since it was mostly just text, I could get by with a bunch of Markdown files rendered into static html files.
I did not want to upgrade and patch and maintain a blog engine some place.
I wanted something I could either host on my own server or just on some site somewhere else.
This would be easier once again if it was just a bunch of files that needed to be placed somewhere.
I wanted the ability to write from anywhere.
And finally I wanted a measure of control over where all this was.

All these considerations led me to realise …
A static blog, with a pretty looking theme would address both my bunch of files requirement and my show words well requirement.
There were tons of fonts that I could use. So I chose one that was free to use and I could host myself.
Not just hosting fonts, right now I can afford to host the site myself, so I have a Linode that hosts this blog.
The static blog can just as easily be hosted on some free place like github.io if life takes a turn for the worse.
I was learning Python, so using a static site generator that supports markdown and was built in Python seemed logical. So I picked Nikola.
(Did not really matter in the long run. I have used Go based Hugo, and Ruby based Jekyll too and all of them work essentially the same way. Even the theme I use on the blog, Lanyon, is originally a Jekyll theme, and can be found in Hugo as well).
So I learnt how to install it on my desktop, and customise it to use the fonts I wanted in the weights I wanted.
Then I learnt how to automatically deploy it via ssh to my site. Most static site engines offer to automatically deploy to github.io or are available as hosted services on Netlify. Here’s Nikola on Github/Netlify.
And finally, I’ve always wanted everything to be under my name, ergo the domain which I saved up for and bought.
It’s not essential to your writing, but probably essential to your identity in the long run, so that might be something to consider too.

So there we are.
One more post done :)
If you have questions, mail me! (jason at this domain)

P.S. Subscribe to my mailing list!
Forward these posts and letters to your friends and get them to subscribe!
P.P.S. Feed my insatiable reading habit.


  1. or to a schedule that you are comfortable with and publicly commit to. ↩︎