King Kong Barber — SaaS de reservas para barberías
Full Stack / SaaS
Nació como el sitio de reservas de una barbería y hoy es una plataforma SaaS multi-tenant para barberías y salones: cada negocio tiene su subdominio, su marca, su equipo y su agenda. Un negocio se da de alta solo, con 14 días de prueba y un asistente inicial, y el dueño de la plataforma lo administra desde un panel propio. Las reservas se validan en el servidor en la zona horaria de cada negocio y una restricción de exclusión en Postgres impide que dos citas choquen. Incluye recordatorios automáticos por correo y push, reprogramación, ausencias y feriados, y una landing del producto con precios. Es una PWA instalable con modo sin conexión. Tras una auditoría en octubre de 2026 se resolvieron los CVE críticos, las fugas entre negocios y la seguridad de cuentas y sesiones.
Tecnologías
- Next.js 15
- React 19
- TypeScript
- Tailwind CSS
- shadcn/ui
- Prisma 7
- PostgreSQL (Neon)
- NextAuth v5
- Zod
- Resend
- Web Push
- Serwist (PWA)
- Dexie
- Cloudinary
- GitHub Actions
- Vercel
Funcionalidades
- Multi-tenant por subdominio: marca, logo, colores, zona horaria y textos por negocio, con aislamiento verificado entre negocios
- Alta self-service con 14 días de prueba, slug validado en vivo y asistente inicial (marca, servicios, primer barbero)
- Panel de plataforma (SUPER_ADMIN): estado, plan y uso de cada negocio; suspender, reactivar o extender la prueba, con registro de auditoría
- Reservas validadas en el servidor: horario, descanso, servicio del barbero y zona horaria del negocio
- Restricción de exclusión en Postgres (btree_gist) contra citas solapadas: de 3 reservas simultáneas al mismo horario, una entra y dos reciben 409
- Recordatorios 24 h y 2 h por correo y push, sin duplicados aunque el cron corra dos veces
- Reprogramar y cancelar con política de anticipación configurable; ausencias de barberos y feriados
- Roles admin, staff (agenda propia, invitación por correo) y cliente (historial de citas)
- Cuentas: verificación de correo, recuperación de contraseña con tokens de un solo uso guardados con hash y sesiones revocables
- Límite de intentos en Postgres, validación con Zod en todas las rutas y cabeceras CSP y HSTS
- PWA instalable con Serwist, datos sin conexión en Dexie y notificaciones push
- Landing del producto /plataforma con funciones y precios; correcciones WCAG de contraste, foco y pausa de animaciones
- Migraciones versionadas de Prisma, respaldo y restauración lógica de la base