← All posts

Why I Reach for SvelteKit

The handful of reasons SvelteKit keeps winning my greenfield projects — from runes to prerendering to how little ceremony it asks for.

  • SvelteKit
  • Engineering
  • Performance
  • TypeScript

Most of the apps I’ve shipped recently started the same way: an empty directory, pnpm create svelte, and a deadline. Here’s why SvelteKit keeps earning that first commit.

Runes make state obvious

Svelte 5’s runes ($state, $derived, $effect) removed the last bit of magic I had to explain to new teammates. Reactivity is now a function call you can point at, not a compiler convention you have to memorize.

Prerendering is a one-liner

export const prerender = true;

That single line turns a route into static HTML at build time — which is exactly what you want for content like this blog: instant loads and clean indexing.

It gets out of the way

No provider pyramids, no bundler config archaeology. The framework makes the boring choices so I can spend my time on the product. For a deeper look at the architecture behind this site, see the launch post.