How to start blogging
Tags: writing
Published: 2021-01-11 07:28:31

It's the start of a new year, and a time when new resolutions come to people. One of those resolutions may well be to start blogging. But just how do you do that? I aim to cover some of the important areas which are involved.

Not, this is only about creating a blog. It will not cover marketing or general promotion. I'm really no good at that stuff.

## Topic
Subject matter is important. It doesn't matter if you are writing about technology, like I do, or about [composting](https://www.compostmagazine.com/).
I chose that example for two reasons:
1. It's a blog of my boss
1. It's an obscure enough topic to show you can blog about anything

Regardless of the topic, it should be something you are passionate about. That way, you'll have motivation to keep going. There will be times when you get writers block. There will be times when you have a lot on away from blogging. Being passionate about the topic will help keep you going.

Ideally it will be something you are also knowledgeable about, or wanting to learn about. Having, or gaining, knowledge about a topic helps provide a level of authority which helps build trust with your audience.

## Habit
Blogging is something which takes time and effort. Sometimes it will come easy. Other times, not so much.

If it's something you are serious about, make sure you set aside the time for it and make it a habit. That's both true for actually writing the content, and for publishing it. Throughout 2020 I published posts regularly on a Wednesday. Anyone checking the dates on the posts would know that Wednesday, 10am (UK time) would be a new post from me.

Setting a day and/or time to publish a post is one thing. Actually having the content to post is another. Most of my posts are 4-5 minutes of reading. Not particularly long. What might be a surprise is that they take a couple hours, or more, to put together. That's just for the first draft. That's a lot of time to be spending creating content which may or may not be read by someone else.

Make sure you put time a side to create the content ready to post. 
You'll also need time to sit down and think of other articles to cover in the future. They can be literally just a title, or it could be more. A list of points to cover. External resources to draw upon. An image which evokes your creativity.

Once you have a post ready. Schedule it. Have your posts ready ahead of time. If they will auto publish (like most good blogging platforms will), you don't need to remember to log in and manually publish. It will also mean you can take a couple of weeks off, and still have content going out regularly.

Don't think you are getting too far ahead of yourself with content. Being ahead means you can dedicate more time to make a good post great. You can research a topic in a bit more depth. You can play around with some ideas, or brainstorm future topics. Or you can just have a week off.

How far ahead you get is up to you. As an example, I'm writing this pose in November, knowing it's not going out until January. I have two posts scheduled for December, which are the only two I am planning on posting! I'm trying to get ahead with my content so I can have some time off over Christmas, and so I can research other topics.

## Audience
Who are you going to blog for? You need to know that you aren't going to have an audience from day 1. You likely won't show up on Google for months. But who are your posts for?

I always say mine are for just me. Initially that was the case. I look back at my post about [Jenkins disk space usage](https://www.garybell.co.uk/jenkins-disk-space-usage/) and I know I wrote it to help me find which logs to delete if the disks got full again. When I look further back to my [bug reports bugging me](https://www.garybell.co.uk/bug-reports-bugging-me/) post, that started as a way to vent my frustration at being given little to no information other than "something is broken - fix it". That has changed for some of my posts. I recently posted about [upgrading to composer 2](https://www.garybell.co.uk/upgrading-to-composer-2/). That has little to no use to me now. I've done it, I've seen the results. That post is for other developers who are considering making the switch during the early days of a new version.

Regardless of why you start blogging, and who it's for. Don't be afraid to shift your audience from internal (yourself) to external (others) as you start getting regular page views.

## Blogging Platform
This is where things get complicated. There's so many options out there, that it's impossible to cover them all. Do you want a free platform, or are you happy to pay? If you are happy to pay, how much are you willing to pay?

My advice, find somewhere free or very cheap to start. You aren't likely to get many visitors quickly, so don't worry about expensive hosting. I pay $36 a month for hosting with Ghost. Look up the pricing, you'll see the maximum audience size of my blog before I have to pay more. I know I can host it a lot cheaper myself (and might well do so in the future), but paying someone for the hosting takes a lot of responsibility away from me.

### Free Hosting
* [Wordpress](https://wordpress.com/)  
It would be wrong of me to start the free platforms with something other than the platform which powers around a third of the Internet. It doesn't mean I like it, but literally millions of websites use it, so it has something going for it. Essentially, it's easy to use and fairly easily customisable with themes and plugins. I used to use Wordpress (self hosted), but switched to Ghost to get [better performance](https://www.garybell.co.uk/switching-blogging-platforms/).

It's worth noting that there's a limitation on what you get and what you can do with the free Wordpress tier. You get more features the more you pay. See the [Wordpress pricing page](https://wordpress.com/pricing/) for more information.

* [Medium](https://medium.com/)  
Medium is a publishing platform which charges readers a monthly fee to access content. It boasts 170 million users, so there's an audience you can easily tap into to build a following. You can even make money from your articles by joining their [partner program](https://about.medium.com/earn/).

The main disadvantage with Medium is there doesn't look to be a lot of customisation, if any, to help you stand out. That might be something you are happy with - looking the same as all other content - but means any personality for your blog is purely down to the content.

* [Dev.to](https://dev.to/)
If you are a writing about software development, a programming language, or other technical computer content, you may want to checkout out Dev.to. It's free to join, free to use, and is built on open source. It aims to provide a platform where software developers can collaborate and share knowledge in a format which isn't simply Q&A (StackOverflow has that covered).

A lot of `dev.to` users cross-post their content from their own blogs to the platform to help build their audience. This may be something you consider with your content if you host it elsewhere. Or maybe you build your audience on there and use their platform for both your and their benefit. Be warned though, there is a drawback here - the posts appear almost at random. Sometimes the top post you see will be hours old, sometimes it will be your newly posted content. Basically, you don't know what sort of exposure you're actually getting, and you will need to promote your content a lot elsewhere (which is true anyway).

* Others
I've not vetted the following options, but I have heard of them at some point. Some may not have the best reputation due to content they have previously allowed, but they will give you a free platform to work with:
  * [Tumblr](https://www.tumblr.com/)
  * [Blogger](https://www.blogger.com/)
  * [Wix](https://www.wix.com) They apparently offer a free tier, but there's limited information on their pricing page.
  
### Paid platforms
These are some blogging platforms which you pay to host content on. This method removes the need for you to manage the server infrastructure, or keep the software on the server up-to-date. They should also ensure that nothing breaks when an update for the platform is released, and you stay as secure as possible.

* [Ghost](https://ghost.org/)  
It's what this blog is currently hosted on. I've mentioned I pay $36 a month, but I could save by paying for a full year. For that I can have up-to 100,000 page views per month; I get regular updates; get a Content Delivery Network (CDN), site backups, and the use of my own domain name.
I like the platform, like the performance, and like the features. I wish it was a bit cheaper without a full 12-month commitment.
* [Wordpress](https://wordpress.com/)  
I had to include it again because it's so popular you can't ignore it. But also there are paid options which give you greater flexibility over it. Naturally the more you pay, the more space you get for your blog, and the more features you get.

The big concern, for me, is the huge jump in cost between Premium and Business levels. It's a £13 a month increase, and Business is the first tier with which you can install plugins. Anything less than Business level and you have the "powered by Wordpress" part added to the footer, and are limited to basic Wordpress functionality.

### Host it yourself
If you have more experience and want more to do in your blogging adventures, there's always the option to host it yourself. This way you will have full control over the platform, and can run whichever blog software you desire. It will then come down to your choice of tech stack, and how involved in coding you want to be.

Want to  run a Node.js CMS, then you can get Ghost (and a load of others). 
Running a traditional LAMP stack? Great, Wordpress, Joomla!, Drupal, and more, are there for you. Going to host on Windows and the .NET environment? Fine, there's stuff out there for that too. Python, Ruby, and many other languages all have their own CMS on top of which you can build a blog. 

### Build it yourself
If you're a developer, you'll have a niggle in your head which makes you want to build the platform all by yourself. And why wouldn't you? You've got the skills, and it will be exactly what you want and need. The ultimate control.

It's a noble effort. But I am sure there's more blog platforms in existence than there are developers. One of the main tutorials for learning languages is to create a blog platform. And why not - it's got the full CRUD requirements. The problem comes from the tutorials being a little too simplistic at times. They may not have adequate security, and your whole content will be at risk (and the data of any subscribers). 

You'll also spend more time coding the platform, and adding features, than you will actually writing your blog. Ultimately it distracts you from your goal of producing blog content.  

## Summary
The big things to consider when you're going to blog are the topic and the audience. It's easy (relatively) to change the platform your blog is running on. Changing your primary topic or target audience gets harder and harder with time.

It will take time for the traffic to come, but it will in time. You can speed up the process by engaging with others on social media, and promoting via multiple channels. Be aware that you aren't likely to get a million views in a month and quit your job after the first couple of months. Treat blogging as a hobby, at least initially, and build up to a point where it might be a viable side-project, if that's what you want.

Really, just dive in and start blogging. It's something which [I think everyone should do](www.garybell.co.uk/why-should-you-blog/). It will help build your ability to communicate, and might even help others with their problems. At least that's [how I got to rank #1 on Google](https://www.garybell.co.uk/how-i-got-to-number-1-on-google/)! 

---
Photo by [RetroSupply](https://unsplash.com/@retrosupply?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText) on [Unsplash](https://unsplash.com/s/photos/blog?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText)