Progetti
Beachfy e il gestionale che nasce dalla piantina della spiaggia
Beachfy è la piattaforma per stabilimenti balneari che stiamo sviluppando in Melarise, e va detto subito: non è ancora aperta al pubblico. L'applicativo è pronto, ma l'apertura dichiarata è l'estate 2027 e oggi il sito mostra una pagina di attesa con countdown. La decisione che ne ha determinato tutta l'architettura è una sola: partire dalla mappa della spiaggia invece che dal calendario.
Come si gestisce oggi un lido e perché il calendario da solo non basta
Chi gestisce uno stabilimento balneare non ragiona per fasce orarie. Ragiona per posti. Il cliente abituale non chiede un ombrellone qualsiasi per martedì: chiede il quarantadue, quello in seconda fila vicino al passaggio, perché è lì che si mette da anni. Alla cassa arriva quasi sempre una richiesta di spazio, con un posto preciso in una fila precisa.
Molti software per lidi partono dal presupposto opposto. Sono costruiti sopra un modello preso in prestito da altri settori: una risorsa, un intervallo di tempo, una prenotazione che li lega. Il modello regge finché le risorse sono intercambiabili. Una camera vale l'altra a parità di categoria, una poltrona vale l'altra a parità di operatore. Su una spiaggia la posizione è il prodotto. La prima fila e l'ultima fila hanno prezzi diversi perché sono beni diversi, anche quando l'ombrellone è identico.
Il calendario resta indispensabile, ma da solo lascia scoperta la parte difficile. Se il dato primario è lo slot, la piantina finisce per essere un disegno mantenuto a parte, aggiornato a mano, che dopo tre settimane di stagione non corrisponde più alla spiaggia vera. Se invece il dato primario è la postazione collocata sulla mappa, il calendario diventa una proiezione: si legge, si mantiene da sé.
Beachfy nasce da questa inversione. È il prodotto su cui stiamo lavorando in Melarise e va detto subito: non è ancora aperto al pubblico. L'applicativo è sviluppato, ma l'apertura è dichiarata per l'estate 2027 e oggi il sito mostra una pagina di attesa con countdown. Quello che segue riguarda scelte progettuali e vincoli tecnici, prima ancora di qualsiasi risultato sul campo.
Il modello dei dati di un gestionale per stabilimento balneare parte dalla mappa
La struttura dei dati ricalca la gerarchia che esiste già sulla sabbia. La postazione è l'unità minima: un ombrellone con le sue coordinate sulla piantina e le sue dotazioni. Le postazioni stanno in file. Le file stanno in settori. Ognuno di questi livelli corrisponde a una parola che il gestore usa a voce quando parla con il bagnino.
Il listino si aggancia al settore e si ferma lì, senza scendere al singolo ombrellone, con i tre livelli che l'uso reale impone: feriale, weekend, alta stagione. È soprattutto una scelta di manutenzione. Se il prezzo fosse un attributo della postazione, ritoccare il listino a metà stagione significherebbe modificare centinaia di record e sperare che nessuno resti indietro.
La disponibilità, di conseguenza, è il risultato di un calcolo: una postazione, un intervallo di giorni, l'insieme delle prenotazioni che lo intersecano. Il registro delle prenotazioni conserva i fatti; la disponibilità è un'interrogazione su quei fatti. La distinzione evita la classe di bug più antipatica in questo dominio, cioè il doppio stato che si disallinea e produce due ombrelloni venduti sullo stesso posto.
Anche le statistiche di occupazione ereditano gratis la struttura. Sapere che una certa fila di un certo settore resta vuota nei feriali è un'informazione che può cambiare il listino. Sapere soltanto quanto è piena la spiaggia nel complesso serve molto meno. La granularità utile arriva dalla mappa: se il modello non la contiene, le statistiche non possono inventarla.
Map Studio: l'editor della mappa interattiva della spiaggia
Map Studio è il punto in cui il gestore ricostruisce la propria spiaggia dentro il browser, trascinando gli elementi. Ogni funzione risponde a un problema concreto che emerge disegnando piantine reali.
Sfondo da cattura satellitare
La base della piantina si ottiene da imagery satellitare Esri e Maxar. Il gestore parte dalla propria spiaggia vista dall'alto, con la battigia, i camminamenti e le strutture già al loro posto, invece che da una tela bianca. Disporre gli ombrelloni diventa un lavoro di ricalco su un'immagine reale.
Foto caricata come alternativa
Quando la cattura satellitare è vecchia, nuvolosa o poco leggibile, si può caricare una foto e usare quella come sfondo. Serve più spesso di quanto sembri: le immagini aeree seguono tempi propri, distanti dal calendario dei lavori sul lungomare.
Orientamento del mare
Impostare da che parte sta il mare dà senso al concetto di prima fila e permette di parlare di vista, distanza dall'acqua e ordinamento delle file senza chiedere al gestore di dedurlo da solo.
Aggancio alla griglia
Le postazioni si allineano a una griglia mentre si trascinano. Una spiaggia disegnata a occhio produce file storte e distanze incoerenti, che poi si vedono nella pagina di prenotazione. L'aggancio impone la regolarità senza obbligare alla precisione manuale.
Annulla e ripristina
Ogni modifica alla mappa è reversibile. Chi disegna una piantina prova, sposta, si pente. Senza annulla e ripristina l'unica strategia sicura sarebbe non toccare più niente, e un editor che scoraggia le prove resta un editor che non viene usato.
Salvataggio automatico
Il lavoro viene salvato senza che il gestore debba ricordarsene. Nessun pulsante Salva da cercare, nessun avviso di uscita che chiede conferma. Il costo di questa comodità ricade su chi sviluppa, e va gestito con attenzione.
Composizione drag-and-drop
Postazioni, file e settori si creano e si spostano trascinando. L'obiettivo dichiarato è che chi conosce la propria spiaggia possa riprodurla senza leggere un manuale e senza chiamare assistenza.
I problemi veri di un editor di mappe interattive dentro il browser
Il primo ostacolo è la quantità. Uno stabilimento di medie dimensioni ha molte postazioni, e ognuna è un elemento interattivo che deve rispondere al tocco. Se ogni movimento del puntatore attraversa lo stato applicativo e provoca un aggiornamento dell'intera piantina, il risultato è un trascinamento a scatti sul portatile e un telefono che scalda. La via d'uscita passa dal separare lo stato transitorio del trascinamento da quello applicativo: durante il gesto si muove solo l'elemento coinvolto, la riconciliazione avviene al rilascio.
Il secondo ostacolo è il tocco su mobile. Su una mappa, trascinare un elemento e spostare la vista sono lo stesso gesto fisico, e qualcuno deve decidere chi vince. Senza una disambiguazione esplicita, il gestore che prova a sistemare un ombrellone finisce per far scorrere tutta la spiaggia. Serve disattivare il trascinamento della mappa mentre una postazione è in movimento e restituirlo subito dopo. Va aggiunto che un ombrellone disegnato in scala reale può risultare più piccolo di un polpastrello: l'area sensibile al tocco deve essere più grande del simbolo che si vede.
Il terzo ostacolo è lo stato annullabile. Annulla e ripristina si progettano dall'inizio, prima ancora di scrivere le modifiche. Impongono che ogni cambiamento sia rappresentato come operazione descritta e reversibile, invece che come mutazione diretta dell'oggetto. Chi conserva soltanto l'ultimo stato buono si ritrova a copiare l'intera mappa a ogni pixel di spostamento, con il consumo di memoria che ne consegue.
Il quarto ostacolo è il salvataggio. Scrivere a ogni micro-modifica significa inondare il database; scrivere troppo di rado significa perdere lavoro alla prima disconnessione. Il compromesso è un salvataggio ritardato che scatta quando l'utente si ferma, con lo stato locale come fonte immediata di verità e la persistenza come conseguenza. Resta il caso limite delle due sessioni aperte sulla stessa mappa: qui l'unica risposta onesta è decidere in anticipo chi vince, invece di scoprirlo dopo, quando una piantina è già stata sovrascritta.
Dalla prenotazione ombrelloni online all'ordine al bar in quattro passaggi
Il percorso del cliente è pensato per chiudersi in pochi minuti dal telefono, senza registrazione obbligatoria. È la stessa logica che abbiamo adottato per le prenotazioni di BarbierItalia: chiedere il minimo indispensabile e lasciare che un gesto banale resti un gesto banale, senza trasformarlo in una procedura di iscrizione.
- 01
Scelta della postazione sulla piantina
Il cliente apre la mappa dello stabilimento e sceglie l'ombrellone guardando dove si trova: vicino al mare, all'ombra del camminamento, accanto al bar. La disponibilità si legge sulla mappa stessa, nel punto esatto in cui si trova ogni postazione.
- 02
Selezione dei giorni e prezzo del settore
Indicati i giorni, il prezzo arriva dal listino del settore a cui appartiene la postazione, con la distinzione tra feriale, weekend e alta stagione. Il cliente vede il costo della posizione che ha scelto, calcolato sul settore in cui si trova.
- 03
Codice BCH e biglietto digitale
Alla conferma viene generato un codice nel formato BCH- con un biglietto digitale, un QR code e l'esportazione nel calendario. Nessun account da creare, nessuna password da recuperare l'anno dopo. Il codice è la prenotazione.
- 04
Ordinazione al bar dalla postazione
Con lo stesso codice il cliente ordina al bar dal telefono e riceve all'ombrellone. Il codice identifica la prenotazione, la prenotazione identifica la postazione, la postazione dice al personale dove portare il vassoio. Nessuna informazione aggiuntiva da chiedere.
Ordini in tempo reale con Firestore e l'avviso sonoro per lo staff
Il banco del bar è un piano bagnato dove chi prepara caffè e panini lavora con le mani occupate, senza uno schermo davanti. Un'interfaccia che richiede di controllare ogni tanto se sono arrivati ordini fallisce proprio nel momento in cui conta, cioè quando c'è coda. Per questo gli ordini arrivano su un ascoltatore in tempo reale di Firestore: la lista si aggiorna da sola, senza ricaricare e senza interrogare il server a intervalli.
L'avviso sonoro completa il meccanismo ed è la parte che viene sottovalutata. Senza suono, il tempo reale serve solo a chi sta guardando. Con il suono, il personale può occuparsi d'altro e reagire quando serve. Tecnicamente resta un punto delicato: i browser bloccano la riproduzione audio finché l'utente non ha interagito con la pagina, quindi lo sblocco va agganciato a un gesto esplicito all'apertura del turno. Vanno considerati anche lo schermo che si spegne e il dispositivo che entra in risparmio energetico, altrimenti l'avviso arriva puntualmente in ritardo.
La consegna alla postazione chiude il cerchio aperto dalla mappa. L'ordine porta con sé il codice della prenotazione, che è legato a una postazione con coordinate note sulla piantina. Chi consegna non deve chiedere dove si trova il cliente, e il cliente non deve descrivere la propria posizione. È il vantaggio concreto di aver messo la mappa alla base del modello, invece di averla aggiunta come schermata accessoria.
Le scelte tecniche del software per lidi e il motivo di ciascuna
Ogni voce di questo elenco risponde a un vincolo specifico del prodotto. Le abbiamo scelte per il problema che risolvono.
React 19 con TypeScript
La tipizzazione statica serve soprattutto sulla geometria e sugli stati della prenotazione. Coordinate, orientamento, appartenenza a fila e settore, transizioni di stato: sono esattamente i punti in cui un errore silenzioso si manifesta come ombrelloni fuori posto o postazioni vendute due volte.
Vite con code splitting per rotta
Il cliente che prenota dal telefono in spiaggia non deve scaricare il codice dell'editor della mappa, che serve solo al gestore. Separare i bundle per rotta significa che chi ha una connessione debole carica soltanto ciò che usa.
Leaflet e react-leaflet con tile satellitari Esri
Leaflet gestisce zoom, spostamento e livelli in modo prevedibile e resta leggero. I tile satellitari forniscono lo sfondo reale della spiaggia. Costruire da zero una vista cartografica, per poi riscoprire uno a uno i problemi già risolti da Leaflet, sarebbe stato tempo speso male.
Firebase con Firestore in tempo reale
Autenticazione, database, storage e hosting in un unico ambiente, con la sincronizzazione in tempo reale come comportamento predefinito della piattaforma. Per un prodotto che sviluppiamo e manteniamo per intero, ridurre l'infrastruttura da presidiare è una scelta di sostenibilità.
Generatore di QR code scritto in casa in SVG
Il QR viene prodotto direttamente come SVG, senza librerie esterne. Il vettoriale resta nitido in stampa e sullo schermo, il peso della pagina non cresce e nel percorso critico del biglietto restano soltanto componenti nostri.
Architettura multi-tenant per sottodominio
Ogni stabilimento vive sul proprio sottodominio. Il cliente arriva su un indirizzo che riconosce come quello del suo lido, e l'isolamento dei dati fra gestori diventa una conseguenza dell'architettura, garantita prima di qualsiasi controllo applicativo da ricordarsi ogni volta.
PWA e Framer Motion
La progressive web app permette di installare l'interfaccia sul telefono del personale senza passare da uno store. Le animazioni servono a rendere leggibili i cambi di stato sulla mappa, dove un elemento che si sposta di colpo è difficile da seguire.
Domande frequenti sul gestionale per stabilimenti balneari
No. La piattaforma è in pre-lancio. L'applicativo è sviluppato ma non è aperto al pubblico, e l'apertura dichiarata è per l'estate 2027. Sul sito è attiva una pagina di attesa con countdown. Chi gestisce uno stabilimento e vuole essere fra i primi può segnalarlo, ma oggi non ci sono lidi attivi sulla piattaforma.
Perché in uno stabilimento balneare la posizione è il prodotto. Prima fila e ultima fila hanno valore diverso, e il cliente sceglie il posto prima ancora della data. Se la piantina è il fondamento dei dati, disponibilità, listino per settore, registro delle prenotazioni e statistiche di occupazione ne discendono senza doppioni. Se invece resta un disegno mantenuto a parte, prima o poi smette di corrispondere alla spiaggia reale.
No. La registrazione non è obbligatoria. Alla conferma viene generato un codice nel formato BCH- con biglietto digitale, QR code ed esportazione nel calendario. Lo stesso codice serve poi per ordinare al bar e ricevere alla postazione.
Il pagamento si effettua in spiaggia, allo stabilimento. La piattaforma non gestisce dati di carta e non si interpone nell'incasso. È una scelta consapevole: meno dati sensibili in transito e un flusso che corrisponde alle abitudini di gestori e clienti.
No, tutto funziona nel browser. L'editor della piantina, la prenotazione e la gestione degli ordini sono applicazioni web distribuite come progressive web app: si possono aggiungere alla schermata iniziale del telefono senza passare da uno store. Per il personale questo significa poter usare qualsiasi dispositivo disponibile senza procedure di installazione.