How to Start Blogging Today And Figure It Out Tomorrow

Photo by Glenn Carstens-Peters on Unsplash

There are the two main problems I had when setting up a blog. I couldn’t get over the hurdle of defining what I’m going to write about and I had trouble with setting up a website. The idea behind this post is to remove these two hurdles. I’m going to show you why to start and how to do so today.

It was 2015 and I was preparing to travel to the USA for 12 days. I can’t remember where the inspiration came from, but I decided to write a blog about it every day. Here it is.

I went to Wordpress.com and started a new website. No complications, no gimmicks, which was a great start. Even though I didn’t have a proper domain and website, I was very satisfied with how the writing turned out. I managed to write one post every single day of the trip.

Because I enjoyed it I started thinking about a proper domain and brand. This meant coming up with a purpose, a name and an area about which to write. It proved to be too much at the time — I forced it too much. I had no real idea, I almost quit at searching for a domain and when I set everything up, I realized Wordpress.org was awful. So I let that one go for a while.

Fast-forward to 2020, I’m running a small personal blog and write about whatever I want. At first, I obsessed over finding a niche. If I had a proper niche, I could have more focus and attract a more specific audience. Theoretically, this was supposed to be the best way to go about it. Later I realized it’s better to start broad, leave my options open and specialize later. Or leave it as it is — personal. It could serve at least as a portfolio.

Why?

If you’ll be reading more tutorials on how to start a blog, you’ll see a lot of reasons on why you should start. In my opinion, the true value in running a blog is nothing else than a low-risk challenge on writing, coding and doing. The most important benefits of starting my website are learning to code, learning the skill of writing and adopting the “doing” mindset. Not to mention having a medium for reflection and being able to track my thinking and development as time passes.

The mantra is “start before you’re ready and figure it out along the way”.

But why am I so sold on the idea of having a personal blog? Why bother with setting up everything yourself if there are platforms like Medium? Firstly, it’s experiencing the process of building something from zero. Secondly, you own what you publish on a personal blog. Thirdly, you are not restricted to design and functionality. Especially if you know just a little code. I’m not against platforms like Medium. In fact, I really like it. I just believe having a website is also a must.

What I’m a lot of times faced with is why to start a blog in the time when social media and Youtube are flourishing. There are a couple of reasons. Number one, and again, you own your content on your blog. Number two, some are more comfortable with sharing what they have to tell via a blog rather than Youtube. Additionally, I don’t I know a successful Youtuber that doesn’t have a website or blog. Number three, although blogs appear to be outdated, a small revolution of personal blogging is happening. Information is overabundant. A fair amount of it is false or forced upon readers, so there’s a need for valuable information the readers are seeking. Number four, you are invisible without being on the internet. Social media is one option, but having a blog is much more personal and appealing than any social media platform out there. A personal blog or website could serve a much better purpose than a traditional CV, for example.

This tutorial is not going to teach you which domain works best, when exactly you have to publish, how to write, how to make people read your content and so on. Partly because that’s the easy and unsustainable way out. The hacks that a lot of people out there are selling don’t work. What works is quality content. So why would I want to restrict your creativity? Go out there and do it the way you want to do it.

This tutorial is going to focus on the technical aspect of blogging, an area some bloggers sometimes struggle with. When someone tells you exactly how to do it, it becomes much easier. This is that kind of a tutorial. It’s going to teach you what works best for the least amount of invested time and money. The technical part should not get in the way of setting up your personal blog — nothing should. That’s why you should set up a blog today and think about your niche tomorrow. You don’t necessarily need coding skills, just some basic knowledge of computers. Let’s build your own home on the internet.

Domain

  • The very first thing you have to do is choose a domain name. By far the easiest way is to just go with “yourname.com”. If you want to start blogging about a specific topic with a specific blog title, then consider a domain name in that direction. Keep in mind that your domain should equal your blog title.
  • Where’s the best, most reliable and affordable way to buy a domain? Prices vary among different extensions and a myriad of other reasons, but I’ve had the best experience with Namecheap. I’ve never had any problems whatsoever with them.
  • Another advice when purchasing a domain is to buy only the domain. Regardless of which provider you choose, every single one will try to sell you something extra. An SSL certificate, hosting, insurance etc. You don’t need anything else for starting a blog with this tutorial. Namecheap’s basic domain is perfect for our purposes as it contains everything you need for a straightforward price.
Buying a domain on Namecheap

If you’re worried about the SSL certificate, it’s provided for free during the Ghost installation.

Platform

So if Wordpress is no good, what else is out there? Plenty. But in my opinion, by far the best platform is called Ghost. It’s an open-source project made by a former Wordpress employee. They stripped away everything they found unnecessary and focused on the basics — producing quality content. The best thing about them is that Ghost is so simple to learn. It’s simple to write, simple to install and develop for. On top of that, they continue to improve (see their changelog) almost every week. Recently they added support for paid memberships, a feature I’m very excited about.

Setting Up a Local Ghost Environment

A great way to build a website is to first build it locally. You can thus work on all the details by “hosting” it on your computer before publishing it online. You don’t have to do this, but it’s beneficial to first design and set everything before publishing it online.

Here’s how you do that:

  • You’ll need a computer running macOS, Windows and Linux. I have a Mac and don’t know much about the other two, but it shouldn’t be much of a difference.
  • Install NodeJS. To see which versions Ghost supports click here, and to download them click here. I use version 10.16.3. and had no problems with it whatsoever.
  • Next, stall Ghost CLI. Open your terminal or command line on your computer and type npm install ghost-cli@latest -g. With this step, we installed a “command-line interface”. This allows your computer to recognize Ghost commands when you type them into your terminal.
Installing ghost-cli
  • That’s it, you’re done with the prerequisites. Create a folder (i.e. myghost) in the root directory of your computer. Perhaps the easiest way of doing this is by typing mkdir myghost in the terminal. This makes it easy to access from the terminal.
  • Navigate into the folder you created. Do that by dragging the folder into the terminal window or typing cd myghost.
  • The last thing to do is to install Ghost locally. Simply write ghost install local. Make sure you’re in your desired folder.
Installing Ghost locally
  • The installation will be at a localhost address, written out after the installation is complete (i.e. https://localhost:2368). Navigate to this address via your browser, create an account and skip adding your team. It’s not important which email or password you choose as long as you remember them.
  • Have a look around and see what Ghost has to offer. Configure your website, name, description, meta description and everything else. Make sure you also add a logo and a publication icon.

You now see that there’s a prebuilt theme installed called Casper. We can say it’s a “model” theme for Ghost as it has all the needed features they offer. It’s perfectly fine to start with. Later, it can serve as a reference while developing custom themes.

Configuring your website before uploading it is a great way of customization. You’ll see your product and decide what to include and what not to. You can also write posts, pages and everything else. When you’re done, you can head over to “Labs” tab and export the whole thing. This way, you’ll be able to transfer what you did to your actual website on the web.

Hosting

Now comes the fun part.

You’ll start asking yourself “wait if Ghost is open source that means it’s free…but why is there a $29 monthly fee on their website”. This is a part of their business model. Ghost in itself is completely free, so they make money by selling hosting called Ghost Pro. And not just any hosting. This is world-class, top-notch, all-inclusive hosting with no work for you whatsoever. Of course, this comes at a pretty hefty price.

There are a few alternatives. Since Ghost is open-source, hosting companies can offer servers images set up for Ghost at a fraction of a price.

Digital Ocean is one of them. Their product is meant more towards developers, which makes some things not so straight forward. But their monthly price is $5.

Another alternative is Midnight. They provide Ghost hosting for $15/month and help you set up everything you need. They essentially offer what Ghost does at half the price. If you’re not someone who doesn’t want to manage their website’s server and don’t want to pay for Ghost Pro, this is for you.

I recommend looking at all the options, considering what you want and then deciding. But keep in mind that in this tutorial, we’ll cover everything you need to know about hosting Ghost on Digital Ocean. Let’s dig in.

Note that if you decided for Ghost premium hosting, head over to their site and skip this section. The same goes for Midnight. Here, I’ll cover only self-hosting on Digital Ocean.

  • After you set up your account, you’ll have to buy something called a “Droplet”. It’s a space on their servers made ready for a specific reason. Navigate to their marketplace, scroll down and there you’ll see (under “Forums & Blogs”) a prebuilt server image for Ghost. Click on it and then click “Create droplet”.
Digital Ocean Marketplace
  • Now it’s time to choose a plan. Trust me, you only need the most basic version at $5/month. Then choose a datacenter region that’s closest to you. The only thing left to do is to name your droplet, leave the rest as is. I would also recommend enabling backups in case something goes wrong later in the process. I’ve been there too many times. Create your droplet and that’s it.
Buying your Digital Ocean Ghost Droplet
  • You will receive an email that your droplet has been created. Don’t delete it!
  • After creating the droplet we have some configuring inside the terminal to do. The instructions for installing Ghost on Digital Ocean are not straightforward for beginners. Believe me, I was once there. I’ve been through all the struggle, but here’s how it’s supposed to be done. Be sure to follow these steps exactly to avoid complications.
  • If you navigate to the IP address of your droplet you’ll see this:
Ghost Droplet IP address
  • To access this same page via your domain, we have to add one. Click on the 3 dots next to the droplet name and choose “Add a domain”. Then type it in (for example, yourname.com).
Adding your domain
  • You will see that some DNS records are already created. There, you can see an A record that points your domain to your droplet IP address. This part of the job is made for us.
DNS records
  • Now head over to your domain provider’s DNS settings and create two new A records that point to that same IP address. The IP address your droplet’s. See the picture below:
Configuring DNS records
  • Once you complete the steps above, it may take some time for everything to propagate. Be patient, if you followed every step it should be done in a couple of minutes. And don’t forget to clean your browser cache and history if it takes too long.
Connected domain
  • Okay, so we connected our domain to our droplet. Now, we have to configure Ghost on that droplet. We do that by opening the terminal, this time inside of our browser. Not the one on your computer, but the one on your droplet. Click on the same 3 dots and click “Access console”.
Accessing console
  • A black screen opens and it prompts you to log in. Remember that email I told you not to delete? In there, you’ll find a username and a password. Username is always root, and password is something random.

If you’ll be copying and pasting the password, note that Ctrl+V does not work in this terminal, but a right-click will. And another thing — password doesn’t show up.

  • It will immediately prompt you to create a new password. First, type in the old one and then create a new one. Again, the password doesn’t actually show up as you type it in.
Login for the first time
  • If everything went well, you should be now prompted to start Ghost installation. To continue, press enter.
Starting Ghost installation
  • The installation will start automatically when you press enter.
Ghost installation
  • When the installation is finished, you’ll have to specify your domain and email address. As far as the domain is concerned, I’ve always typed in the domain without https or www. This means that if your domain is www.yourname.com, you should type yourname.com in the terminal.
Specifying your blog URL
  • Enter whatever email address is best for you. This is to install the free SSL certificate I was talking about earlier.
Adding your email
  • That’s it! You’re done.
This is the console screen after installing Ghost
  • This should complete the Ghost installation on your Digital Ocean droplet. Now, navigate to your domain name in your browser and add /ghost to access admin settings. Then create an account (with valid email and password this time) and you’re done. The only thing you have to do now is to either import what you exported from your local installation or configure everything as I mentioned before.
Ghost blog and dashboard

Off you go writing your first post.

Updating Ghost

The only thing you have to know on the server-side of your blog is how to update Ghost. As I mentioned before, they release updates pretty frequently and you should follow them to make use of all the new features. So how do you update your Ghost installation?

  • After the initial installation or whenever you log into your droplet via the console, you will see the screen below. To update, first type in the line sudo -i -u ghost-mgr and press enter.
Updating Ghost
  • Then, as you do in your local Ghost installation, you have to navigate to your Ghost installation folder. Do that by typing cd /var/www/ghost and press enter.
Navigating into the installation folder
  • The last step is to type in ghost update as seen above and the update process will begin as seen below.
Ghost update

What Now?

Make yourself familiar with the Ghost environment and start exploring. To start you off, here are a few very useful links, both for blogging and the server-side of things:

This is everything you need to do to start your blog nowadays. Regardless of what niche, domain and hosting provider you choose, Ghost is going to do a great job on their side. Now it’s time to do yours.

I’m a medical student and and I publish and develop the Medical Notes newsletter about digital health.

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

You bleed, when you read.

The Art of the Short Story week 3

Build Your Dream House (how to write an effective outline)

The First Impression

Flash Poetry Challenge

Personal Reflection 12/17/21

How To Use an Excel Sheet as a Great Tool for Writing

5 Helpful Things I learned about Medium as a writer.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Martin Verbic

Martin Verbic

I’m a medical student and and I publish and develop the Medical Notes newsletter about digital health.

More from Medium

Let’s write a sudoku

7 Principles for Myself to Write an Effective README on Github

Twinkle in my eye…

Are You a Freelance Developer? Here’s How to Stay Productive…