I always wanted to start my own (tech) blog. But I’ve neither found time nor courage to start blogging. Although I have written some blog posts in the past on my former employer’s tech blog. But anyway, I finally did it!
I will briefly introduce myself and I will go over the tools and tech stack I’ve used to create this blog.
An introduction
Hi! My name is Johan Silkens. A Software/Cloud engineer from Belgium. I’ve started experimenting with technology at a young age. From assembling and disassembling computers to even giving a lecture to a class in primary school about its internal components like where the CPU, the hard drive, RAM, and so on was located and what their primary function was.
I have started programming at the end of my high school career. Back in the day Java and VB.NET are the given programming languages in high school. I have continued studying technology courses in college as well.
I also started to experiment with a HomeLab. In case you never heard the therm, a HomeLab is the name given to one or more servers that resides locally in your home and where you host several applications on it in a containerized or virtualized manner. It can be as small as just one small single-board computer such as a Raspberry Pi to a multi-cluster (rack) server setup if you have the space for it.
I will talk more about it in another blog post, maybe. But my own HomeLab nowadays consists of several systems running an Hypervisor called Proxmox which is an open-source hypervisor that uses KVM for its virtualization layer and LXC for containers. The current setup consists of an old Intel NUC and a Lenovo P700 workstation. Most - if not all - of my applications are running inside a Docker container. Such as a GIT server (Gitea), Wiki (Bookstack), Video platform (Jellyfin), … and so on.
I also use some services from AWS in my HomeLab like their docker Registry (ECR) and a platform to deploy containerized applications (ECS) and many more. Like I have said before, that’s for another blog post. 😄
I am also diagnosed with ASD at the age of 5.
Why starting a (tech) blog?
Starting a (tech) blog can be a rewarding venture both personally and professionally. Whenever you are just a tech enthusiast exploring the world of technology or a seasoned developer showcasing your knowledge/experience. That was the main reason for me to start blogging. For me, it helps with coping my Imposter Syndrome.
Starting your own blog has other advantages too. Such as:
Knowledge Sharing: A tech blog serves as your platform to share your knowledge, insights, and experience. By articulating your thoughts on certain topics, you will reinforce your own understanding while offering valuable information to others who may be struggling with similar concepts.
Skill Development: Blogging on a frequent basis allows you to refine your writing, communication, and technical skills. You will have the opportunity to practice explaining complex ideas in a clear and concise manner. An invaluable skill in any tech role.
Networking Opportunities: Blogging opens the door with like-minded individuals, industry leaders, and professionals. Engaging with your readers trough comments and social media, as well as collaborating with other bloggers, can help you build a network that may lead to mentorship, or job opportunities. Attending tech conferences and meetups to promote your blog can further expand your connections within the industry.
Personal Growth and Reflection: Writing about technology for instance and your experience with it can serve as a form of personal reflection. It allows you to document your learning journey and the ability to track your progress over time. Reviewing your previous posts helps you evaluate how your perspectives and skills have evolved over time. Providing a sense of accomplishment and motivation to continue growing on a personal and professional level.
What is the tech stack of this blog?
For this blog, I have used a static site generator because of the advantages of being lightweight and less bloated than a regular CMS like WordPress. It does also not require you to maintain a database.
There are several static site generators available. Like Jekyll, Gatsby,
and Hugo. I chose the last one since it is known for its speed and extensive theming capabilities.
Installing Hugo is easy since most common package managers (like Apt or Homebrew)
have Hugo in their repositories. Just do: brew install hugo
or apt install hugo
and you are good to go!
I have discovered Hugo while I was reading an article about the rebuilding of the website of Low Tech Magazine being switched over to Hugo from another static site generator called Pelican more than a year ago. Their website runs on solar power.
After you have installed Hugo on your computer. You can create a new Hugo site by typing hugo new site mysite
.
Replace “mysite” with your desired name.
You should see the following output:
➜ hugo new site mysite
Congratulations! Your new Hugo site is created in /home/johan/demo/mysite.
Just a few more steps and you're ready to go:
1. Download a theme into the same-named folder.
Choose a theme from https://themes.gohugo.io/ or
create your own with the "hugo new theme <THEMENAME>" command.
2. Perhaps you want to add some content. You can add single files
with "hugo new <SECTIONNAME>/<FILENAME>.<FORMAT>".
3. Start the built-in live server via "hugo server".
Visit https://gohugo.io/ for quickstart guide and full documentation.
➜
The directory structure of a typical and basic Hugo site looks like this:
➜ tree mysite
mysite
├── archetypes
│  └── default.md
├── config.toml
├── content
├── data
├── layouts
├── static
└── themes
I won’t go over all its details here. You can go to Hugo’s documentation for that.
The
folder structure speaks for itself. You can create a new theme with the following command: hugo new theme mytheme
. The
command
will create an initial theme for your website.
If you want to apply your theme to your website, open “config.toml” in the root directory and add theme = mytheme
to
that file. Indicating which theme your Hugo site should use. Alternatively, you can get one of the existing themes over
at https://themes.gohugo.io
For example if we just want the “Ananke” theme. Enter this in your terminal:
git init # In case your project is not a git repository
git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke.git themes/ananke
echo "theme = 'ananke'" >> config.toml
Now you can add some content on its homepage by creating a markdown file by using hugo new index.md
. That will create
a new Markdown file that looks like this:
---
title: "Index"
date: 2024-10-14T14:10:28+02:00
draft: false
---
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna
aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis
aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Note: I’ve placed some placeholder text here just to have some content for the site.
After you have made the changes you can run your site with just entering hugo server -w
in the terminal. It should be
available on http://localhost:1313/ . The -w
flag tells Hugo to watch the filesystem for any changes and recreate the
website as needed.
From there you can add content and edit the theme to your liking. You should see the following website:
From here you can just experiment with its capabilities. The documentation is extensive and even I am still exploring the feature set of Hugo.
Other frameworks I’ve used to create this blog are UIKit and TailwindCSS.
Things I want to add to this blog
At this time of writing, There are several things I want to add to this blog. For instance, I want to add the estimation of the reading time in the metadata section of this blog. There is certainly a way in Hugo to calculate this. Overall, I came up with these features:
- Add estimated reading time
- Add comment section
- Add a virtual tip jar (Via PayPal, Ko-fi, …)
- Add share buttons
- Add RSS functionality
- …
Conclusion
Starting my (tech) blog was an exciting journey filled with learning, growth, and self-discovery. I am eager to explore and share my passion for technology. Blogging is not just a means of sharing knowledge. It is also a path to overcome challenges like Imposter Syndrome and to carve out a space for personal reflection and connection.
Thank you for being here! Stay tuned for more posts, and don’t hesitate to reach out to me with any questions.