Yachtxchange: una aplicación con acceso por roles, cinco funciones de IA y una infraestructura con costo en reposo casi nulo para agencias de yates
Un diario de desarrollo de Yachtxchange —el SaaS B2B de SEYSO para agencias de yates. Una navegación de nivel YachtWorld para compradores, vendida a las agencias como software por planes: una aplicación móvil en ambas tiendas, un portal para agentes que redacta anuncios a partir de fotos en tres minutos y una factura de infraestructura que se redondea a cero mientras la agencia duerme.
1 app
Ambas tiendas, acceso por rol
5
Roles, una base de código
30→3
Minutos por anuncio
~$0
Infraestructura inactiva por tenant
La propuesta inicial: las agencias compran software, los compradores obtienen un mercado
Los mercados de yates monetizan los anuncios; las agencias que hacen el trabajo real siguen usando hojas de cálculo, carpetas de fotos y descripciones copiadas de Word. Redactar un buen anuncio —título, texto para compradores, inventario de equipos y notas de estado— lleva unos treinta minutos por embarcación a un agente, y la falta de uniformidad se aprecia en la página de cualquier agencia.
Yachtxchange invierte el modelo: la agencia es el cliente . Se suscribe a un plan, obtiene un portal que hace el trabajo tedioso y su inventario alimenta una experiencia de compra que parece un mercado de primera categoría, web y móvil nativo, sin que la agencia tenga que desarrollar nada.
Cuatro planes, aplicados en el código, no en un PDF
Individual por $99/mes (5 anuncios, 1 usuario), Pro por $299 (25 anuncios, 3 usuarios, calificación de clientes potenciales), Agencia por $799 (100 anuncios, 10 usuarios, análisis de precios) y un plan Empresarial personalizado con acceso API y marca blanca. Lo interesante es dónde residen los límites: ensureCanCreateListing , ensureCanAddSeat y ensureAiCreditsAvailable son controles invocados dentro de Server Actions y rutas API, con Stripe como fuente de referencia y un webhook que replica localmente el estado de la suscripción. Sin límites basados en la buena fe ni tareas nocturnas de conciliación.
El uso de IA se mide del mismo modo: cada llamada al copiloto escribe una fila en la tabla usage_events , de modo que los créditos de cada plan se pueden contar, facturar y auditar desde el primer día.
Cinco roles, una base de código y agencias que se organizan solas
Hay exactamente una aplicación móvil en ambas tiendas y una aplicación web en un dominio. Lo que ves depende de quién eres:
buyerRegistro autónomo. Explora, guarda búsquedas y contacta a agentes.
broker_leadPrimer registro desde el dominio de correo de una agencia. Permisos completos de agente, más facturación y gestión de equipo.
broker_backupSegundo registro desde el mismo dominio. Permisos completos y ascenso automático a responsable si el titular se marcha. La sucesión es una regla de aprovisionamiento, no un ticket de soporte.
broker_agentInvitado por el responsable o suplente. Anuncios y clientes potenciales, configurables por usuario.
adminPersonal de Yachtxchange. Administración completa de la plataforma.
Las agencias se corresponden con Clerk Organizations , y la coordinación entre responsable, suplente y agente reside en un único módulo de aprovisionamiento. Un pequeño control de enorme importancia: los dominios de correo gratuitos, como Gmail, nunca se asocian automáticamente a una agencia existente, por lo que un desconocido con una dirección de Gmail nunca puede entrar en el entorno de otro cliente.
El monorepositorio: los esquemas Zod son el contrato
Dos aplicaciones, apps/web (Next.js 16 App Router, grupos de rutas para marketing, comprador, agente y administrador) y apps/mobile (Expo + EAS), se apoyan en seis paquetes compartidos: db (Drizzle ORM sobre Neon), auth (encapsuladores de Clerk y aprovisionamiento), ai, billing , ui y types . El paquete types es la pieza clave: los esquemas Zod son el contrato único compartido por las Server Actions web, las rutas API, el cliente API móvil y las herramientas de IA. Un cambio de esquema se propaga a todos los lugares que el compilador puede comprobar.
Un modelo de datos que va más allá del anuncio
El directorio de esquemas cuenta la verdadera historia del producto: anuncios, clientes potenciales, ofertas, citas, peritos navales y un repositorio seguro de documentos. Yachtxchange está construyendo discretamente el espacio de negociación, no solo el escaparate.
Multicliente por disciplina
Cada fila perteneciente a un cliente lleva un brokerage_id y cada consulta filtra por él o queda protegida por un control de administrador. El dinero se almacena en centavos como bigint —nunca como float.
La capa de IA: cinco funciones, ninguna dependencia de un proveedor
Todo pasa por Vercel AI Gateway con simples cadenas "provider/model" —sin un SDK de proveedor incrustado en la base de código, por lo que cambiar modelos o hacer pruebas A/B requiere cambiar una cadena, con observabilidad y alternativas de respaldo incluidas.
Copiloto de anuncios: la función que pasa de 30 a 3
El agente sube fotos y especificaciones en viñetas; un modelo de visión devuelve un borrador estructurado mediante generateObject conforme a un esquema Zod: título SEO, descripción de 3–5 párrafos para compradores, puntos destacados visibles sin desplazarse, lista de equipos inferida de las fotos, calificación del estado y etiquetas automáticas. Dos decisiones de diseño son fundamentales. El prompt prohíbe inventar especificaciones: solo admite lo proporcionado o lo que puede inferirse visualmente. Además, el esquema incluye un array warnings que señala contradicciones y afirmaciones que requieren verificación, de modo que el agente revisa advertencias en lugar de corregir textos. La creación de anuncios baja de ~30 minutos a ~3.
Búsqueda semántica
Similitud coseno de pgvector sobre embeddings de anuncios: funciona “trawler estable para el Great Loop por menos de 400k”, no solo filtros de marca/modelo.
Calificación de clientes potenciales
Consultas puntuadas de 0–100 con una próxima acción recomendada: los agentes del plan Pro dejan de priorizar su bandeja de entrada por intuición.
Extracción de peritajes
Datos estructurados extraídos de PDF de peritajes navales: el documento del que depende cada operación, por fin legible por máquinas.
Verificación de peritos
Señales de antecedentes del registro de peritos que alimentan el flujo de citas: confianza codificada.
Con la estructura preparada para lo siguiente: análisis de precios, mejora y etiquetado automático de fotos, búsqueda por imágenes, traducción y detección de fraude mediante fotos duplicadas.
La economía: una infraestructura con costo cero en reposo
Los márgenes del SaaS B2B se definen en las decisiones de infraestructura. Una agencia quizá esté activa ocho horas al día: elegimos las tecnologías para que las otras dieciséis no cuesten nada:
Precios de Vercel por CPU activa — paga por CPU durante el trabajo real, no mientras una función espera a la base de datos o a una llamada de IA.
Escalado a cero de Neon — El costo de cómputo de Postgres baja a $0 cuando está inactivo. Una correduría activa 8 h/día paga por 8 h.
Un despliegue multicliente — todas las corredurías comparten un proyecto y una base de datos, aisladas por brokerage_id; no hay infraestructura por tenant que supervisar.
Reutilización de instancias de Fluid Compute — las solicitudes simultáneas comparten instancias ya activas; los arranques en frío son la excepción, no la regla.
El verdadero límite de costos es el almacenamiento de fotos y videos: los anuncios de yates pesan mucho. Hay medidas de mitigación (redimensionamiento y AVIF al subir, caché intensiva) y un umbral acordado de antemano: si las facturas de transferencia saliente superan ~$500/mes, el almacenamiento se traslada a R2. Decidir los criterios de salida antes de que llegue la factura es la revisión de arquitectura más económica que harás.
Estado actual
La web y la aplicación móvil funcionan hoy con el esquema activo: la búsqueda para compradores, el portal para agentes con el copiloto de anuncios, la facturación por planes y la aplicación móvil con acceso por roles son funcionales en desarrollo privado. Los perfiles de compilación EAS están configurados para el envío a las tiendas. El espacio de negociación (ofertas, citas, programación de peritos y repositorio seguro de documentos) se entrega sobre el esquema ya existente.
Si diriges una agencia y te interesa comprobar en tu propio inventario la reducción de 30 a 3 minutos por anuncio, estamos abriendo un número limitado de conversaciones para pilotos.
Hablemos de un piloto
Yachtxchange lo crea el equipo detrás de LiftCrew AI, Sentinel y Liftline, y el mismo modelo de suscripción impulsa nuestro servicio de aplicaciones móviles como servicio.