This whole website is over-engineered and I love it.

Originally posted 29 July 2025

Disclosure

I thought this up while I was thinking to myself "Hmm, now that I've coded the blog section, I should probably put some content in it". This is almost filler / padding, but if you're someone who is interested on my project(s) and this site as a whole, then you may have a little fun here regardless.

The website

I've mentioned a few times now that this website is likely a hot mess to those more skilled than me. Being the "premiere" blog post (there's a real premiere coming soon, don't you worry!) though, I feel like I get to yap a bit more about it.

Wait, what am I saying, this place is literally purpose built for me to yap.

Overall, a large amount of the content on this site is written in markdown formatting. It's a lovely little thing that lets people type in a fairly uninterrupted way while having some form of a consistent fancy feature set. I went into detail about this in a docs page, but overall, it's a great way to write and store content.

My lovely handy-dandy server processes these files into html that can be nicely served to you over the internet. Pretty cool, huh?

What's over-engineered about it?

Well the docs function like this:

Flowchart showing the flow from GitHub repository, which is cached and processed by the server, then made into html and served via CloudFlare who do more caching and edge serving.

Which I'd say is pretty acceptable. There's some redundancy (more than I want to publicly speak about for security reasons), caching, fast access from across the globe, and a nice little repository where the public can submit their own changes. A lot of hours went into making it just "right" for my vision.

Well, in making the blog portion of the site, I basically went:

Screw that! I'll do it from scratch!

- Me, about an hour and a half ago.

There's no dedicated GitHub repo, there's no caching, it's all statically generated at build time. This has plenty of perks, but basically relies on the whole "Ben does code stuff by himself" system in which we know and love. For a personal blog, it's fine, and I don't have to secure the markdown processor as much as I know exactly what's being put here.

So in terms of actual over-engineering, there are a heap of services keeping things alive. A lot of it is "ah yes hmmm I shall put an extra 10 hours of effort into a super minor feature so I can do fancier stuff long-term", like the docs system. One day I plan to have a plethora of features all sitting on various shards of this site. I will probably make a secondary API too when I feel like Next.JS is lacking a feature (in reality it's probably a lack of knowledge issue), if I just get sick of typescript, or if I need something off the main web server.

On that very note, there's an entire status page hosted on a completely separate server with a vastly overcomplicated networking setup (to connect everything together just enough for the status checks to work) which serves to answer one simple question:

Is shit fucked?

The production codebases are automatically built and served when the repository is pushed to, as there's an entire backend handling that too. It's so fancy and "professional", and definitely way too much for one guy, and yet here we are.

Don't get me started on databases, this sample post is long enough.

But why?

It's satisfying. So very satisfying.

I've been solely responsible for practically every step from a plain text file to a fully rendered, styled, performant* page that can get served to practically anyone in the world, and that feels pretty epic.

I'm also a bit of a cheapskate and didn't want to just buy some random software to tell me what my workflow should be. I... am not a big fan of that. Plus, being a computer science student, working on this site is a great use of my time and lets me show off a bit to people I may work with in the future.

Others probably think this is all pretty cool too... probably... surely. Yeah. There's someone out there who thinks I'm pretty cool for doing all this.

Right, time to stop rambling and do something else. I'm pretty sure the next thing I need to code is image handling, because the server keeps crashing at the moment because I dared to insert a single image in this post. I'm enjoying this, I promise.

Benjamin Barrett © 2025