SaaS Plantillas Mexico — Plataforma Multi-tenant para PyMEs
SaaS multi-tenant para negocios locales mexicanos (restaurantes, consultorios, spas) con POS, facturacion CFDI, WhatsApp Business, suscripciones Stripe y modulos sectoriales activables segun necesidad.
El Reto
Las PyMEs mexicanas (taquerias, cafeterias, dentistas, spas) operan en un tejido digital fragmentado: usan WhatsApp para citas, Excel para inventario, papelitos para comandas, y un PAC externo para facturas CFDI. Cada herramienta cuesta dinero, pero ninguna conversa con las otras. El pequeno empresario termina reconciliando todo a mano — o peor, dejando de reconciliar.
El reto era construir una plataforma SaaS unica donde cada negocio tuviera SU instancia (multi-tenant) con tenant_id como filtro obligatorio en cada query — sin riesgo de cross-tenant data leak — pero compartiendo un solo codigo, una sola base de datos. Y que la activacion de modulos (POS, CFDI, WhatsApp, recetas) fuera por flag en el tenant.config, no por columnas en la BD.
Tecnicamente el reto incluia integraciones criticas: Facturapi para CFDI 4.0 conforme al SAT, Twilio para WhatsApp Business chatbot, Stripe para suscripciones del propio SaaS ($499 a $1,299 MXN/mes), Socket.IO para live POS + KDS (kitchen display system) y Celery+Redis para tareas asincronas (envio de WhatsApp, generacion de PDF, emails).
La Solucion
Construimos un split arquitectonico 70/30: el 70% del codigo en `backend/core/` son modulos universales disponibles para CUALQUIER tenant (tenants, facturacion, inventario, pagos, whatsapp, personal); el 30% en `backend/modules/` son sector-especificos (`restaurante/` con POS, recetas, menu QR y reservaciones; `consultorio/` con agenda de citas, fichas de paciente, recetas medicas).
Cada modelo de datos hereda de TenantMixin (agrega tenant_id como FK obligatoria) y TimestampMixin. Soft deletes via deleted_at — nunca se borran datos. Las suscripciones se manejan con Stripe webhooks que activan/desactivan modulos via tenant.config JSONB. WhatsApp con Twilio + N8N (self-hosted) para flujos automatizados.
Frontend en Next.js 16 + Shadcn UI + Tailwind 4 con grupos de rutas: `(auth)` publicas, `(public)/[tenant]/` para landings de tenant, `menu/[tenant]/` para QR menus sin auth, y `dashboard/` protegido. Real-time via Socket.IO para sincronizar POS con cocina (KDS).
Features Clave
Tenant Isolation Estricto
Cada query filtra obligatoriamente por tenant_id. Models heredan TenantMixin que agrega FK. Soft deletes via deleted_at. Imposible cross-tenant leak — auditado en cada PR.
Activacion de Modulos por Tenant Config
Los modulos disponibles para cada tenant viven en JSONB `tenant.config.modules`. Activar/desactivar POS, CFDI, WhatsApp, KDS sin migracion de BD. Stripe webhook al pagar suscripcion modifica el config.
POS para Restaurantes con KDS Live
Modulo `restaurante/pos` con catalogo, comandas, mesas, propinas. Socket.IO empuja cada nueva orden al kitchen display screen (KDS) en cocina sin refresh. Impresion termica via python-escpos.
Facturacion CFDI 4.0 con Facturapi
Integracion directa con Facturapi para emitir facturas CFDI conformes al SAT mexicano. Calculo automatico de IVA, codigos de productos del catalogo SAT, generacion de XML + PDF + envio al cliente.
WhatsApp Business Chatbot con Twilio + N8N
Bot de WhatsApp para confirmar citas, tomar pedidos, enviar facturas. Flujos automatizados via N8N self-hosted en el mismo VPS. Todas las conversaciones quedan en BD asociadas al tenant.
Suscripciones Stripe con Webhooks
Modelo de cobro propio: $499-$1,299 MXN/mes. Stripe webhooks en `core/pagos/stripe_webhooks.py` activan modulos del tenant al pagar, suspenden al fallar el cobro, gestionan upgrades/downgrades.
Como se Ve
Dashboard del Tenant (Restaurante)
Metricas del dia, ventas, comandas activas, mesas ocupadas. Cards de los modulos activos del plan, accesos rapidos a POS, KDS, facturacion.
POS en Vivo + KDS
Pantalla de POS con catalogo, mesas, comanda activa. Pantalla paralela de KDS (kitchen display) en cocina con ordenes en tiempo real via Socket.IO.
Panel de Facturacion CFDI
Lista de facturas emitidas con estatus SAT, generacion de nueva factura desde una venta, descarga de XML/PDF, envio por correo automatico.
Configuracion de Modulos del Tenant
Vista del super-admin (LozPulse) para gestionar tenants: activar modulos, ver suscripcion Stripe, cambiar plan, ver actividad reciente.
Detalles Tecnicos
| Componente | Tecnologia |
|---|---|
| Frontend | Next.js 16 App Router + React 19 + Shadcn UI + Tailwind 4 |
| Backend | FastAPI + Python (async SQLAlchemy) |
| Base de datos | PostgreSQL (UUIDs en todos los PKs) |
| Migraciones | Alembic |
| Auth | JWT + refresh tokens (3 roles: owner, manager, employee) |
| Real-time | Socket.IO (POS + KDS) |
| Async tasks | Celery + Redis (WhatsApp, PDF, email) |
| Pagos | Stripe (suscripciones SaaS) + webhooks |
| CFDI 4.0 | Facturapi |
| Twilio + N8N (self-hosted) | |
| Impresion termica | python-escpos |
Resultados
Restaurantes + Consultorios
Sectores soportados
Si
Multi-tenant strict
POS, CFDI, WA, KDS...
Modulos activables
$499-$1,299 MXN
Suscripcion mensual
3 semanas
Trial gratis
Servicios relacionados
¿Tu negocio esta atrapado entre WhatsApp, Excel, papelitos y un PAC?
Una sola plataforma con POS, facturas CFDI, WhatsApp y reportes — modulos que activas segun crece tu negocio. Trial 3 semanas, sin tarjeta.