Skip to content
~/rajwat
All projects

This Portfolio

Go + htmx Original

About 14kB of JavaScript, one file to deploy

  • Go
  • htmx
  • Tailwind

What it is

The site you are reading, built so it loads fast and stays readable on a slow connection or an old phone.

Who it helped

Whoever reads this is usually a recruiter with thirty seconds and a dozen tabs open, or a friend on their phone. Neither of them wants to wait for a page about somebody else's career to finish loading.

So it ships almost no JavaScript, roughly 14kB, because nearly everything a portfolio does is show text. It opens quickly on a weak connection, it still works if scripts fail, and it checks whether the reader has asked their device to reduce motion, in which case the animations quietly turn themselves off rather than making someone feel unwell.

The other thing I wanted was for it to be honest. Every project page here has a section on what I would do differently, including the projects that did not really work. That is the version I would want to read about someone else.

What went well

The whole site compiles into a single file. The templates and every image, font and stylesheet are built into the binary, so deploying is copying one file onto a machine and running it. There is no separate asset upload, nothing that can fall out of sync, and no folder of files to remember alongside it.

What's next

Ask whether it needs a running server at all. Almost nothing here changes between visits, so one binary is neat but it is still a process someone has to keep alive and patch. Plain static files on a CDN would remove the running part completely. The trade is that I would lose the bits I like, such as reading real build information at the moment someone opens the page.