Recepcion.net
SaaS multi-tenant de reservas: cada negocio tiene su propio sitio.
Una “recepcionista digital” para barberías, salones y consultorios. Cada negocio recibe un sitio white label en nombre.recepcion.net con reservas en línea, promociones y un CRM de clientes, y cada cliente usa una sola cuenta en todos los negocios de la plataforma. Diseñé el producto, el modelo de datos y la infraestructura, y lo construí de punta a punta.
- Multi-tenancy por subdominio con inicio de sesión único entre el panel del negocio, el hub de reservas y el sitio de cada negocio.
- Es imposible empalmar citas: la disponibilidad se verifica dentro de una transacción serializable, así que dos clientes nunca pueden tomar el mismo horario.
- Monolito modular sin estado (7 módulos de dominio) que escala horizontalmente detrás de un reverse proxy.
- CI/CD: GitHub Actions construye las imágenes en GHCR y producción solo hace pull y reinicia. Monitoreo con Sentry y Uptime Kuma.
Seguridad aplicada
- Doble candado sobre los datos de cada negocio: cada consulta se filtra por tenant en el código y Row Level Security de Postgres rechaza lecturas cruzadas. El rol de base de datos de la API no puede saltarse RLS.
- JWT en cookies httpOnly, bcrypt, claves de idempotencia en las reservas y rate limiting en Redis por IP y por negocio.
- Ningún contenedor publica puertos en el host: el tráfico solo entra por Cloudflare (WAF, certificados de origen) y Nginx Proxy Manager en una red Docker interna.
- Cloudflare Zero Trust Access en las superficies de administración; SPF, DKIM y DMARC en el dominio de correo.
- Navegador
- Cloudflare WAF
- Nginx Proxy Manager
- Next.js apps
- Express API
- Postgres + RLS · Redis
Sitio en vivo (Recepcion.net, se abre en otra pestaña)Demo en vivo (Recepcion.net, se abre en otra pestaña)