El contexto

Concierge CR es una plataforma dirigida a clientes internacionales de alto poder adquisitivo que visitan Jacó, Santa Teresa y Tamarindo en Costa Rica. No es una landing informativa — es una plataforma operativa completa: sitio público premium más un panel de administración con roles, pensada para que un equipo real gestione solicitudes, pagos y reservas todos los días.

El reto

Un servicio de concierge de lujo vende experiencias distintas (villas, transporte privado, actividades) cada una con su propia lógica de precio y disponibilidad, y necesita procesar depósitos y pagos reales sin fricción, mientras un equipo interno (no solo el dueño) da seguimiento a cada solicitud desde un panel con permisos diferenciados.

La solución

Una plataforma full-stack sobre Next.js 14 y TypeScript, con Prisma y PostgreSQL como capa de datos, autenticación con NextAuth, pagos con Stripe en USD, y un panel administrativo con roles de Admin y Staff — cada uno con distinto nivel de acceso — más un dashboard de analíticas para dar seguimiento a las solicitudes en tiempo real.

Funcionalidades clave

El desafío técnico más interesante

Más allá del catálogo de servicios, el punto crítico fue la capa de seguridad: rate limiting en los endpoints públicos, protección CSRF en formularios, sanitización de inputs contra XSS, cabeceras de seguridad (CSP, HSTS, X-Frame-Options), validación server-side con Zod en cada ruta de API, prevención de inyección SQL vía Prisma ORM (queries parametrizadas), y un log de auditoría que registra cada acción realizada dentro del panel administrativo. Para una plataforma que maneja pagos reales y datos de huéspedes, esa capa no es opcional — es tan parte del producto como el catálogo de villas.

Stack técnico

Next.js 14 · TypeScript · Tailwind CSS · Prisma · PostgreSQL · NextAuth · Stripe · Resend · Framer Motion · Zod