CASE_06 / PLATAFORMA MULTI-TENANT

Zentia: una plataforma inmobiliaria capaz de convertirse en muchas.

Una única plataforma que opera varias agencias inmobiliarias, cada una con su marca, su catálogo, sus leads y su panel, y con los datos aislados por agencia en la propia base de datos.

Arquitectura de ZentiaEl dominio o subdominio de cada agencia, sus visitantes y su equipo entran en un único núcleo que sirve una web con la marca de la agencia, sus leads y sus datos aislados.01AGENCY DOMAIN02SUBDOMAIN03VISITOR04AGENCY ADMINZENTIA COREBRANDED SITELEADSISOLATED DATAArquitectura de ZentiaEl dominio o subdominio de cada agencia, sus visitantes y su equipo entran en un único núcleo que sirve una web con la marca de la agencia, sus leads y sus datos aislados.AGENCY DOMAINSUBDOMAINVISITORAGENCY ADMINZENTIA COREBRANDED SITELEADSISOLATED DATA
núcleo para todas las agencias
1
políticas RLS en las migraciones
45
idiomas: español, inglés y portugués
3
orígenes de lead registrados
4
Buscador de Zentia: «casa en Estepona con piscina» convertida en los filtros Estepona y Pool, con diez propiedades encontradas.
Búsqueda en lenguaje natural · la frase se convierte en filtros

01 — CONTEXT

El contexto

Una agencia inmobiliaria necesita mucho más que publicar propiedades: catálogo, búsqueda, captación de leads, seguimiento comercial, idiomas, analítica y administración forman parte del mismo sistema.

Portada pública de Zentia: «El hogar que siempre soñaste» con el buscador en lenguaje natural.
Web pública de la agencia · zentia.pro

02 — PROBLEM

El problema

Construir una plataforma distinta para cada agencia multiplica el código, el mantenimiento y cada mejora. La alternativa era un único núcleo capaz de adaptarse a cada negocio sin mezclar nada entre ellos.

03 — CONSTRAINTS

Las restricciones

  1. 01Cada agencia conserva su identidad: colores, logo, tipografía y textos propios.
  2. 02Cada agencia llega por su dominio o su subdominio y ve solo lo suyo.
  3. 03El aislamiento entre agencias no puede depender del frontend.
  4. 04Contenido en español, inglés y portugués.

04 — SYSTEM

Qué decidí construir

Una arquitectura de un solo núcleo y varios inquilinos: una única aplicación Nuxt que identifica la agencia por el dominio de la petición y carga su configuración, su marca, sus permisos y sus datos.

Modo Descubrir de Zentia: una propiedad a pantalla completa con la nota «Basado en tu amor por las vistas al mar, creo que esta es la indicada».
Descubrir · recomendaciones a partir de las preferencias

05 — ARCHITECTURE

Arquitectura del sistema

SOFTWARE

Software

  • Web pública por agencia: catálogo, fichas de propiedad, mapas, favoritos y onboarding.
  • Panel de agencia con dashboard, leads con estados, propiedades, ubicaciones y textos.
  • Superadministración para crear y clonar agencias y configurar su marca.
  • Emails a la agencia en su idioma con las propiedades que ha visto cada lead.

DATA

Datos

  • Supabase sobre PostgreSQL con Row Level Security: cada fila pertenece a una agencia.
  • Borrado lógico y visibilidad por estado: lo archivado o en borrador no llega a la web pública.
  • Leads con las propiedades vistas y las preferencias inferidas de la navegación.
  • Dashboard con propiedades más vistas, leads por origen y mapa de actividad.

AI / AUTOMATION

IA y automatización

  • Búsqueda en lenguaje natural: «villa con piscina en Marbella hasta 500k» se convierte en filtros de tipo, zona, precio y características.
  • Los filtros aparecen como chips editables y los resultados se actualizan al escribir.
  • Captación proactiva: cuando el visitante muestra intención, el sistema le pide el contacto y adjunta lo que ha visto.
  • Leads «calientes» señalados en el panel a partir de su actividad.

La interpretación de la búsqueda no depende de un modelo de IA: se resuelve con reglas, rápida y predecible.

06 — DECISIONS

Decisiones importantes, y por qué

D.01

El aislamiento, en la base de datos

Ocultar datos en la interfaz no es seguridad. Las políticas RLS impiden que una agencia lea o escriba filas de otra aunque una consulta llegue mal formada.

D.02

La agencia se resuelve en el servidor

Un middleware identifica la agencia por dominio propio, subdominio o URL registrada antes de pintar nada. La web no sabe que existen otras agencias.

D.03

Marca como configuración, no como código

Colores, logo, tipografías y textos viven en datos. Una agencia nueva no necesita un despliegue nuevo.

D.04

Las rutas del panel también comprueban

RLS es la primera barrera; además, cada ruta del panel valida la sesión, la agencia y el rol antes de consultar.

07 — RESULT

Resultado

  • Una plataforma vertical reutilizable: varias agencias sobre el mismo núcleo, cada una con su marca y sus datos.
  • Las agencias nuevas se crean o se clonan desde el panel de superadministración, sin construir un producto nuevo.
  • Pendiente, y documentado como tal: la gestión de dominios propios desde el panel y la facturación.

Sin cifras de negocio inventadas: lo que se muestra es lo que existe y está documentado.

08 — STACK

Stack técnico

  • Nuxt 4
  • Vue 3
  • TypeScript
  • Supabase
  • PostgreSQL
  • RLS
  • Tailwind CSS
  • i18n
  • Leaflet

09 — SIMILAR PROBLEMS

Qué problema parecido puedo resolver

  • →Varias marcas, delegaciones, franquicias o clientes necesitan el mismo sistema con datos separados.
  • →Mantienes versiones casi iguales de una misma web o aplicación, una por cliente.
  • →Necesitas que cada cliente vea solo lo suyo y que eso no dependa de la interfaz.

Este proyecto es un ejemplo de software a medida y datos e inteligencia.

Onboarding de Zentia: «¿Dónde te gustaría vivir?» con las regiones costeras de España para elegir.
Onboarding · las preferencias del visitante desde el primer paso

11 / MORE CASES

Otros sistemas que he construido.

Todos los casos

¿Necesitas una plataforma multi-tenant?

Cuéntame cuántas marcas, clientes o delegaciones tienen que convivir, qué comparten y qué no pueden compartir nunca.