Documentación

StartFast Pro

StartFast Pro es una plantilla premium de Next.js 15 lista para producción con autenticación, pagos, equipos, i18n, analíticas, blog y un sistema de UI limpio — todo preconfigurado.

Esta documentación te ayudará a comenzar rápidamente y personalizar StartFast Pro para tu producto SaaS.

Lo que obtienes

  • Next.js 15 App Router con React 19 y componentes de servidor
  • Autenticación con Better Auth (Email, Google, GitHub OAuth)
  • Base de datos PostgreSQL con Drizzle ORM
  • Pagos con Stripe (suscripciones y webhooks)
  • Envío de emails vía Resend
  • Internacionalización con next-intl (7 idiomas)
  • Equipos y RBAC con organizaciones, roles y permisos
  • Analíticas con integración de PostHog
  • Sistema de blog con Markdown, SEO y tiempo de lectura
  • Panel de administración para usuarios, pedidos, analíticas y contenido
  • Pruebas E2E con Playwright
  • TypeScript con seguridad de tipos de extremo a extremo

Inicio rápido

1Clonar el repositorio
git clone https://github.com/Harries/startfast-pro.git my-saas
2Instalar dependencias
cd my-saas && npm install
3Configurar entorno
cp .env.example .env.local
4Configurar base de datos
npm run db:push
5Iniciar desarrollo
npm run dev

Abrir http://localhost:3000

Variables de entorno

Copia .env.example a .env.local y configura:

# App
NEXT_PUBLIC_APP_URL=http://localhost:3000
NEXT_PUBLIC_APP_NAME=StartFast Pro

# Database (Postgres)
DATABASE_URL=postgresql://username:password@localhost:5432/startfast_pro

# Authentication (Better-Auth)
BETTER_AUTH_SECRET=your-secret-key-at-least-32-characters
BETTER_AUTH_URL=http://localhost:3000

# Email (Resend)
RESEND_API_KEY=re_xxxxx
EMAIL_FROM=onboarding@yourdomain.com

# Stripe
STRIPE_SECRET_KEY=sk_test_xxxxx
STRIPE_WEBHOOK_SECRET=whsec_xxxxx
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_test_xxxxx

# Optional: Google OAuth
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=

# Optional: GitHub OAuth
GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=

# Analytics (PostHog)
NEXT_PUBLIC_POSTHOG_KEY=
NEXT_PUBLIC_POSTHOG_HOST=https://app.posthog.com

# Default Locale
NEXT_PUBLIC_DEFAULT_LOCALE=en

Configuración de base de datos

StartFast Pro usa PostgreSQL con Drizzle ORM. Recomendamos Neon para PostgreSQL sin servidor.

  1. 1.Crear una base de datos PostgreSQL (local o Neon)
  2. 2.Configurar DATABASE_URL en tu .env.local
  3. 3.Ejecutar npm run db:push para enviar el esquema a la base de datos
  4. 4.Usar npm run db:studio para ver/editar datos con Drizzle Studio
  5. 5.Usar npm run db:generate para generar migraciones

Schema: El esquema de la base de datos se define en src/db/schema.ts usando el enfoque TypeScript-first de Drizzle. El cliente DB se exporta desde src/db/index.ts.

Autenticación

StartFast Pro usa Better Auth con adaptador Drizzle para autenticación. Soporta email/contraseña y OAuth social.

  1. 1.Configurar BETTER_AUTH_SECRET (al menos 32 caracteres)
  2. 2.Configurar BETTER_AUTH_URL con la URL de tu app
  3. 3.(Opcional) Configurar Google OAuth: GOOGLE_CLIENT_ID y GOOGLE_CLIENT_SECRET
  4. 4.(Opcional) Configurar GitHub OAuth: GITHUB_CLIENT_ID y GITHUB_CLIENT_SECRET

Tip: La config de auth está en src/lib/auth.ts (servidor) y src/lib/auth-client.ts (cliente). Las sesiones expiran después de 7 días por defecto.

Pagos con Stripe

StartFast Pro soporta suscripciones de Stripe con manejo de webhooks.

  1. 1.Obtener tus claves API desde Stripe Dashboard → API Keys
  2. 2.Configurar STRIPE_SECRET_KEY, NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY
  3. 3.Crear un endpoint de webhook en https://your-domain.com/api/webhook/stripe
  4. 4.Copiar el secreto de firma del webhook a STRIPE_WEBHOOK_SECRET

Tip: Para pruebas locales, usa stripe listen --forward-to localhost:3000/api/webhook/stripe

Configuración de email

StartFast Pro usa Resend para emails transaccionales.

  1. 1.Crear una cuenta en Resend
  2. 2.Obtener tu clave API y configurar RESEND_API_KEY
  3. 3.Configurar EMAIL_FROM con tu dirección de remitente verificada
RESEND_API_KEY=re_xxxxx
EMAIL_FROM=onboarding@yourdomain.com

Internacionalización

StartFast Pro incluye soporte multi-idioma vía next-intl con 7 idiomas integrados.

  • Inglés (en)
  • Chino (zh)
  • Japonés (ja)
  • Coreano (ko)
  • Alemán (de)
  • Francés (fr)
  • Español (es)

Los archivos de traducción están en src/i18n/messages/. Configura el idioma predeterminado con:

NEXT_PUBLIC_DEFAULT_LOCALE=en

Analíticas

StartFast Pro se integra con PostHog para analíticas de producto. Incluye rastreadores de eventos para registros, suscripciones, acciones de equipo y más.

  1. 1.Crear una cuenta en PostHog
  2. 2.Configurar NEXT_PUBLIC_POSTHOG_KEY y NEXT_PUBLIC_POSTHOG_HOST

Tip: Los helpers de analíticas están en src/lib/analytics.ts. Usa analytics.signUp(), analytics.subscriptionStarted(), etc.

Equipos y roles

StartFast Pro incluye un sistema completo de organización y control de acceso basado en roles (RBAC).

Roles

  • Propietario — Acceso completo. Puede transferir la propiedad.
  • Admin — Gestionar miembros, configuración y la mayoría de recursos.
  • Miembro — Crear y editar contenido. Acceso limitado a configuración.
  • Visor — Acceso de solo lectura.

Tip: Los permisos se definen en src/lib/permissions.ts. Usa hasPermission(role, permission) para verificar acceso.

Despliegue

Despliega en Vercel en minutos:

  1. 1.Sube tu código a GitHub
  2. 2.Importa el repo en Vercel
  3. 3.Añade todas las variables de entorno
  4. 4.¡Despliega!

Important: Después de desplegar, actualiza tu URL de webhook de Stripe a tu dominio de producción.

Soporte

¿Necesitas ayuda? Contáctanos: