Photo by NeONBRAND / Unsplash
Photo by NeONBRAND / Unsplash

Now that this blog is online, I thought I’d take the time to document the experience.

Which brings up a few thoughts on how you can get your content online. First of all, it’s good to know the difference between a blog vs website? A blog is a website that is updated with content in the form of posts organized in descending chronological order. Or think of it as an digital version of a journal/diary (blog) with entries (posts).

What makes blogging popular is that it is very easy to add content. For example, I’m writing this post and don’t care at the moment about the technical details of this blog. Of course, I do know about those details having built this blog. For someone who doesn’t have a software development background, it’s still a great tool to just focus on content. That is what makes blogging so cool.

When you create a new blog, you want to think about things like:

  • How do I want to host my blog?
  • How much technical control of my blog do I want?
  • How much time can I spend on hosting my blog, developing my blog vs writing content, etc.?
  • How much can I afford to spend to run my blog?
  • Do I want to use a popular platform to run my blog or do I want to use something not so common?

People who blog include:

  • Software developers, like me, who tend to optimize every technical detail of their blog
  • Software developers who want a blog but don’t need, or have time for, full control over it
  • People who want a blog but never wrote a line of code in their lives
  • Anyone really, so long as they have something to write about

Web Hosting

You’ll need some kind of hosting for your blog. You can self-host the blog. It’s not uncommon for software developers to do that and sometimes even using their own machines. Or you can use a service. Let’s assume that you use a service. Which service is best for you may depend on which blogging platform you choose. Hosting companies often support specific blogging platforms. Here are some of the popular hosting companies. Of course there are many others.

Some of these services also offer accounts for limited usage that you can use to run your blog. If you don’t want to pay for web hosting you don’t have to. For a simple blog like this one there are no-cost or low-cost options available. Here are a few other free hosting services I looked at.

In a future post, we may dig into the reasons to use a free vs paid service and which blogging platforms work best with specific services. For now, I’ll just mention that I chose not to pay for hosting and that I went with GitLab Pages . More on that later in this post.

Web Domain

You’ll need a domain for people to find your blog. You can use one provided by a service. GitLab Pages , for example, provides one when creating a page for your project. Or you can register a custom domain with a service like GoDaddy or Google Domains .

Note: GitHub Pages and GitLab Pages don’t require a custom domain to run your a blog.

If you do use a custom domain, you need to configure it to work with your hosting service. Here’s an example with GitLab Pages Custom Domains .

Blogging Platforms

Limited Customization But Easy to Write Content

One blog on these platforms looks and feels much like any other blog on the same platform. The expectation is that you go with what’s available to you. That is reasonable since it’s their platform after all. It just makes it much harder to build a blog that reflects your personality and preferences. Note on Medium: even if you decide to roll your own blog, it’s still a good idea to cross-post articles from your blog to Medium though because of Medium ’s huge readership. Over 60 million readers isn’t something to ignore.

King of Customization But Read the Fine Print

WordPress is the most popular blogging platform used on the web. WordPress also supports a massive range of features that make it an easy, powerful, and flexible platform to work with. One problem is that WordPress is prone to security issues, especially with its plugins. Web security expert Troy Hunt’s New Blog post goes into detail on the trouble with WordPress . Another problem is that WordPress also has features that you may not always want. If you spend more time figuring out the wanted vs unwanted, when all you want is to blog, then that isn’t cool! A third problem is that the code generated by WordPress can be Chef Boyardee spaghetti . The platform kind of just does its thing while its users have much less control over things.

If none of those problems matter to you as a developer; or you’re a developer with little time to customize your blog; or don’t understand anything about software development; or you simply want to write and ignore everything else then WordPress is still a great choice for you. Note to developers: you do give up the ability to generate clean HTML. If you’re bothered by that, I get it πŸ˜‰. See Is WordPress Code Really a Mess? for more insight. It may lead you to also say: a lighter, cleaner approach please!

Microsoft’s 2Β’

There’s a lot of powerful web development technologies packed into Microsoft’s ASP.NET product. As someone who routinely works with Microsoft Technologies, it’s only natural that I take a look at ASP.NET -powered blogging platforms.

Orchard CMS is built for re-use and is very well designed but it’s also very complex. You’ll learn concepts like modules, features, content types, content parts, content items, content fields, zones, layers, and shapes. That feels too heavy just to post to a blog. I didn’t like it much either that I needed to start a project just to add a simple byline to my blog. It may no longer be the case with the latest version of Orchard CMS . But with an earlier version of Orchard CMS that I checked out, that actually happened πŸ˜’!

DNN Platform , NBlog , MiniBlog , BlogEngine.NET , and Umbraco are some other ASP.NET -driven blogging platforms. Each one has trade-offs and concerns. Some of the problems I found: customization (again), some of these tools are powered by older ASP.NET Web Forms technologies instead of the much improved MVC framework architecture. ASP.NET hosting costs aren’t cheap either. For these reasons, as much I’d like to go with an ASP.NET -driven platform, I feel none of the choices are great to run a blog long-term.

Ghost

Ghost is easy to work with. Its themes are 100% customizable and you can build your blog using standard web technologies like HTML, JavaScript, and CSS. You can also use frameworks and third-party JavaScript libraries. The main problem with Ghost is that hosting again costs too much or you must have the ability and time to self-host. If you pay for Ghost to host your blog, customization isn’t so great because again you’re not in full control of your blog.

Hugo

Hugo is what I went with. For two reasons. First, I chose GitHub Pages over GitHub Pages because I can keep my code repo private with GitHub Pages . GitHub doesn’t let you do that. Second, GitHub Pages is free, supports automated CI/CD features and has native support for Hugo .

Hugo is good for other reasons too. It’s a static site generator, similar to GitHub ’s natively supported Jekyll . Hugo is also powered by the Go Programming Language and is built for maximum speed. Best of all Hugo is specifically built to support blogs.

Other Possibilities

There is no reason I wouldn’t consider other options in the future. Gatsby , for example, looks interesting! There would of course be a conversion process to migrate to any other framework.

Web Design and Technologies

jQuery and Plugins

Isn’t jQuery legacy technology? Sure it is. Why not use Angular ? The answer is gray not black and white. It’s true that Angular is great for building Single-Page Applications (SPAs). It’s also true that jQuery isn’t a necessity.

Check out You Might Not Need jQuery for details on how to avoid jQuery . You also have to consider whether or not you need to support pre-Internet Explorer 8 browsers. If you do, the need for jQuery increases. Also, keep in mind that minified jQuery is only 85KB in file size, small enough to get away with.

jQuery and its plugins save development time and provide simple ways to create some nice features. Oh, and I don’t care about those legacy IE browsers! πŸ˜ƒ

Bootstrap

Bootstrap is the most popular and commonly used CSS framework. Choosing anything else is a mistake. I looked at free and paid templates built on Bootstrap 4 , especially DevBlog and Mediumish .

Mediumish is inspired by Medium and has the kind of design I wanted. So this blog’s design is a customization of Mediumish .

Icons

Bootstrap uses several icon libraries:

Hugo also has native support for emojis.

Photos and Videos

This blog mostly uses Unsplash . Which makes it easy to find high-resolution photos that add a visual highlight to your posts. It is not required, but you can give credit for any photos you use. As a courtesy, this blog credits all photos I didn’t take myself.

Other sites you can use include: Picfair , Pexels , Pixabay , Giphy , Imgur , and YouTube .

Conclusion

You get the idea. I want to spend as little money as possible and still have a high-quality blog. At this point, I only pay one small fee per year for my custom web domain. That’s it! If you don’t need that either, you can run your blog cost free.

When you create your blog, give a lot of thought to what you want. You should consider your preferences, your personality, your cost, and your content. But remember that, in the end, you need to be happy with what you choose. So, that should be your only guideline.

For this blog, what worked for me was Hugo hosted on GitLab Pages . I used HTML5 , jQuery , and Bootstrap to customize the look-and-feel.

What works for you?