← ALL LOGS

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.