
SvelteKit
Application framework built on Svelte for routing, server-side rendering, and deployment of web apps.
Works with AI agents:llms.txtMCPCLISvelteKit is the application framework for Svelte, the role Next.js plays for React or Nuxt for Vue. Svelte compiles components into small JavaScript and CSS; SvelteKit adds routing, data loading, server code, rendering options and the build, using Vite.
Routes are folders under src/routes. A +page.svelte file renders a page, a +page.server.js load function fetches its data on the server, form actions handle POSTed forms without client JavaScript, and +server.js files are plain API endpoints. Hooks run on every request for things like reading a session cookie. By default the first page is server-rendered and later navigation happens in the browser, and you can set prerendering, SSR or client-only rendering per page or layout.
Adapters turn the build into output for a target. Official ones cover Node servers, Bun, static sites, Vercel, Netlify and Cloudflare, with community adapters for other platforms. It also supports service workers for offline apps, and a SPA build can be wrapped with Tauri or Capacitor for desktop and mobile.
Limits to know: there is no built-in auth or database layer, though the Svelte CLI can set up Better Auth and database integrations. Remote functions, its newer typed client-server calls, are still experimental. The ecosystem of components and examples is smaller than React's.
Where it fits
How SvelteKit itself is built
5 tools, from its own code, website and Product Hunt page.
Who uses it
No maker's live product on record yet, and 66 open-source projects that declare it in their code.
We haven't found a maker's live product that uses SvelteKit yet — only the open-source projects below, which declare it in their code.
Open source: a project that declares SvelteKit as a dependency in its public code — verifiable, but not necessarily a live product.
Loved and watch-outs
Themes that recur in makers' words and Hacker News comments, each linked to what it summarises.
- Developers find it simpler and more productive than Next.js, and rewrites from Next.js go smoothly. HNHN 2HN 3
- It stays close to plain HTML, CSS and JavaScript, so it is easy to learn from web basics. HNHN 2HN 3
- It works for small SPAs and scales up when an app unexpectedly grows complex. HNHN 2HN 3
- Coding agents produce working SvelteKit apps quickly. HNHN 2
- API changes during active development make projects feel unstable and hard to test. HNHN 2
- It is not batteries-included, so ORM, admin and auth rely on third-party packages that feel hacky. HN
- Component CSS stays in the page after unmount by design, causing layout bugs that depend on navigation path. HN
Reliability and open issues
- Treat layout pages like components when using named slots👍 333 · opened Sep 2019 · active Aug 2026
- Native support for web sockets👍 305 · opened May 2021 · active Aug 2026
- i18n brainstorming👍 234 · opened Feb 2019 · active Aug 2026
- Translations👍 144 · opened Apr 2021 · active Aug 2026
- Add incremental static regeneration👍 140 · opened Mar 2021 · active Aug 2026
Who switches
Public pull requests on GitHub since Oct 2024 whose title says "X to Y" — real code changes moving a project from one tool to another, by developers in general. Open a row to see the pull requests.
Next.js → SvelteKit22 PRs
- feat(web): migrate frontend from Next.js to SvelteKit 2 (Svelte 5)deus-meus/padelhive · 2026-08-29
- feat: Migrate blog from Next.js 16 to SvelteKit 2 (Svelte 5 + Tailwind CSS + Bits UI)jaeyoung0509/jaeyoung0509.github.io · 2026-08-16
- Migrate from Next.js to SvelteKittiennm99/loldle · 2026-07-25
- Converts site from Next.js to SvelteKitmanovotny/manovotny.com · 2026-07-24
- feat: Migrate entire portfolio from Next.js to SvelteKitaquinofroilan/aquinofroilan · 2026-07-17
- Migrate site from Next.js to SvelteKitKentokamoto/kentokamoto.github.io · 2026-07-10
- Migrate frontend from Next.js to SvelteKit + BunJeffreyyvdb/MusicHoarder · 2026-05-19
- feat: migrate from Next.js to SvelteKit + Svelte 5jscastanos/jscastanos-dev · 2026-05-19
- chore: migrate frontend from Next.js to SvelteKitshamwari-ai/shamwari · 2026-05-05
- Convert site from Next.js to SvelteKitifireball/reading-list · 2026-04-27
React → SvelteKit17 PRs
- Migrate from React to SvelteKit with native CSS and Svelte 5 runescocreating/TheCharlatan · 2026-09-29
- Migrate product UI from Next.js/React to SvelteKit and update build/toolingfozagtx/DriftRecon · 2026-09-07
- Migrate from Next.js/React to SvelteKitjooshua-inglis/pdf-editor · 2026-08-27
- feat: migrate frontend from React to SvelteKit SPArmwahid/full-stack-fastapi-template-but-svelte · 2026-08-27
- Migrate application from React to SvelteKitzmjohnso/photo-voice · 2026-06-13
- feature: migrate from React to SvelteKit 5 + Bits UIPromptPasture/neatmark · 2026-05-25
- Full rewrite of Khmer Dictionary from React to SvelteKitsrghma/khmer · 2026-04-19
- feat: migrate from Next.js/React to SvelteKit 2 + Svelte 5 (runes)ocknamo/split-bill-calculator-on-nostr · 2026-03-28
- Convert codebase from React to SvelteKitawei82/sds-svelte · 2026-02-26
- Migrate website from React to SvelteKit1aurentius/k-stacks-website · 2026-02-19
Astro → SvelteKit4 PRs
- Migrate from Astro back to SvelteKitewanc26/website · 2026-09-30
- feat: migrate from Astro to SvelteKit with YAML content architecturepixels-studio/web · 2026-04-02
- feat: migrate from Astro to SvelteKitSaintPepsi/ianhogers.dev · 2026-03-14
- Remove legacy Astro web-app after migration to SvelteKit + FastAPIbrooksmcmillin/taskmanager · 2026-01-19
Nuxt → SvelteKit3 PRs
- Migrate from Nuxt 2 to SvelteKit 2 + add Tidal playlist suggestions via Mistral AIikbenbas/mijnnaamisbas · 2026-03-26
- Migrate docs from Nuxt to SvelteKitamir20/dtop · 2026-03-23
- Update from Nuxt to SvelteKitseh-GAH-toh/EndPoem · 2025-06-17
SvelteKit → Astro13 PRs
- Convert the site from SvelteKit to Astronarthur/narthur.github.io · 2026-09-18
- Migrate site from SvelteKit to Astroivoberger/ivoberger.com · 2026-09-15
- migrate from SvelteKit to Astro v7buckley-ca/buckley.ca · 2026-06-26
- Migrate site from SvelteKit to AstroLukaHarambasic/harambasic.de · 2026-06-10
- migrate SvelteKit to Astro with static outputucielsola/ucihuen · 2026-05-08
- feat(docs): migrate docs site from SvelteKit to AstroALRubinger/aileron · 2026-04-14
- feat: migrate portfolio from SvelteKit to AstroDaveKeehl/portfolio · 2026-04-09
- chore: migrate from sveltekit to astrokaedesato/kaede-HP · 2026-04-06
- feat: convert site from SvelteKit to Astro with Rose Pine themingjordangarrison/jordangarrison.dev · 2026-03-25
- feat: migrate from SvelteKit to AstroFlexicon/czy-to-niedziela-handlowa · 2026-03-22
SvelteKit → Next.js11 PRs
- feat(shop): Migrate core ordering flow from SvelteKit to Next.jsAgustin-Perezz/pedifast · 2026-09-28
- Migrate SvelteKit web app to Next.jsnu31hackerspace/prismo · 2026-08-05
- Migrate from SvelteKit to Next.js with App Routeralexisbohns/melogram · 2026-07-10
- Rewrite from SvelteKit to Next.js (static export)jerzabek/portfolio · 2026-06-29
- Migrate from SvelteKit to Next.js 15 with full e-sports redesignmatt-gree/ProjectRio-frontend · 2026-06-16
- Migrate from SvelteKit to Next.js 15 with full e-sports redesignProjectRio/ProjectRio-frontend · 2026-06-16
- feat: migrate frontend from SvelteKit to Next.js 14 App RouterAfoD3V/poke-hub · 2026-05-21
- D3: Port client portal modules from SvelteKit to Next.jsoliverstreetcreative/osc-website · 2026-04-14
- Port SvelteKit application to Next.jsalexkibler/bikeapelago · 2026-04-06
- Convert SvelteKit application to Next.js frontend-only with expandable sidebarenskiilda/webui2 · 2025-12-07
SvelteKit → React8 PRs
- Rewrite Yahtzee scorekeeper from SvelteKit to React with ViteTheRauch1/yahtzee · 2026-08-13
- refactor: migrate web app from SvelteKit to React with new component structure and page routingDev-Card/DevCard · 2026-06-03
- refactor: migrate web app from SvelteKit to React with new component …Dev-Card/DevCard · 2026-06-03
- Migrate frontend from SvelteKit to React + Vite with Framer MotionAlidrix/The_Trend_Scope · 2026-05-04
- feat: migrate from SvelteKit to React 19 + TanStack Starthfrdmnk/morgenblau · 2026-02-25
- Migrate from Tauri/SvelteKit to rngpui React Native + Rust backendundivisible/vuno · 2026-02-14
- Migrate from SvelteKit to React with React RouterDaniel-BD/personal-tracking · 2026-02-10
- Migrate/sveltekit to reactjaem1n207/synchronize-tab-scrolling · 2025-10-17
SvelteKit → Nuxt3 PRs
- Use Opencode to try switching from sveltekit to nuxtpelletiermaxime/nhlstats · 2026-01-10
- chore: Sveltekit to Nuxt migrationiuru2522/iuru · 2025-01-12
- chore: Migration from SvelteKit to NuxtPerdolique/pepega · 2025-01-10
Alternatives to SvelteKit
All alternatives by situation →Questions makers ask about SvelteKit
Where can I deploy a SvelteKit app?
You pick an adapter for the target. Official adapters exist for Node servers, Bun, static hosting, Vercel, Netlify and Cloudflare, and community adapters cover other platforms. source ↗
Can it generate a fully static site?
Yes. adapter-static prerenders the whole site to files. To prerender only some pages and server-render the rest, use another adapter with the prerender page option. source ↗
Can I build a client-only single-page app?
Yes, by turning off SSR and serving a fallback page. The docs warn this costs load performance and SEO, and suggest prerendering as many pages as you can. source ↗
Can I use it with a backend written in another language?
Yes. The recommended setup deploys the SvelteKit frontend separately with the Node or a serverless adapter; you can also serve it as a SPA from your existing backend, with worse SEO and performance. source ↗
How do I add authentication?
SvelteKit has no built-in auth. You check the session cookie in the handle hook and put the user on locals; the Svelte CLI can set up Better Auth, and the Lucia guide covers building session auth yourself. source ↗
How do I connect a database?
Query the database only in server code, typically through a shared client module, never in .svelte components. The Svelte CLI can set up database integrations for you. source ↗
Can I ship it as a mobile or desktop app?
Yes. A SvelteKit SPA can be packaged as a mobile app with Tauri or Capacitor, or as a desktop app with Tauri, Wails or Electron. source ↗
Is SvelteKit free?
Yes — it is free, open-source software.
Is SvelteKit open source or self-hostable?
Open source, and you can self-host it. source ↗
Can AI coding agents work with SvelteKit?
It serves an llms.txt docs index; it has an official MCP server (dev.svelte/mcp); it has an official CLI (@sveltejs/kit).
Who uses SvelteKit?
No maker's live product we track yet; 66 open-source projects declare it in their code. source ↗