Exploring website building

When building this website, I wanted a simple setup and an easy text editor that did not have too steep of a learning curve. I’ve tested different setups including Publii hosted on GitHub Pages, a bunch of static site generators both hosted on GitHub and on a Proxmox server, and WordPress and Ghost blog engines. I ended up choosing a static site. It is fast, easy to host, and easy to customize.

I also liked Ghost for how easy it is to set up and get going. It has many features that I do not need, but after turning most of them off and choosing a theme, it works well. It has a nice editor and seems pretty fast. I hosted it for a while myself on a Proxmox server, but honestly I am not sure if this poses any security risks, similar to how WordPress often makes people think self-hosting it is a terrible idea.

My thoughts on self-hosting

I should also mention that, to me, self-hosting means serving your files — whether it is a website or a game server — from a physical machine at your home. Paying a hosting service, VPS, or similar provider to host something that is not within your physical reach does not feel like true self-hosting to me. That is completely my opinion, and the jargon around self-hosting has most likely changed over the years, but that is how I see it.

Blog Engines

Back to Ghost and WordPress. The latter has a bad reputation when it comes to self-hosting, but I would say it is still considered the king of personal blogs and websites. It has changed so much over the years that even though it looks simple to build a site, if I only need something simple like casualnerd.net then I end up needing to ignore or turn off many features. That somewhat defeats the purpose of using those engines, not even mentioning possible security concerns when self-hosting them. I know hosting is cheap, but I am cheaper!

Static Site Generators

Static site generators are something I learned about years after they became a thing, apparently. When I was in middle school, I spent a lot of time playing with HTML and JavaScript and making snowflakes fall on the screen. They could even gather and build up at the bottom of the browser window. It was fun times. There is no real need for that kind of coding anymore, although you still can do crazy stuff, but creating a static HTML site is now super easy with SSGs.

I tried a bunch and ended up liking Hugo the most. It just seemed simpler to me and faster. I played around with it for months, building and destroying different sites just for fun. Self-hosting is not really a problem since it is just HTML, CSS, and Markdown files. But if security or self-hosting is a concern, then places like GitHub provide perfect free hosting for static content. That is a word I like: free. It has some limitations, but for my use case there are basically none.

Hosting the site

Cloudflare is another super useful tool that I am still learning how to use. Although it is not really needed with GitHub Pages being the host, Cloudflare adds another layer of security, speed, and redundancy. My site code lives on GitHub, which is then pulled and built on Cloudflare Pages and hosted there. I also have my domain name through Cloudflare, which makes things easier.

One thing that tripped me up a little was the Markdown format. I mentioned not wanting a learning curve, but Markdown seemed to make sense with its tags, almost like a simplified HTML. Yet something simple like placing an image on a page became an adventure on its own. I quickly realized that static site blogs are not really meant to be used like, say, a family blog with lots of pictures and videos. That might have been obvious to others, but I can be a slow learner sometimes.

Obsidian Editor

I quickly found out about Markdown editors, and after trying a few I started using Obsidian. At first I thought I would be overwhelmed because I saw YouTube guides talking about vaults, syncing, and all kinds of advanced features. But the reality is much simpler if your use case is simple. I have my local site files as the vault, which uses the Git plugin to connect to my GitHub repository. With my hotkey Ctrl+Alt+S, I push the changes to GitHub and the site updates within a minute. It is fantastic!

The setup is actually quite simple:

  • Set up a Cloudflare account, and optionally buy a domain from them.

  • Set up a GitHub account and repository. It can be a private repo.

  • Install Hugo on the computer and build the website.

  • Download and install Obsidian, then select the local Hugo site as the vault.

  • Install the Git plugin for Obsidian. It is best to handle the static site and GitHub sync beforehand, such as initiating Git and creating SSH keys — and of course installing Git itself :)

The last part is actually simpler than it sounds. I used AI to generate console commands to set up SSH keys for two different computers that are only tied to my site repository. With this key, I do not need to enter credentials each time I update my site. I just create new content and use the hotkey to push the changes.

There are a few things I configured in Obsidian, such as creating a template that replaces the front matter used in the posts. Another thing was disabling wiki-link options, although that might actually be fine to leave enabled.

In the end, posting content or changing the site is as simple as opening Obsidian, writing a new note, or changing a line of code and hitting my hotkey.