SaaS multi-tenant · PyMEs Mexico

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.

Next.js 16FastAPIPostgreSQLStripeFacturapiTwilioCelery
Antes de nosotros

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).

Lo que construimos

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).

Funcionalidades

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.

Screenshots

Como se Ve

Screenshot

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.

Screenshot

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.

Screenshot

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.

Screenshot

Configuracion de Modulos del Tenant

Vista del super-admin (LozPulse) para gestionar tenants: activar modulos, ver suscripcion Stripe, cambiar plan, ver actividad reciente.

Stack

Detalles Tecnicos

ComponenteTecnologia
FrontendNext.js 16 App Router + React 19 + Shadcn UI + Tailwind 4
BackendFastAPI + Python (async SQLAlchemy)
Base de datosPostgreSQL (UUIDs en todos los PKs)
MigracionesAlembic
AuthJWT + refresh tokens (3 roles: owner, manager, employee)
Real-timeSocket.IO (POS + KDS)
Async tasksCelery + Redis (WhatsApp, PDF, email)
PagosStripe (suscripciones SaaS) + webhooks
CFDI 4.0Facturapi
WhatsAppTwilio + N8N (self-hosted)
Impresion termicapython-escpos
Metricas reales

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

¿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.