Dev Tools

SvelteKit 3 Released And It's Faster Than Astro

All articles
🧡📦

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.

<script lang="ts">
  import type { PageData } from './$types';

  let { data }: { data: PageData } = $props();
  let count = $state(0);
  let doubled = $derived(count * 2);
</script>

<h1>{data.title}</h1>
<button onclick={() => count++}>
  clicked {count} times — doubled is {doubled}
</button>

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.

Let us make some quick suggestions?
Please provide your full name.
Please provide your phone number.
Please provide a valid phone number.
Please provide your email address.
Please provide a valid email address.
Please provide your brand name or website.
Please provide your brand name or website.