The beauty of CGI and simple design, by Hales


I was reading through some of Hales’ blog archives over Xmas, like a gentleman, and was reminded of his post about CGI, the simple application/web interface from the 1990s. And here’s the thing: he said it was good.

He invited us to compare CGI to contemporary frameworks:

  • No dependencies or libraries to install, upgrade, maintain, test, and secure.

  • Works with any programming language ever that can read text and print text.

  • Zero external configuration, other than telling your webserver to enable CGI on your file.

He concludes:

It’s too easy to get caught up in “professional syndrome”, where you look up to the big players and trust in their opinions. But you also need to understand that their opinions are based on their current experiences, which are often a world away from what the rest of us should be worrying about.

I see people making the same mistake with tools like Kubernetes. Many, if not most stacks, simply don’t need it… and those that do pay the price for all the overhead and brittleness. But I digress.

The first version of my site here was written as a Perl CGI script. I learned more about HTTP (GET, POST, etc), HTML, and templates from that one script than years of university. And while I was ultimately scared away from all the multiple spawned processes, the reality was I never hit any server limitations. I even had a crude form of Model-View-Controller (MVC) going without even realising it.

The reason I bring this back up now is that I feel like I’ve reached an impasse on so many things. Personal projects remain unfinished or abandoned because I’ve wanted to do things the “right” way. So I start building it the “right” way with complicated tools and processes, then raise my hands and think it’s all too much for what I want to do. It puts all sorts of things out of reach.

Hales mentions premature optimisation. I feel like I’m doing that in my life. Maybe I need some mental CGI.

Author bio and support


Ruben Schade is a technical writer and infrastructure architect in Sydney, Australia who refers to himself in the third person in bios. Hi!

The site is powered by Hugo, FreeBSD, and OpenZFS on OrionVM, everyone’s favourite bespoke cloud infrastructure provider.

If you found this post helpful or entertaining, you can shout me a coffee or send a comment. Thanks ☺️.