Optimization Astro Next.js

Rewriting this Site to Fit Into the Initial TCP Congestion Window

2025-12-15

I recently read this article by endtimes.dev and I played around with inspect tool and it is honestly amazing how fast the site is even when it is throttled to 2G. After experiencing this out-of-this-world idea, I decided that I also want to have a super minimal site. For all of you reading this, it should be obvious that my homepage should be less than 14KB. It is just a white canvas with around 20 words scattered on top; there is nothing else. But surprise, surprise the homepage comes out to 174KB!! This is compressed too!!

It turns out the Next.js and React.js libraries are just huge shipping container sized bundlers. They need the React library, the React DOM, and the Next.js router JSON. For a small, personal site like mine, this is like blowing a hole through a wall just to kill a mosquito. It was absolutely insane. Not to mention my projects site which uses Quarto as the renderer and Bootstrap themes for appearance. In total, without including the images, my projects page transfers around 200+ KB!

Fixing this bloat issue wasn’t too hard, however. I switched my js framework to Astro and moved just the html over. I deleted the resume page since most browsers have their own pdf viewer and I am now using Quarto to render my projects into GitHub Flavored Markdown for Astro to render into html. In all, this project took a few hours on a weekend and I am pretty proud of how small my site now is.

If you haven’t seen the previous site, I have images down below that shows the site and the page’s stats. But, to conclude, I have seen a lot of “minimalistic” sites that basically have just a white background and text but have a huge transfer size. I don’t think switching to a smaller framework or just writing it in plain HTML and CSS would change a whole lot. There are caveats, of course, if you’re stuck with a renderer like Quarto or if you’re not working with HTML or CSS then this process would be a lot harder. Additionally, fonts take up a lot of space as well but, in general, a smaller site just feels nice to brag about.

Old Site

Old home page

Load Time (s)   0.2945
Total Transferred (KB)  '173.57'
Resources Count 14

Old projects page

Load Time (s)   1.251
Total Transferred (KB)  '4967.90'
Resources Count 29

Old resume page

Load Time (s)   0.2945
Total Transferred (KB)  '389.90'
Resources Count 20

New Site

New home page

Load Time (s)   0.15330000001192093
Total Transferred (KB)  '7.03'
Resources Count 2

New projects page

Load Time (s)   0.15629999999701977
Total Transferred (KB)  '6.04'
Resources Count 1

New resume page

Load Time (s)   0.1701000000089407
Total Transferred (KB)  '0.99'
Resources Count 1