Todo lo que trae el kit
Veintiún patrones, el repo que realmente clonas y cuántas horas costaría cada pieza desde cero.
Qué incluye
Cada función listada aquí ya está implementada en el código que recibes.
TanStack Start
SSR, enrutamiento tipado basado en archivos y server functions de fábrica.
Autenticación Supabase
Email + contraseña, restablecimiento de contraseña y un guard de ruta reutilizable para páginas protegidas.
Perfiles + patrón RLS
Filas de perfil creadas automáticamente y una plantilla documentada de Row-Level Security que copias para cada tabla nueva.
Facturación Polar (MoR)
Checkout como merchant of record — IVA de UE/UK y sales tax de EE. UU. gestionados sin código extra.
Módulo de IA
Lovable AI gateway conectado en el servidor con un patrón reutilizable — funciona de inmediato, sin claves externas.
Equipos / Organizaciones
NuevoCrea orgs, invita miembros con enlaces tokenizados de 7 días, roles owner/admin/member, guardia del último owner y RLS que se extiende de forma transparente a proyectos compartidos.
Sistema de diseño shadcn/ui
Inter, paleta zinc neutra, acento índigo y un conmutador de tema claro/oscuro funcional.
Documentación lista para agentes
Un CLAUDE.md que enseña a Claude Code y Cursor tus convenciones para que extiendan el código correctamente.
Emails transaccionales
Integración con Resend para emails de bienvenida y confirmación de pedido — a prueba de fallos: nunca bloquea el registro ni el checkout.
Tests + CI
Tests de humo con Playwright para landing, precios e inicio de sesión, conectados a un workflow de GitHub Actions en cada push.
3 idiomas de fábrica
UI trilingüe (inglés, alemán, español) con validación del diccionario para que ninguna traducción derive.
Suscripciones listas (Polar)
Soporte de suscripciones dirigido por config — eventos de webhook conectados de punta a punta, entitlements resueltos automáticamente. Pon un product id y listo.
Patrones de monetización
Resolución de plan (free / early adopter / subscriber) más medición de uso de IA con enforcement de cuota y ruta de upsell. El modelo de negocio AI-SaaS completo.
Patrón de almacenamiento de archivos
Subida de avatar a un bucket privado con storage RLS por usuario — copia el patrón para cualquier archivo propio del usuario.
Roles y admin
Tabla user_roles con función has_role() SECURITY DEFINER y un área /admin protegida por rol para usuarios y pedidos.
Validación de clave de licencia
API de License Key de Polar envuelta como server functions, más una demo en vivo en /verify-license — reutiliza el patrón para tus propios productos.
Patrón de API keys
NuevoClaves sk_live_* con hashing SHA-256, UI basada en prefijo, visualización única, revocación y endpoint de referencia /api/v1/me con bearer auth.
Notificaciones in-app
NuevoBandeja por usuario con campana en el header y contador de no leídas. Solo eventos reales disparan notificaciones: invitación aceptada, miembro unido, compra confirmada.
Modo waitlist
NuevoUn boolean pone landing + pricing en modo captura de emails — server function con rate limit, vista admin, solo el service-role escribe.
Comandos de agente
Nuevo.claude/commands y .cursor/rules incluidos en el repo — /new-table, /new-page, /new-server-fn siguen las convenciones del kit al pie de la letra.
Motor de blog + RSS
NuevoPosts en markdown bajo content/blog, renderer sin dependencias, feed RSS, JSON-LD Article + BreadcrumbList, cobertura en el sitemap.
Dentro del repo
La estructura real que clonarás — y las convenciones que seguirá tu agente.
- src/
- routes/
- _authenticated/
- index.tsx
- pricing.tsx
- api/webhooks/
- integrations/supabase/
- lib/
- checkout.functions.ts
- config/billing.ts
- supabase/migrations/
- README.md
- CLAUDE.md listo para agentes
-- Add a new user-owned table with RLS (5 steps)-- 1. Create the table (user_id + timestamps)create table public.things (id uuid primary key default gen_random_uuid(),user_id uuid not null references auth.users(id) on delete cascade,created_at timestamptz not null default now(),updated_at timestamptz not null default now());-- 2. Grant Data API accessgrant select, insert, update, delete on public.things to authenticated;grant all on public.things to service_role;-- 3. Enable RLSalter table public.things enable row level security;-- 4. Four policies scoped to auth.uid() = user_idcreate policy "select own" on public.thingsfor select to authenticated using (auth.uid() = user_id);-- 5. Attach the shared updated_at triggercreate trigger things_set_updated_atbefore update on public.thingsfor each row execute function public.set_updated_at();
La cuenta de hacerlo tú mismo
Horas aproximadas para construir cada pieza a nivel de producción. Estimaciones, no presupuestos.
| Auth + guards de ruta | ~10 h |
|---|---|
| Patrones RLS + CRUD de referencia | ~8 h |
| Facturación merchant of record + webhooks firmados | ~10 h |
| Suscripciones + entitlements | ~8 h |
| Módulo de IA | ~6 h |
| Medición de IA + cuotas | ~4 h |
| Emails transaccionales | ~5 h |
| Almacenamiento de archivos + políticas | ~4 h |
| Roles + área de admin | ~6 h |
| i18n en 3 idiomas | ~8 h |
| SEO + páginas legales | ~4 h |
| Tests + CI | ~4 h |
| Sistema de diseño + modo oscuro | ~5 h |
| Validación de clave de licencia | ~3 h |
| Equipos / orgs + invitaciones + last-owner guard | ~14 h |
| API keys (hashing, revoke, bearer auth) | ~4 h |
| Blog + RSS + SEO | ~6 h |
| Notificaciones in-app | ~4 h |
| Modo waitlist | ~2 h |
| Patrón de audit log | ~2 h |
| Comandos de agente (Claude + Cursor) | ~2 h |
| Total | ~119 h |
Las horas son estimaciones para un desarrollador competente construyendo cada pieza bien — flujos de auth, políticas de seguridad, facturación con impuestos correctos, tests y traducciones que realmente funcionan.
A tarifas freelance típicas ($60–120/h) son aproximadamente $7.140–$14.280 de tiempo de construcción. SarvStack cuesta $99.