Caso de estudio · SaaS en producción

Turnos online para negocios reales, construido y operado por una sola persona.

Agendra es una plataforma de gestión de turnos multi-tenant: cada negocio tiene su propio subdominio, su propia configuración y su propio panel de administración. Diseñada, desarrollada, desplegada y mantenida de punta a punta — desde el modelo de datos hasta el servidor Linux que la sirve.

SaaS multi-tenant Python Flask PostgreSQL Linux Mercado Pago
El problema

La agenda de un negocio chico vive repartida entre el papel, el WhatsApp y la memoria

Barberías, peluquerías y consultorios pequeños suelen coordinar turnos a mano: mensajes de ida y vuelta, un cuaderno en el mostrador, superposiciones que se descubren recién cuando el cliente llega. Ninguna herramienta genérica de turnos está pensada para que el propio dueño la configure sin depender de nadie más.

  • Turnos coordinados por WhatsApp, sin un registro único ni recordatorios automáticos.
  • Superposición de horarios entre distintos profesionales del mismo local.
  • Ausencias (no-shows) sin ningún mecanismo de compromiso previo por parte del cliente.
  • Cero visibilidad para el dueño: no hay forma simple de ver el día completo de todos sus empleados.
  • Las plataformas de turnos genéricas no contemplan que cada negocio tenga su propia marca, precios y equipo.
La solución

Un producto por negocio, una sola plataforma por detrás

Cada cliente de Agendra opera de forma independiente, con su propio subdominio y datos aislados, sobre la misma base de código y la misma infraestructura.

Subdominio propio

Cada negocio tiene su página de reservas en su propio subdominio (por ejemplo, tunegocio.agendra.com.ar), resuelto dinámicamente por tenant.

Reserva 24/7

El cliente final elige servicio, profesional, fecha y horario disponible sin llamar ni escribir, en un flujo guiado de pocos pasos.

Seña con Mercado Pago

Integración con Mercado Pago Checkout Pro para cobrar una seña al momento de reservar y reducir las ausencias.

Panel de administración

Agenda del día, gestión de turnos, profesionales y servicios — con login propio por negocio, sin acceso cruzado entre tenants.

Identidad configurable

Colores, logo y datos del negocio se configuran desde el propio panel, sin tocar código ni redeployar nada.

SSL automático

Certificado wildcard vía Certbot, para que cualquier subdominio nuevo quede servido bajo HTTPS sin pasos manuales por tenant.

Agendra en producción

No es un prototipo: son negocios reales usándolo hoy

Instancias activas corriendo sobre el mismo VPS, cada una con su propio subdominio y su propio panel.

Activa

Demo

demo.agendra.com.ar

Instancia pública de demostración para probar el flujo completo de reserva sin comprometer datos de un negocio real.

multi-tenant acceso libre
Probar demo
Activa

Barba Negra

barbanegra.agendra.com.ar

Barbería en San Rafael, Mendoza. Primer cliente real de Agendra, con identidad visual propia aplicada sobre la plataforma.

barbería cliente real
Ver sitio
Activa

De Pelos

depelos.agendra.com.ar

Segundo negocio en sumarse a la plataforma, operando en paralelo con su propia configuración y equipo de trabajo.

barbería cliente real
Ver sitio

Por dentro: el panel de administración

Capturas reales del panel de Barba Negra y del superadmin que da de alta nuevos negocios. Los números de WhatsApp se ven difuminados porque son datos reales de clientes.

Agenda del día, por barbero y horario.

Servicios y precios, editables sin tocar código.

Alta de negocios nuevos, vista de superadmin.

demo.agendra.com.ar activo barbanegra.agendra.com.ar activo depelos.agendra.com.ar activo 1 VPS · nginx + gunicorn + systemd
Arquitectura

Un servidor, múltiples negocios, un solo despliegue

El tenant se resuelve por subdominio en cada request; toda la infraestructura vive en un único VPS administrado a mano.

Diagrama de infraestructura a nivel de contenedores. Todo el flujo corre sobre un único VPS; Mercado Pago es el único servicio externo real en el camino de un pago.
Stack tecnológico

Herramientas simples, elegidas para operarlas una sola persona

Sin servicios administrados de terceros: cada pieza corre en infraestructura propia, controlada de punta a punta.

Python
Lenguaje
Flask
Backend
PostgreSQL
Base de datos
HTML5
Estructura
CSS3
Estilos
JavaScript
Interactividad
Linux
Sistema operativo
Hetzner VPS
Infraestructura
Nginx
Reverse proxy
Gunicorn
Servidor WSGI
Mercado Pago
Checkout Pro
Multi-tenant
Arquitectura
Desafíos técnicos

Problemas reales de un sistema multi-tenant en producción

Cada uno de estos puntos se resolvió operando la plataforma con clientes reales, no en un entorno controlado de laboratorio.

Multi-tenancy

Resolver el negocio correcto por subdominio en cada request

Una misma app Flask debe servir contenido, datos y configuración distintos según el subdominio de entrada.
Middleware de resolución de tenant que identifica el negocio antes de tocar cualquier vista, aislando datos por tenant a nivel de consulta.
Pagos

Rechazos de Mercado Pago por política de la cuenta

Los cobros de seña empezaron a fallar por una política de la cuenta que rechazaba el resultado del pago (error de tipo CPT01).
Diagnóstico del error puntual y migración a un token de producción correctamente autorizado, validado en un caso real de soporte.
Infraestructura

SSL para subdominios que todavía no existen

Cada negocio nuevo necesita HTTPS en su propio subdominio, sin pedir un certificado manual cada vez.
Certificado wildcard con Certbot que cubre cualquier subdominio futuro de agendra.com.ar desde el primer despliegue.
Configuración

Que el dueño configure su negocio sin tocar código

Cambiar el color, el logo o la contraseña de admin de un tenant no debería requerir un deploy nuevo.
Panel de configuración por tenant con guardado tipo UPSERT: crea la fila si no existe, la actualiza si ya está.
Operación

Desplegar y reiniciar sin downtime evidente

Cada cambio de código en producción necesita un flujo de despliegue simple y repetible, sin depender de un panel externo.
Servicio administrado con systemd sobre Gunicorn: git pull && systemctl restart como flujo estándar de deploy.
Seguridad

Separar el acceso de cada negocio del resto

Un negocio no debe poder ver ni administrar los turnos de otro, aunque compartan la misma base de código.
Login de administrador por tenant, con contraseña propia almacenada por negocio y verificación de pertenencia en cada acción.
Evolución del proyecto

De una app de turnos a una plataforma

El recorrido real del proyecto, de un sistema para un solo negocio a una base multi-tenant vendida puerta a puerta.

  1. Fase 1

    Primer sistema de turnos, single-tenant

    Aplicación Flask + PostgreSQL + Bootstrap para un único negocio, con el patrón base que luego se reutilizaría en toda la plataforma.

  2. Fase 2

    Refactor a arquitectura multi-tenant

    El sistema original se rediseña para servir múltiples negocios desde una misma base de código, con resolución por subdominio y datos aislados.

  3. Fase 3

    Primeros clientes reales

    Venta puerta a puerta a barberías de San Rafael. Barba Negra y De Pelos se suman como los primeros dos negocios activos en la plataforma.

  4. Fase 4

    Infraestructura propia desde cero

    Despliegue en un VPS de Hetzner: primer contacto real con Nginx, systemd y Certbot en producción, más allá del entorno de desarrollo local.

  5. Fase 5

    Cobro de señas con Mercado Pago

    Integración de Checkout Pro para cobrar seña al reservar, incluyendo el diagnóstico y resolución de errores reales de la política de pagos.

  6. Estado actual

    Producción estable, multi-tenant

    SSL wildcard activo, tres instancias corriendo en paralelo y un panel de superadministración para dar de alta nuevos negocios sin fricción.

Contacto

¿Charlamos sobre este proyecto?

Agendra sigue en desarrollo activo. Si sos reclutador, tech lead o dueño de un negocio y querés conversar sobre el proyecto, el código o una posible instancia nueva, este es el lugar.