SvelteKit: Definición, Features, Routing, Guía Deployment
SvelteKit es el framework Svelte oficial para apps web full-stack — routing file-based, SSR/SSG/SPA, adapters para cualquier deploy target.
¿Qué es SvelteKit?
SvelteKit es el framework aplicación oficial para Svelte. Donde Svelte es el compilador componentes UI, SvelteKit es todo lo demás necesario para construir una app web full-stack: routing, server-side rendering (SSR), static site generation (SSG), API routes, tooling build y adapters deployment. Es análogo a Next.js para React o Nuxt para Vue.
¿Por qué SvelteKit?
- Bundles diminutos. Svelte compila componentes a JS vanilla.
- Cargas página rápidas.
- Rendering flexible.
- Routing file-based.
- Adapters para cualquier host.
- Form actions.
- TypeScript en todos lados.
- Dev server Vite.
Estructura proyecto SvelteKit
my-app/
├── src/
│ ├── routes/
│ │ ├── +page.svelte
│ │ ├── +layout.svelte
│ │ └── blog/[slug]/+page.svelte
│ ├── lib/
│ └── app.html
├── static/
└── svelte.config.jsRouting en SvelteKit
| Archivo | Propósito |
|---|---|
+page.svelte | Componente página |
+page.server.ts | Data loading server-only |
+page.ts | Data loading universal |
+layout.svelte | Layout |
+server.ts | Endpoint API |
+error.svelte | Error boundary |
Ejemplo data loading
export const load: PageServerLoad = async ({ params }) => {
const post = await db.post.findUnique({ where: { slug: params.slug } });
if (!post) throw error(404, 'Post not found');
return { post };
};API routes
export const GET: RequestHandler = async () => {
const posts = await db.post.findMany();
return json(posts);
};Form actions
export const actions: Actions = {
default: async ({ request }) => {
const data = await request.formData();
await db.post.create({ data: { title: data.get('title') as string } });
return { success: true };
}
};Adapters: deploya en cualquier lugar
| Adapter | Target |
|---|---|
adapter-auto | Auto-detect |
adapter-node | Node.js |
adapter-static | SSG puro |
adapter-vercel | Vercel |
adapter-netlify | Netlify |
adapter-cloudflare | Cloudflare |
SvelteKit vs Next.js vs Nuxt
| Feature | SvelteKit | Next.js | Nuxt |
|---|---|---|---|
| Compiler vs runtime | Compiler | Runtime | Runtime |
| Tamaño bundle | Más pequeño | Más grande | Medio |
| Curva aprendizaje | Más fácil | Más empinada | Media |
| Ecosistema | Más pequeño | Más grande | Medio |
Mejores prácticas SvelteKit
- +page.server.ts para datos sensibles.
- Usar form actions.
- Tipear todo.
- Elegir adapter correcto.
- SSR por default; opt-out donde necesario.
- Streaming con
defer. - Usar Svelte 5 runes.
FAQ: SvelteKit
¿Es SvelteKit production-ready?
Sí — 1.0 lanzado Dic 2022.
¿SvelteKit o Next.js?
SvelteKit para bundles más pequeños. Next.js para ecosistema React.
¿SvelteKit soporta TypeScript?
Sí — first-class.
¿Puedo usar SvelteKit para sitio estático?
Sí — adapter-static.
¿Cómo maneja SvelteKit autenticación?
Hooks (src/hooks.server.ts).
¿Funciona SvelteKit con mi framework CSS?
Sí — Tailwind, UnoCSS, todos.
¿Diferencia entre Svelte y SvelteKit?
Svelte = librería UI. SvelteKit = framework full-stack.
Load testea tu app SvelteKit con LoadFocus
LoadFocus corre scripts JMeter y k6 contra tu deployment SvelteKit desde 25+ regiones. Regístrate en loadfocus.com/signup.
Herramientas LoadFocus relacionadas
Lleva este concepto a la práctica con LoadFocus — la misma plataforma que potencia todo lo que acabas de leer.