Mila Barber
Sistema de reserva de citas automático para Hassan, que regenta una barbería en un barrio de Pamplona

- Mi papel
- Diseño, desarrollo, modelo de contenido y despliegue
- Año
- 2026
- Estado
- En producción
Web de Mila Barber, barbería del barrio de la Milagrosa (Pamplona). La parte pública es nueva y el área privada —cuentas, reserva de citas y agenda del local— rehace lo que ya existía en la aplicación anterior de la barbería.
Dos clases de datos conviven en el mismo sitio sin mezclarse: el contenido (fotos, servicios, precios y avisos) vive en Sanity y lo edita el propio barbero en /admin; las personas (cuentas y citas) viven en MongoDB y no pasan por el CMS ni se editan a mano.
El dominio anterior de la barbería sigue apuntando a la aplicación vieja: migrarlo es decisión del cliente. La portada se sirve todavía sin el montaje de vídeo.
Lo que tiene dentro
Una cita es una foto del momento en que se reservó: el nombre del servicio, su precio y su duración se copian dentro del documento, así que subir el corte de 14 a 16 € no reescribe lo que se cobró la semana pasada ni descuadra la agenda de aquel jueves.
Reservar ocurre dentro de una transacción: entre comprobar que el hueco está libre y escribir la cita cabe otra reserva, y el día que pasa deja a dos personas en la puerta a la misma hora.
Tres papeles (cliente, staff y administrador) que se dan a mano por consola: que registrarse el primero dé el mando es un agujero clásico en cuanto la web es pública.
La zona horaria la fija el arranque del servidor y no una variable de entorno, porque TZ está reservada en Vercel: en UTC, en verano la agenda se desplazaría dos horas y la barbería perdería los dos últimos huecos de la tarde.
Stack
- Next.js 16
- TypeScript
- Tailwind CSS 4
- Sanity
- MongoDB
- Auth.js
- bcrypt
- Nodemailer
- Vercel
