How To (Not) Build A Website

In this post, I tell the tale of how this website came to be.

03-08-2025 [Programming]

A lot (three) of my friends asked me how I made this website. Some even suspect me of Vibe Coding it. Did I, really? Read on to find out!

Despite what it looks like, this isn't your average static html-and-css site. There's a good few things going on under the hood (no, I'm not talking about google analytics).


The Beginning?

About three years ago, I randomly decided that I wanted to have my own website. I put together a sloppy little homepage. I didn't like the way it looked. So I did some more design. I still didn't like it, appearance-wise. So I did some more tweaking.

The process continued for quite a while. Then, I just ditched all my work and started building a new homepage design. After months of going through several remakes (some of which actually looked kind of impressive), I had made little progress.

Then, I decided (I don't remember when) that I'm supposed to build a website, a real one at that. Not a perfect one. And if it's real, it's bound to have flaws. That's what it took to actually build this website.


Under The Hood

This site is hosted on GitHub Pages. Yes, it's static HTML, CSS and some JS. But you see, that's just half the picture.

I've made a hacky little redirect system at /r. Which is why, do not click this link. You have been warned!

Every time update this website, a GitHub Action triggers. If you'll head over to the GitHub Repo for this site, you'll find a few index.jsons in the directories, as well as a robots.txt. You'll also find an update.py, which is actually run by the Action I mentioned earlier.

The update.py file is where most of the magic happens. It updates the indexes and the robots.txt file automatically. Yes, I could've just used Wordpress, but that wouldn't be very fun.


Conclusion

This isn't the most professional website. But it's minimalistic. It's hand-made, most of the files hand-written in neovim.

If you're making something, don't repeat my mistakes. Seriously. If you want to really kick off the launchpad, keep this in mind. You don't need to be perfect. You only need to be real.

Speaking of neovim, in the next post, I'm taking you on a guided tour of my Dotfiles! I've also been working on a lightweight voice assistant for the linux desktop. Stay tuned for that!

<- Previous Post