Backend multi-tenant para Supabase

El armazón, no el edificio.

Backend multi-tenant real para Supabase: 16 paquetes con RLS, roles, permisos y facturación ya resueltos. Evalúalo contra un proyecto en producción — no en un vídeo de YouTube ni en capturas de pantalla.

Sin tarjeta para ver las demos · construido y usado por Kaizenith en sus propios productos

Login real — traza en vivo EN VIVO
signInWithPassword(email, password)real
Decodificando claims del JWT (tenant_id, permisos)app_role="staff"
custom_access_token_hook → verificación de email✓ verificado
custom_access_token_hook → MFA step-up✓ no requerido
SELECT customer_projects WHERE tenant_id = … (RLS)✓ 3 proyecto(s)
SELECT activity_events (categoría filtrada por permisos)✓ 11 evento(s)
Qué es

Armazón, en una frase

Armazón es un conjunto de 16 paquetes de backend multi-tenant para Supabase — esquema SQL, políticas RLS, roles, permisos y un cliente TypeScript — que se compran con una licencia de pago único y se instalan sobre tu propio proyecto de Supabase. Resuelve la parte que todo SaaS B2B necesita y casi nadie quiere reescribir: que cada cliente vea solo sus datos, con roles y permisos que se aplican en la base de datos y no en el frontend.

Encaja si

Eres desarrollador o agencia

Montas un SaaS con Supabase, o proyectos a medida para clientes, y no quieres escribir otra vez el aislamiento por tenant, los roles, las reservas o la facturación. Con el plan Agencia usas la base en proyectos de cliente ilimitados.

No encaja si

Buscas una app o un kit de UI cerrado

Armazón es backend, no una aplicación terminada ni una librería de componentes. Tampoco sirve si tu backend no es Supabase/Postgres, o si no vas a tocar código.

Cómo funciona

De cero a un backend multi-tenant en tres pasos

  1. 1Eliges lo que necesitas. Un paquete suelto, un bundle (captación, portal, catálogo, suscripciones) o los 16. auth-core va siempre incluido.
  2. 2Ensamblas las migraciones. Un script las ordena según sus dependencias, sin duplicados, en una carpeta local; tú las aplicas con supabase db push. Nunca se toca tu proyecto sin que lo hagas tú.
  3. 3Generas la interfaz. Pegas el prompt del paquete en Lovable, v0, bolt.new o Claude y obtienes una pantalla real contra tu propio Supabase.
Qué incluye

16 paquetes, 6 categorías, un solo auth-core

Cada paquete es independiente e instalable por separado — importas solo lo que tu producto necesita. Todos comparten el mismo aislamiento de tenant por RLS, nunca resuelto en el frontend.

Acceso y cuentas

auth-core

Multi-tenant, roles, permisos, verificación de email y MFA (TOTP) aplicados en cada token — incluido gratis en cualquier compra, nunca se vende suelto.

auth-core
Clientes y proyectos

Relación con el cliente

El proyecto de un cliente, su historial, documentos privados compartibles con un clic.

customer-portaltenant-storage
Captación pública

Lo que ve un visitante

Formularios, catálogo, reservas, reseñas, idiomas y consentimiento — sin sesión.

customer-formscatalog-corebooking-core reviews-coreconsent-corei18n-core
Gestión interna

Nunca cara al cliente

El tablero del equipo y el registro de quién hizo qué, con permisos configurables por categoría.

tasks-coreactivity-log
Cobro y suscripción

Dos caras del dinero

Cómo cobra el negocio a sus clientes, y cómo te paga a ti su suscripción — nunca el mismo paquete.

billing-corepayments-coreentitlements-core
Integraciones y avisos

Cómo se entera el negocio

Notificaciones sin relé abierto, webhooks salientes firmados con HMAC hacia su CRM o Zapier.

notificationswebhooks-core
Y el frontend, ¿qué?

Un prompt por paquete, no un kit que mantener

En vez de venderte una librería de componentes que se queda anticuada, cada uno de los 16 paquetes trae su propio prompt autocontenido — pégalo en Lovable, v0, bolt.new o directamente en Claude y genera una pantalla real contra tu propio Supabase en minutos. Combina varios en el mismo mensaje para una app con más de un paquete.

prompts/auth-core.md
Modo A — sin este repoLovable · v0 · bolt.new
Modo B — con este repoClaude Code, importa @kaizenith/*
Un prompt por paquete, cero dependencias entre ellos✓ 16/16
Pruébalo tú mismo

Cinco demos en vivo, un mismo backend real

Todas corren contra el mismo tenant de Supabase — entra con las mismas cuentas de prueba en cualquiera y verás datos reales, no relleno.

EN VIVO5 pkgs

Captación y reservas

Un lead o una cita dispara email, webhook y consentimiento a la vez — el mismo evento real, tres reacciones.

.../demos/captacionAbrir →
EN VIVO5 pkgs

Portal de cliente

El proyecto de un cliente, sus documentos privados, cómo paga, y el tablero interno del equipo.

.../demos/portalAbrir →
EN VIVO3 pkgs

Catálogo público

Descuentos reales, traducción al vuelo, reseñas moderadas como prueba social — una sola pantalla.

.../demos/catalogoAbrir →
EN VIVO2 pkgs

Suscripciones y planes

Cómo se cobra esto como SaaS, y cómo se miden los límites de plan contra uso real de otros paquetes.

.../demos/suscripcionesAbrir →
Credenciales de prueba

Las mismas tres cuentas abren las cinco demos:

gerente@demo… · cliente@demo… · nuevo@demo…

Contraseña única, visible en cada demo — sin registro.

Ya en producción

La misma base detrás de productos reales

Armazón no es un experimento — es la base que Kaizenith ya usa para construir y operar sus propios SaaS.

EnlaceServicios sociales
CronistaCumplimiento ENS
SerenaReservas · psicología
NexaAcademias de danza
Pet Care PocketSalud de mascotas
Kaizenith WorkspaceProductividad interna
Alternativas

Armazón frente a construirlo tú o usar un boilerplate

Tres formas habituales de resolver el multi-tenant en Supabase. La de en medio varía mucho según el producto: léela como una tendencia, no como una regla.

CriterioConstruirlo desde ceroBoilerplate o starter SaaSArmazón
Dónde vive el aislamientoDonde tú lo decidas y lo escribasSuele variar: a menudo en la capa de aplicaciónEn Postgres, con RLS sobre tenant_id
VerificaciónLa que escribas túDepende del proyectoTests pgTAP contra un Supabase real, por paquete
AlcanceSolo lo que necesitas, pero todo a manoUn bloque que se adopta entero16 paquetes independientes: instalas solo los que usas
InterfazLa tuyaSuele traer UI propia que mantenerSin kit: un prompt por paquete para generarla
CosteTu tiempoVariablePago único, de 49 € a 1.249 € con IVA
Precio

Dos ejes: cuánto usas, cuánto necesitas

Solo — un proyecto propio. Agencia — proyectos de cliente ilimitados, el mismo uso que Kaizenith le da a esta base para Enlace, Cronista, Serena y Nexa.

Lanzamiento: el cobro online todavía no está abierto. Escríbenos a hola@kaizenith.es y te avisamos.

NivelSoloAgencia
Paquete individual — basecustomer-forms, customer-portal, tenant-storage, notifications, tasks-core, activity-log, consent-core, reviews-core, entitlements-core, i18n-core
Paquete individual — avanzadobilling-core, payments-core, booking-core, catalog-core, webhooks-core — Stripe Connect/Billing o concurrencia real
Suscripciones y planesbilling-core + entitlements-coreAhorras ~21%
Catálogo públicocatalog-core + i18n-core + reviews-coreAhorras ~20%
Portal de clientecustomer-portal + tenant-storage + tasks-core + payments-core + activity-logAhorras ~23%
Captación y reservascustomer-forms + booking-core + notifications + webhooks-core + consent-coreAhorras ~30%
Completo — los 16 paquetesTodo lo de arriba, para siempreAhorras ~52%
auth-core va incluido gratis en cualquier fila — nada funciona sin tenant, sesión y permisos, así que nunca se vende suelto. Precios con IVA incluido. Pago único por Stripe, con factura.

¿Ya tienes Solo? Pasa a Agencia pagando solo la diferencia

El precio del plan Solo que ya pagaste se descuenta del precio Agencia del mismo alcance. Compra el upgrade con el mismo email con el que pagaste Solo.

Límites, sin letra pequeña

Lo que Armazón no hace

  • —Sin cuenta de Stripe incluida: conectas la tuya, tanto para Billing como para Connect.
  • —Sin traducción automática: i18n-core activa idiomas y guarda traducciones — el texto lo escribe una persona.
  • —Sin kit de componentes cerrado: cada paquete trae un prompt para generar UI con la herramienta que prefieras, no una librería que mantener.
  • —Un único idioma de interfaz de gestión (español) — i18n-core traduce el contenido del tenant, no tu panel.
Preguntas frecuentes

Antes de comprar

¿Qué es Armazón?

Un conjunto de 16 paquetes de backend multi-tenant para Supabase: esquema SQL, políticas RLS, roles, permisos y un cliente TypeScript. Se compra con licencia de pago único y se instala sobre tu propio proyecto de Supabase.

¿Cómo aísla Armazón los datos de cada tenant?

Con políticas RLS de Postgres sobre tenant_id, aplicadas en la base de datos y no en el frontend. Los roles y permisos viajan como claims en el token de sesión.

¿Es de código abierto?

No. Compras una licencia de uso del código fuente: puedes modificarlo y desplegarlo dentro del alcance de tu plan, pero no revenderlo ni redistribuirlo. Los detalles están en los términos y condiciones.

¿Está listo para producción?

Los paquetes están en versión 0.x y cada uno se verifica con tests pgTAP contra un Supabase real. Las migraciones son aditivas: una vez aplicada, una migración no se edita, los cambios llegan como migraciones nuevas.

¿Esto reemplaza a Supabase?

No — se construye sobre tu propio proyecto de Supabase real. Armazón añade el esquema, las políticas RLS y el cliente TypeScript; tú sigues siendo dueño de tu base de datos.

¿Puedo comprar un solo paquete?

Sí. Cada uno de los 16 es independiente — instala solo el que tu proyecto necesita, sin arrastrar los otros 15.

¿Qué pasa si empiezo en Solo y luego monto una agencia?

Compras el upgrade del mismo alcance y pagas solo la diferencia: al precio Agencia se le descuenta lo que pagaste por Solo. Lo compras en la sección de precios, con el mismo email.

¿Los datos de las demos son reales?

Sí. Las cinco corren contra el mismo proyecto de Supabase en producción — el mismo que ves en la traza del login, no una grabación.

¿Necesito saber Postgres o RLS a fondo?

Ayuda, pero no es obligatorio: cada paquete expone un cliente TypeScript — las políticas RLS ya están escritas y verificadas para ti.

¿Cómo empiezo la interfaz de mi proyecto?

Cada paquete incluye un prompt listo para pegar en Lovable, v0, bolt.new o Claude — genera una pantalla real contra tu propio Supabase sin escribir el CRUD a mano.

¿Cómo recibo el código?

Por una invitación a un repositorio privado de GitHub (o acceso a un registro privado de paquetes, si prefieres instalarlo con pnpm). Al pagar nos indicas tu usuario de GitHub y te damos acceso.

¿Incluye actualizaciones?

Sí, sin límite de tiempo: tanto módulos nuevos como mejoras de los existentes (corrección de errores, más funcionalidad). El pago es único.

¿Qué soporte tengo?

Por email en soporte@kaizenith.es y en un canal del Discord de Kaizenith.

¿El precio incluye IVA? ¿Hay factura?

Los precios son con IVA incluido y cada compra genera su factura a través de Stripe.

Feedback

Cuéntanos qué falta, qué falla o qué no se entiende

Llega directo a nuestro correo. Si quieres respuesta, déjanos tu email.

El armazón ya está de pie.

Entra a cualquiera de las cinco demos con las mismas cuentas de prueba y compruébalo tú mismo.

Resumen del pedido

Confirma tu licencia

Alcance
Asiento
Precio

En el pago te pediremos tu usuario de GitHub para invitarte al repositorio privado. Stripe procesa el cobro; Armazón no ve ni guarda los datos de tu tarjeta.