How I Made My Blog

I have a blog! πŸŽ‰

I've been saying to myself "I should start a blog" off and on again essentially since I started learning how to program (7 years ago as I am writing this...😱). However, I never did...until now! I have a really negative inner critic, and that always stopped me from actually creating a blog. Recently, I have been working with a therapist and making new discoveries about myself that have helped me push through this barrier. I am self taught, and there are so many bloggers that have helped me immensely throughout my career. I want to be able to help others on their journey too now. I love learning new things, and I love teaching. Blogging is a great way to do both at the same time!

This first post will be about how I made this blog, with some helpful links to resources I found useful included. I would also be remiss if I did not include some of the blogs I have found helpful! Here is a link to a post I will be keeping updated: Blogs I Like. If you are interested in blogging yourself, check some of those blogs out! Reading other blogs is a great way to get comfortable with the technical process of blog writing, and learn a lot along the way πŸ˜„

Overview

I've broken the process of starting my blog into four main steps:

  1. choose an engine
  2. pick a theme
  3. deploy
  4. add content

This is definitely not the only methodology to follow. If you are more interested in just publishing content without self-hosting or managing any infrastructure, maybe you would be more interested in a shared platform like dev.to. Personally, I like managing my infrastructure! My background is in IT and I am constantly walking back and forth across the DevOps bridge between Development and IT πŸ˜‚

Choosing An Engine

The first step I took was to choose an engine.

Okay, so really the first first step was to choose an engine type but THEN I chose my engine πŸ˜„ I would break down the engine types into 4 categories:

  1. Content Management System (e.g. Wordpress)
  2. Website Builder (e.g. Squarespace)
  3. Static Site Generator (e.g. Hugo πŸ˜‰)
  4. FULLY CUSTOM 😱

I was able to make my choice here pretty quickly. Fully custom was definitely out of the running, and website builders are really great for a lot of people, but I'm just not one of those people. Content management systems can be really powerful and have a huge ecosystem to dive into...which to me looked like a rabbithole I might never escape from. Static site generators are simple and robust. I find them to be a nice middle ground between fully custom and content management systems.

Now that I know I want to use a static site generator, I need to choose one. I looked at 3 competitors when making my decision. Did you guess which one I picked yet?

  1. Hugo
  2. Gatsby
  3. Jekyll

I looked at some infographics to get a baseline of the differences and did some general google fu to get an idea of what each option provided. I didn't want to get stuck in decision paralysis and honestly any of these options would be fine for getting started with, so my final decision came down to three factors. I write a lot of React at my day job, I'm not super interested in ruby, and I love kubernetes and want to learn Go. So I went with Hugo!

Picking A Theme

Once I decided to use Hugo, I started reading through their docs. I scanned the quick start and paused at step 3, Add a Theme. This was a difficult process for me. I have ADHD and decision paralysis is something I really struggle with. I was convinced I needed to try every single Hugo Theme to make sure I picked the right one. At the time I looked, there were 255 themes under the Blog tag! 😱

It took several days, but I narrowed the choice down to 5 that I kept coming back to and then I took the decision out of my own hands. I asked a coworker which one he liked the best. He ended up going a step further and ranking them in order with some helpful comments on what he liked or didn't like about each. That input was super valuable and I ended up choosing his number one choice (which was also my number one choice, I just couldn't force myself to make the choice on my own) Clarity

Deploying

When I first started I planned to deploy with Vercel. I have used Vercel in the past and really enjoy their products. I remember when now came out, I was still pretty new to programming and it was super exciting to have a command that I could run and instantly get a deployed instance of my practice code! However, I ran into some issues and decided against using it for this blog. They have an official guide to create a Hugo website and deploy it with Vercel, check it out if you are interested and maybe you'll have better luck than I did! It's a very good guide, I just happened to run into a build error the first time I tried to deploy the project. That happens, and usually I would just troubleshoot it and find an answer and move forward. However, because of the issues I mentioned in the intro, I knew that this could very well be yet another stopping point for me and I really wanted to get a blog started!

In the end, I chose to switch to Netlify and it has been excellent! I had no issues running through the deployment guide that Hugo has, and my blog was deployed to my custom domain name in a matter of minutes. I finally did it! I created a blog and it is on the internet πŸŽ‰! Now it just needs some content...

Adding Content

Adding content will vary depending on the template you choose and how you personally want to structure your repository. The simplest configuration with the theme I chose is a content directory with a posts directory with a bunch of markdown files. That's it! Create a new markdown file in the posts directory and write your post in it and Hugo takes care of the rest. It's so easy πŸ˜„

Final Thoughts

Overall, this process has been really fun and interesting. I'm not going to say I wish I had done it sooner, I know the reasons I did not are valid and I don't want to beat myself up over them. But I am very happy, and proud of myself, that I have done it now. And now that it exists, I don't have to worry about it anymore! I can add content whenever I want to, and if I have periods of time where I am struggling and can't create content, that's okay too. This blog will still be here, waiting for me when I'm ready ☺️