TFC
producción
- schematfc.*
- sesióncookie tfc_
- dominiotfc.tfcapps.com
Runtime multi-tenant · 2026
Nexus corre funnels, checkout, suscripciones, accesos, contenido y automatizaciones para varios negocios a la vez. Cada uno con su schema en Postgres, su autenticación y su dominio. Los motores se comparten; los datos, nunca.
POSTtfc.tfcapps.com/api/checkout/confirm
Un cobro real: precio regional, cargo off-session, acceso otorgado y evidencia escrita.
Casi todo el mundo llama multi-tenant a un WHERE tenant_id. Acá cada negocio entra por su dominio, guarda sus datos en su propio schema y valida la sesión contra su propia instancia de autenticación. Un bug de alcance no puede filtrar al negocio de al lado, porque no hay una tabla compartida que filtrar.
producción
validación
tenant #4
El límite está enforzado, no documentado:architecture:tenant-boundary:checkcorre en cada build y su lista de excepciones sólo puede achicarse.
Todo lo que un negocio digital necesita para cobrar, dar acceso y seguir funcionando. Escrito una vez y compartido por todos los tenants.
Funnels con pasos y variantes, checkout, upsells y precios por región. De la intención al ingreso sin pegar tres proveedores con cinta.
Órdenes, suscripciones, planes en cuotas y reconciliación. La renovación la cobra un cron propio con el método de pago guardado.
Una persona canónica detrás de todos sus emails y compras, con sesiones aisladas por negocio y permisos que se otorgan, no se adivinan.
Academias, bibliotecas reclamables y catálogos, en 23 idiomas con RTL incluido. Publicar, dar acceso y medir desde el mismo lugar.
Eventos durables que disparan emails, accesos y recorridos. Si el proceso se cae, el evento sigue ahí esperando a que alguien lo tome.
Spans por request, webhooks persistidos y tablas forenses. Responder «¿qué pasó con este caso?» es una consulta, no una tarde perdida.
Nexus no usa las suscripciones de Stripe ni las de PayPal. Las renovaciones las cobra un cron propio con los métodos de pago guardados: la política de reintentos, el estado de la suscripción y la semántica de tus números son tuyas. Cambiar de procesador pasa a ser cambiar un adaptador.
Adaptadores, no dueños
Stripe cobra off_session con el método guardado; PayPal usa vault o billing agreement legacy, detectado automáticamente. El motor de renovación no necesita saber cuál de los dos está usando.
Números sin trampa
Una suscripción recurrente, un plan en cuotas y una compra lifetime no son lo mismo. Una sola fórmula alimenta todos los tableros, así ninguno miente distinto que el de al lado.
Un cobro por ciclo
El cron corre con lock y monitor propio: dos ejecuciones simultáneas no pueden cobrar dos veces la misma suscripción.
Política de reintentos
El primer rechazo casi nunca es una baja: es una tarjeta vencida. Durante esta ventana el cliente sigue entrando como si nada.
Después el acceso queda en espera, pero el intento sigue. Recuperar una suscripción vieja cuesta bastante menos que conseguir una nueva.
Cada request abre un span, cada webhook queda guardado, cada decisión automática registra su input, la regla que aplicó y el resultado. Cuando algo falla no hay que reconstruirlo: ya está escrito.
Está pensado para que lo opere un equipo de agentes. Un humano supervisa desde tableros; el trabajo lo hacen agentes que llegan con el contexto vacío. Por eso la observabilidad no es un extra: es la interfaz.
├orden ord_9F2K · 1 intento previo
├persona per_31a8 · 3 emails unificados
├cobro stripe · declined · insufficient_funds
├regla dunning.fast · reintento en 6h
├acceso academy:pro · activo hasta el 4º intento
├spans 14 · 212ms
└evidencia persistida · webhooks + eventos
El precio acompaña la cantidad de negocios que corren sobre el runtime, no la cantidad de funciones que se desbloquean.
Para el primer negocio que quiere dejar de pegar herramientas entre sí.
$240/ mes
Para operar varios negocios sin multiplicar la infraestructura.
$890/ mes
Para quien quiere el runtime corriendo en su propia infraestructura.
A medida
Se ubica debajo. Nexus resuelve identidad, cobro, acceso, contenido y automatización; lo que el visitante ve lo seguís diseñando vos. Lo que reemplaza es el collage de plugins que hoy sostiene esas cuatro cosas y que ya nadie se anima a tocar.
Que no comparten tablas. Cada tenant tiene su schema en Postgres, su instancia de autenticación con cookie propia y su dominio. Los motores compartidos no importan código de un tenant ni consultan sus tablas: lo específico entra por configuración, y hay un chequeo automático que lo verifica en cada build.
Sí. Stripe y PayPal ya están soportados y entran como adaptadores: el ciclo de vida de la suscripción vive en Nexus, no en el proveedor. Sumar un tercero es escribir un adaptador, no rehacer el negocio.
Tus datos están en Postgres, con migraciones versionadas y schemas legibles. No hay un formato propietario del que haya que rescatarlos ni una exportación que pedir por soporte.
Está diseñado para eso. Trazas correlacionadas, decisiones automáticas guardadas con su input y su regla, endpoints de diagnóstico y documentación viva. Un agente que llega con el contexto vacío puede reconstruir qué pasó sin preguntarle a nadie.
Depende del negocio, no de la infraestructura: dominio, schema, instancia de auth y la configuración del tenant. Los motores ya vienen corriendo desde el primero.
Traé tu segundo negocio. O el primero, si querés que arranque bien de entrada.