Why my portfolio ships (almost) zero JavaScript
This site is a brutalist systems console with a live terminal, an animated starfield, and a theme switcher — and most pages ship a couple of kilobytes of JavaScript. That’s not an accident; it’s the thesis. A backend engineer shouldn’t need 200KB of framework to render a page.
Static by default, islands where it counts
Astro renders everything to static HTML and ships zero JS by default. The only interactive things — the terminal, the starfield, the theme toggle — are small vanilla-TS custom elements that hydrate lazily. The terminal is a separate chunk that doesn’t load until it scrolls into view or you tap it.
The rest is just the platform
- Hand-written CSS with design tokens — no utility framework nudging everything toward the same look.
- Native cross-document view transitions for smooth navigation, no SPA runtime.
- Self-hosted, subset fonts; the display face is instanced down to ~26KB.
The payoff: meaningful content in well under a budget most sites blow on analytics alone — and it proves the point better than any “performance” line on a résumé could.