Italiano
Anteprima del prodotto · In sviluppo

Yachtxchange: un’app con accessi per ruolo, cinque funzionalità IA e uno stack dai costi di inattività quasi nulli per le agenzie nautiche

Un diario di sviluppo di Yachtxchange — il SaaS B2B di SEYSO per le agenzie nautiche. Immagina una navigazione di livello YachtWorld per gli acquirenti, venduta però alle agenzie come software a piani: un’app mobile su entrambi gli store, un portale broker che prepara annunci dalle foto in tre minuti e una spesa infrastrutturale prossima allo zero mentre l’agenzia dorme.

10 min di lettura Di SEYSO SERVICES INC

1 app

Entrambi gli store, accessi per ruolo

5

Ruoli, un’unica base di codice

30→3

Minuti per annuncio

~$0

Infrastruttura inattiva per tenant

Il punto d’ingresso: le agenzie comprano software, gli acquirenti ottengono un marketplace

I marketplace di yacht monetizzano gli annunci; le agenzie che fanno il lavoro concreto usano ancora fogli di calcolo, cartelle di foto e descrizioni copiate da Word. Scrivere un buon annuncio — titolo, testo per l’acquirente, inventario delle dotazioni, note sulle condizioni — richiede circa trenta minuti per barca, e l’incoerenza si vede nelle pagine di qualsiasi agenzia.

Yachtxchange ribalta il modello: il cliente è l’agenzia . Sottoscrive un piano, ottiene un portale che svolge il lavoro noioso e il suo inventario alimenta un’esperienza per acquirenti da marketplace di prima classe, web e mobile nativo, senza che l’agenzia debba costruire nulla.

Quattro piani, applicati nel codice, non in un PDF

Solo a $99/mese (5 annunci, 1 utente), Pro a $299 (25 annunci, 3 utenti, valutazione lead), Brokerage a $799 (100 annunci, 10 utenti, analisi dei prezzi) e un piano Enterprise personalizzato con accesso API e white label. La parte interessante è dove risiedono i limiti: ensureCanCreateListing , ensureCanAddSeat e ensureAiCreditsAvailable sono controlli chiamati nelle Server Actions e nelle route API, con Stripe come fonte autorevole e un webhook che replica localmente lo stato dell’abbonamento. Nessun limite basato sulla fiducia, nessun processo notturno di riconciliazione.

L’uso dell’IA viene misurato allo stesso modo: ogni chiamata al copilota scrive una riga in una tabella usage_events , così i crediti del piano sono conteggiabili, fatturabili e verificabili fin dal primo giorno.

Cinque ruoli, un’unica base di codice e agenzie che si organizzano da sole

Esiste esattamente un’app mobile su entrambi gli store e un’app web su un dominio. Ciò che vedi dipende da chi sei:

buyer

Registrazione autonoma. Esplora, salva ricerche, contatta i broker.

broker_lead

Prima registrazione dal dominio email di un’agenzia. Tutti i permessi broker, più fatturazione e gestione del team.

broker_backup

Seconda registrazione dallo stesso dominio. Permessi completi e promozione automatica a responsabile se il responsabile lascia. La successione è una regola di provisioning, non un ticket di assistenza.

broker_agent

Invitato dal responsabile o dal sostituto. Annunci e lead, configurabili per utente.

admin

Staff Yachtxchange. Amministrazione completa della piattaforma.

Le agenzie corrispondono a Clerk Organizations e la gestione di responsabile, sostituto e agente risiede in un unico modulo di provisioning. Un piccolo controllo di grande importanza: i domini email gratuiti, come Gmail, non vengono mai associati automaticamente a un’agenzia esistente, così un estraneo con un indirizzo Gmail non può entrare nel tenant altrui.

Il monorepo: gli schemi Zod sono il contratto

Due app: apps/web (Next.js 16 App Router, gruppi di route per marketing, acquirenti, broker e amministratori) e apps/mobile (Expo + EAS), basate su sei pacchetti condivisi: db (Drizzle ORM su Neon), auth (wrapper Clerk + provisioning), ai, billing , ui e types . Il pacchetto types è la chiave di volta: gli schemi Zod sono l’unico contratto condiviso da Server Actions web, route API, client API mobile e strumenti IA. Una modifica allo schema si propaga ovunque il compilatore possa vederla.

Un modello dati che va oltre l’annuncio

La directory degli schemi racconta la vera storia del prodotto: annunci, lead, offerte, appuntamenti, periti e archivio documentale. Yachtxchange sta costruendo discretamente lo spazio per le trattative, non solo la vetrina.

Multi-tenant per disciplina

Ogni riga appartenente a un tenant contiene un brokerage_id e ogni query filtra per questo valore o è protetta da un controllo amministrativo. Gli importi sono salvati in centesimi come bigint — mai come float.

Il livello IA: cinque funzionalità, nessun vincolo a un fornitore

Tutto passa attraverso Vercel AI Gateway con semplici stringhe "provider/model" — nessun SDK del fornitore incorporato nel codice, quindi sostituire modelli o eseguire test A/B richiede solo di cambiare una stringa, con osservabilità e fallback inclusi.

Copilota per annunci: la funzione da 30 a 3

Il broker carica foto e specifiche puntate; un modello visivo restituisce una bozza strutturata tramite generateObject secondo uno schema Zod: titolo SEO, descrizione per l’acquirente di 3–5 paragrafi, punti salienti subito visibili, elenco delle dotazioni dedotto dalle foto, valutazione delle condizioni e tag automatici. Due scelte progettuali contano più di tutte. Il prompt vieta specifiche inventate: solo dati forniti o visivamente deducibili. Inoltre, lo schema include un array warnings che evidenzia contraddizioni e affermazioni da verificare, così il broker esamina gli avvisi anziché correggere il testo. La creazione degli annunci scende da ~30 minuti a ~3.

Ricerca semantica

Similarità coseno pgvector sugli embedding degli annunci: funziona “trawler stabile per il Loop sotto i 400k”, non solo filtri per marca e modello.

Valutazione dei lead

Richieste classificate da 0 a 100 con un’azione successiva raccomandata: i broker del piano Pro smettono di ordinare la posta a intuito.

Estrazione dalle perizie

Dati strutturati dai PDF delle perizie nautiche: il documento da cui dipende ogni trattativa, finalmente leggibile dalle macchine.

Verifica dei periti

Informazioni di verifica sul registro dei periti che alimentano il flusso degli appuntamenti: la fiducia, codificata.

Prossime funzionalità predisposte: analisi dei prezzi, miglioramento delle foto e tag automatici, ricerca per immagini, traduzione e rilevamento delle frodi tramite foto duplicate.

L’economia: uno stack a costo zero quando è inattivo

I margini del SaaS B2B dipendono dalle scelte infrastrutturali. Un’agenzia è attiva forse otto ore al giorno: lo stack è scelto affinché le altre sedici non costino nulla:

  • Tariffazione Vercel Active CPU paghi la CPU durante il lavoro effettivo, non mentre una funzione attende il database o una chiamata IA.

  • Riduzione a zero di Neon Il costo del calcolo Postgres scende a $0 quando è inattivo. Un’agenzia attiva 8 ore al giorno paga per 8 ore.

  • Un’unica distribuzione multi-tenant ogni agenzia condivide un progetto e un database, con isolamento tramite brokerage_id: nessuna infrastruttura per tenant da sorvegliare.

  • Riutilizzo delle istanze Fluid Compute le richieste simultanee condividono istanze già attive; gli avvii a freddo sono l’eccezione, non la regola.

Il vero limite di costo è l’archiviazione di foto e video: gli annunci di yacht sono pesanti. Sono già previste misure di contenimento, come ridimensionamento e AVIF al caricamento e caching aggressivo, con una soglia concordata: se i costi del traffico in uscita superano ~$500/mese, l’archiviazione passa a R2. Definire i criteri di uscita prima dell’arrivo della fattura è la revisione architetturale più economica che si possa fare.

A che punto siamo

Web e mobile funzionano oggi sullo schema attivo: navigazione per acquirenti, portale broker con copilota per annunci, fatturazione dei piani e app mobile con accessi per ruolo sono operativi nello sviluppo privato. I profili EAS sono configurati per l’invio agli store. L’area trattative — offerte, appuntamenti, pianificazione dei periti e archivio documentale — viene realizzata sullo schema già presente.

Se gestisci un’agenzia e vuoi verificare sul tuo inventario la promessa di passare da 30 a 3 minuti per annuncio, stiamo aprendo un numero limitato di colloqui per progetti pilota.

Parliamo di un progetto pilota

Yachtxchange è realizzato dal team di LiftCrew AI, Sentinel e Liftline, e lo stesso modello di abbonamento alimenta la nostra offerta Mobile Apps as a Service.