how to code a blog

by Benjamin Hollon
7 minute read

To kick off my third blog, Musings, I thought it might be fun to list out the general process I follow now when coding a new blog (or, the process I wished I followed).

But first, let's look a little at the idea behind Musings.

What is "Musings"?

Musings is a place where I can be me, without worrying too much about formality, staying on topic, or pleasing the people. It's where I'll be posting announcements about new things I publish, reactions to feedback people give me, behind-the-scenes on my various projects, and more.

For those of you subscribed to my See With Eyes Closed Digest, you know what I'm talking about. In those emails, I'm generally pretty easygoing, posting about various things I'm interested in. Now, I'll be doing some of that here, too.

As I said, this is a pretty informal place. I'm not planning to do intensive grammar checking on my articles (usually I read through an article 3-5 times and run it through Grammarly), and I'm not going to worry about sticking to a theme. I think giving See With Eyes Closed a theme was an excellent move, but I also need a place where I can write about anything that comes to mind.

Some of it will be more technical, since I'm not worrying about keeping it catered to a specific audience. I'm not going to be afraid to use jargon. As I said, this is a place where I can be me. If you were to talk to me in person, this is largely how I would talk.

I hope it'll still be interesting to people.

Without further ado, let's look at my thought process when coding a blog.

Planning the blog

This is potentially the most important step; when I first coded See With Eyes Closed, it was a pretty random thought, without much effort put into the concept. Here was my thought process from beginning to end:

  1. Oh, some of my friends have blogs.
  2. That's pretty cool.
  3. I want to make one too.

Not much planning. It took me two years of intermittent posting and random topics before I decided I should actually think things through.

Here are some questions I recommend asking yourself:

  1. What will your blog be called? Just "blog" is a bit boring. In my case, the exception is the Verbose Guacamole blog, which is already attached to the name of a product I make. I picked "Musings" for this blog to reflect it's random nature, showing that it's a more raw look at what's going on in my head. I'm still thinking through what See With Eyes Closed means to me, but it was named after a couple of quotes I liked.
  2. What will it be about? I do think writing a blog with a defined topic is a good idea. I've moved See With Eyes Closed to a series on Digital Citizenship which I plan to keep it on for this entire year, but I also think I'll be switching the theme occasionally after that. On the other hand, you might just be making a personal blog, about your own adventures. That's fine too.
  3. Who is the audience? If you're a coder, are you writing for other coders? Are you writing to potential readers of your yet-unpublished novels? Are you attracting customers? Is this just for friends and family? Your intended audience will govern the tone you pick for your blog.
  4. What's the tone? As I said, Musings is fairly casual. The current form of See With Eyes Closed, though, is rigorously researched and a relatively formal structure, but with an informal tone, addressing the reader directly. I recommend trying to find a structure that works for you and trying to design your blog posts to match.
  5. How often will I publish things? This is more important than I realized at first. I tried once a week, but I didn't actually commit to that publicly, so it quickly fell apart. In 2021, I only published nine posts, three of which were from school projects. In contrast, this year, with my goal of 100 total posts in 2022, I've already published four (this article makes five) and am finishing another. Having a goal and telling people what that goal is makes it far easier to write regularly.

The Technical Side

Some of you have been waiting for this, bored by all the planning stuff. Well, here it is. (To those who aren't technically minded, setting up a WordPress site should be relatively straightforward and will suffice.)

The first step is to pick your programming language. All three of my blogs are currently written in NodeJS, but See With Eyes Closed was originally written in PHP, and I'm sure you could do this in other languages such as Python if you prefer. (I'm not a huge Python fan, sadly.)

I'm not planning to give you technical information about how I coded my blogs, since that is highly subjective and ruins the fun of you figuring it out. If you do want to take a peek, though, all three blogs have their code available on my GitHub account.

Once that's done, you need to pick the method you're going to code it with. I've actually done this two ways:

  1. See With Eyes Closed and Musings — Articles are stored in a database. I currently use MongoDB, though I've used MySQL in the past. This approach gives you a huge amount of flexibility.
  2. Verbose Guacamole — For the VerbGuac blog, all of the articles are stored as files in the code itself. This is far quicker and easier, and sometimes better, but it does make it very hard to implement comments or any sort of feedback system on individual articles without resorting to a third-party service like Disqus.

Both are good approaches; it all goes back to your planning. What do you want this website to be? If you want your blog to be something of a community, you'll probably want to go the way of Musings, where people can easily respond to what you post. If it's just a way for you to share information, use VerbGuac's method.

I've also seen people simply link to their contact form or social media to allow people to reply; that's a perfectly valid approach and one that could give you the best of both worlds.

Steps

Here is the actual order I code things in:

  1. The Frame. — Your blog probably isn't the only thing on your site. Code everything else first, then begin on the blog. Even See With Eyes Closed has some content other than the blog, and I made that first.
  2. The Admin Dashboard — If you want to store your articles in a database, you'll want to publish them through some sort of dashboard. Make sure it's password protected, probably through Basic Auth. At this point, all you need is the mechanism to post articles.
  3. RSS — Most would have this as the last thing, but I recommend doing it very near the beginning. RSS is a far easier format to generate than pretty much any other way you could display your articles to your readers, but it also makes you think about what needs to be displayed, so it's a good starting point. (What is RSS?)
  4. List Articles — Make a page that lists all articles. You can pick how this is displayed; on an old version of See With Eyes Closed, I had a list of articles in published order and another in order of popularity. Currently, I have published order and a way to view all the articles of a series in order.
  5. View an Individual Article — You'll need to let people read the article! I recommend trying to make a page that's simple and not distracting. Something you could read on for hours if need be.
  6. Edit an Article — You're going to need some way to edit articles once you post them! Add that to your admin dashboard! (people going the VerbGuac route can skip this step)
  7. Bells and Whistles — Add comments, reactions, and anything else to make the experience fun. Don't forget to add a way to moderate your comments! If you're considering using Google reCAPTCHA, don't. Here's my recommendation instead.

I think that's it. You'll probably find things along the way that I missed, but that's part of the fun! And there are always new directions to take your blog; I recommend revisiting the code at least once a year for a major redesign.

Actually Posting

This is the hard part for many people. I'm not sure what to tell you.

But here's what I'd recommend: set aside a time regularly where you can sit and write without interruption. Remove any devices you're not actively using, pick a non-distracting program to edit in (I recommend Apostrophe on Linux), and let loose. It doesn't have to be good.

Once you have a draft, here's the process I usually run it through:

  1. Read it through. Fix any obvious errors.
  2. Plug it into Grammarly. I have a premium account through my school, which makes it especially useful, but even a free account should help. Feel free to use a similar tool.
  3. Read it through again. Fix any more errors.
  4. Read it through a final time, out loud!!! Reading out loud will help you catch so many mistakes or awkward ways of wording things; it's probably the best proofreading technique I've developed.
  5. Show it to someone for feedback. (This step is very much optional and one I rarely do.)

🎉

Congratulations! You've successfully coded a blog and published your first article.

Please send me a link on social media, my contact form, or in the comments below; I'd love to take a look and give you feedback.

I, also, have just successfully coded a blog and published my first article. Thus ends the first Musing.


  1. Increase size
  2. Decrease size
  3. Dark mode
  4. Change font