SaaS Framework Multi-Producto — Manual técnico¶
Versión del manual: 2026-05-24 (rev. 3) Estado: Estable — refleja el código entregado al comprador Idioma: Español (las traducciones a EN/FR/DE/PT se generan después de validación final)
¿Qué compraste?¶
Un framework SaaS multi-tenant multi-producto completo, listo para vender suscripciones a clientes finales. Incluye dos verticales de demo operativas con billing Stripe independiente:
- Bot (Help Center): widget embebible de FAQs en 5 idiomas.
- Website (SmartWebsite): demo de landing page con su propio ciclo de suscripción.
La arquitectura es agnóstica: añadir un tercer producto es extender 4 puntos (tabla, planes, endpoint de checkout, handler de webhook). Ver 22-multi-producto.md.
| Componente | Estado |
|---|---|
| Backend Django + DRF (API + auth + billing + superadmin) | Producción |
Frontend cliente (apps/dashboard, React + Vite + Tailwind) |
Producción |
Frontend superadmin (apps/superadmin, React + Vite + Tailwind) |
Producción |
Widget embebible (static/v3/, JS vanilla bundleado con Vite) |
Producción |
| Stripe billing multi-producto (checkout, portal, webhooks, PDF) | Producción |
| Ciclo de billing independiente por producto (bot / website) | Producción |
Sistema de planes configurables en BD (product_type por plan) |
Producción |
| Historial de facturas por producto en el dashboard | Producción |
| i18n 5 idiomas (es / en / fr / de / pt) | Producción |
| JWT auth + email verification + password reset + invitaciones | Producción |
| Emails transaccionales (15 tipos, 5 idiomas, locale desde dashboard) | Producción |
| Pre-launch / waitlist (invitaciones, toggle superadmin) | Producción |
| Multi-tenant: 1 Account → N Bots | Producción |
¿Qué NO compraste?¶
Para que no haya sorpresas:
- No hay chat IA — el widget muestra FAQs estáticas, no responde con LLM.
- No hay lead capture, flow builder, e-commerce — fueron exterminados del código.
- No hay omnichannel (WhatsApp, Telegram, etc).
- No hay Celery / Redis / colas async — el backend es síncrono. Los emails se envían inline.
- No hay Docker — deployment manual con systemd + nginx (más simple para un comprador con VPS).
Si quieres añadir cualquiera de estas piezas, el framework está estructurado para que extiendas sin tocar el core.
Cómo leer este manual¶
Orden recomendado en el sidebar (de arriba a abajo) para un developer senior que abre el zip por primera vez:
| Archivo | Qué responde |
|---|---|
01-arquitectura.md |
¿Qué stack? ¿Qué decisiones técnicas? ¿Cómo fluye una request? |
02-estructura-carpetas.md |
¿Qué hay en cada carpeta del repo? |
03-prerrequisitos.md |
¿Qué necesito en mi servidor antes de empezar? |
04-instalacion.md |
¿Cómo levanto el sistema desde cero? |
05-deploy-produccion.md |
¿Cómo lo paso a un dominio real con HTTPS? |
06-nginx.md |
¿Cómo configuro nginx? Vhost completo de muestra |
16-backup-restore.md |
pg_dump, restauración, snapshots |
17-troubleshooting.md |
Problemas comunes y cómo resolverlos |
07-base-datos.md |
¿Qué tablas hay? ¿Cómo se relacionan? |
08-endpoints-api.md |
Lista exhaustiva de todos los endpoints |
09-autenticacion.md |
Flujos JWT (register, login, refresh, reset) |
10-billing-stripe.md |
Stripe checkout, portal, webhooks, plan switching |
11-policy-engine.md |
Cómo se enforce los limits de plan (FAQs, idiomas) |
13-widget-embebido.md |
Snippet, contrato API, build, custom domain |
15-frontend-apps.md |
Estructura de los 2 React apps |
14-superadmin.md |
Panel de superadmin (operación de la plataforma) |
12-i18n.md |
Locales Django + i18next frontend |
20-emails.md |
Catálogo completo de emails + regla de locale |
21-prelaunch-invitations.md |
Waitlist / invitaciones pre-launch (feature incluido) |
22-multi-producto.md |
Arquitectura multi-producto: billing independiente por producto, cómo añadir un tercero |
23-prelanzamiento.md |
Modo prelanzamiento y acceso restringido |
19-licencia-terminos.md |
Términos de uso del código entregado |
Archivos listos para copiar¶
En .saas-docs/infra/ hay templates listos para copiar tal cual a tu servidor:
nginx-superbot.conf.example— vhost nginx completoblimx-django.service.example— systemd unit para gunicornenv.example— variables de entorno con descripciones
Sustituye superbot.pocololo.com por tu dominio y listo.
Soporte¶
Este manual cubre todo lo necesario para deploy y mantenimiento. Si encuentras algo no documentado, abre el código fuente — está comentado en los puntos donde el "porqué" no es obvio.