Runes-first, Vite 7-powered, and quietly eating Astro's lunch on cold builds
If you've been living under a rock this week, SvelteKit 3 dropped and the benchmarks are spicy. Spoiler: it's faster than Astro on cold builds. Do not @ me — I ran the numbers on an M4.
The Setup
SvelteKit 3 is runes-first now. No more `$:` reactive blocks, no more `export let` props. Everything is `$state`, `$derived`, `$props`. The compiler output is leaner and the dev server boots in under 200ms on my M4.
{`bun create svelte@latest my-app
cd my-app
bun install
bun run dev`}
The Money Pattern
The new `+page.svelte` route convention is unchanged, but the ergonomics inside are night-and-day. Behold a route file with rune state and a typed loader — this is the entire mental model.
{`
{data.title}
`}
The Catch
The ecosystem is still smaller than Next.js. Half the shadcn-equivalents are community-maintained and the Supabase auth helpers lag behind the Next.js SSR package. If you live in headless Pipedrive-meets-Supabase land, you'll write more glue than you'd expect.
The Verdict
For greenfield content sites and dashboards, SvelteKit 3 is a legitimately better DX than Next 16. The runes finally feel like the React hooks API should have felt in 2019. I'm porting a side project to it this weekend just to feel something. Try it.