New
Apps 1,600Makers 1,598This week 1,585
Promote your app−30%
Arenile screenshot 1
5views in
the last 30 days

Arenile

Free self-hosted management software for beach resorts and lidos

Built with Claude Code

by coste360 · Unclaimed · added Oct 29, 2026
no ratings0 comments
Arenile

Arenile

Il gestionale balneare gratuito per stabilimenti balneari e lidi, con codice sorgente disponibile. Mappa ombrelloni interattiva, prenotazione ombrelloni online e prenotazioni senza commissioni, listini prezzi, cassa e abbonamenti stagionali: tutto in un unico binario self-hosted.

Docker SQLite | PostgreSQL CI Versione 1.1.0

arenile.app · Documentazione

Perché Arenile · Funzionalità · Accessibilità · Installazione · Widget · Architettura · Sviluppo · Roadmap · FAQ


Video di presentazione di Arenile: la mappa del giorno con gli ombrelloni colorati per stato. Clicca per guardarlo (72 secondi).

Important

Stato del progetto: tutte le milestone della specifica, da M0 (fondamenta) a M6 (edizione desktop) e M8 (cassa avanzata e convenzioni), sono completate e verificate da test automatici (unitari, di integrazione su SQLite e PostgreSQL, di concorrenza, di accessibilità e nel browser). La versione 1.1.0 è disponibile (note di rilascio). La tabella di stato indica cosa è disponibile, con i limiti noti, e cosa è pianificato. Arenile è fornito così com'è, senza garanzie (vedi LICENSE): per un'installazione verificata e con assistenza scrivi a Coste360. Segui il repository (Watch → Releases) per essere avvisato dei nuovi rilasci.

Arenile è un software gratuito per la gestione di stabilimenti balneari, con codice sorgente disponibile, lidi, spiagge attrezzate e piscine all'aperto. Nasce per sostituire quaderno, fogli Excel e gestionali chiusi con uno strumento moderno che il gestore installa sul proprio server in pochi minuti, con i propri dati e senza pagare commissioni a nessuno su ogni prenotazione.

A regime un solo programma comprenderà il pannello del gestore (mappa operativa della spiaggia, prenotazioni, cassa, clienti, abbonamenti, report) e la pagina di prenotazione online di ombrelloni e lettini, incorporabile in qualsiasi sito web con un iframe o con uno script di una riga. Cosa è già disponibile oggi è indicato nella tabella di stato.

È sviluppato da Coste360 SRL, la piattaforma italiana per il monitoraggio delle coste e delle concessioni demaniali marittime.


Gestionale per stabilimenti balneari gratuito e a codice sorgente disponibile

Perché scegliere Arenile come software di gestione dello stabilimento balneare, al posto di un gestionale lido a canone o di un portale che trattiene una percentuale su ogni prenotazione:

Perché In pratica
Gratuito, davvero Gratuito per gli stabilimenti che lo usano per sé: nessun canone, nessuna versione "Pro" a pagamento, nessun limite di postazioni, prenotazioni o utenti. Codice sorgente disponibile con licenza BSL 1.1, che diventa AGPL-3.0 dopo 3 anni.
Zero commissioni sulle prenotazioni A differenza dei portali di prenotazione a commissione, Arenile non trattiene nulla. I pagamenti online passano dal tuo account Stripe: paghi solo le commissioni del circuito di pagamento, nessuna percentuale alla piattaforma.
I dati sono del gestore Clienti, prenotazioni e incassi stanno nel tuo database. Esportazione completa sempre disponibile, backup con un comando.
Installabile in 5 minuti Un binario, un'immagine Docker, un volume. Gira su un VPS da pochi euro al mese, su un mini PC o su un Raspberry Pi.
Nessun servizio esterno obbligatorio Niente Redis, code esterne o object storage. SQLite incluso; PostgreSQL facoltativo. Anche email e pagamenti online sono opzionali.
Configurabile senza codice File, zone, pack, listini, periodi tariffari e policy di cancellazione si esprimono come dati, non come condizioni nel codice. Ogni lido è diverso, il software si adatta.
Il tuo sito, il tuo marchio Il widget di prenotazione si integra nel sito del lido (WordPress, Wix, sito statico) con i tuoi colori e il tuo logo. Il cliente prenota da te, non su un portale di terzi.
Prenotazione online accessibile La pagina di prenotazione punta al livello AA delle WCAG 2.1, come chiede l'European Accessibility Act per le prenotazioni online: si completa con la sola tastiera, funziona con i lettori di schermo (con un elenco delle postazioni in alternativa alla mappa), resta leggibile con i colori del lido, con lo zoom e in quattro lingue. Dettagli.
Aperto ed estendibile API REST documentate in OpenAPI, webhook firmati e punti di estensione Go per nuovi driver di pagamento, fiscali e di notifica.

Funzionalità

Panoramica delle aree funzionali previste dalla specifica. Lo stato di ciascuna è nella tabella di stato.

Editor della mappa con le zone colorate e il generatore di file Pagina Oggi del pannello: arrivi, saldi da incassare e postazioni da assegnare Pagina pubblica di prenotazione da smartphone, scelta della postazione sulla mappa
Editor della mappa Oggi, la giornata in un colpo d'occhio Prenotazione online da smartphone

Mappa ombrelloni interattiva

  • Editor della mappa della spiaggia con griglia e snapping, generatore di file ("8 file da 15 ombrelloni, numerazione A–Z"), rotazione, allineamento, annulla/ripeti.
  • Postazioni di ogni tipo: ombrelloni, gazebo, tende, palme; elementi decorativi (passerelle, docce, bar, torretta).
  • Tre modalità di assegnazione per zona: posto esatto scelto sulla mappa, zona con assegnazione automatica o manuale, quantità per inventari senza posizione (es. lettini sfusi).
  • Vista operativa del giorno con colori per stato (libero, prenotato online, prenotato in cassa, abbonato, abbonato assente, da incassare, presente, bloccato), ricerca per cliente o codice, trascinamento delle prenotazioni da un posto all'altro.
  • Aggiornamento in tempo reale tra cassa, spiaggia e prenotazioni online (Server-Sent Events).
  • Sfondo opzionale: planimetria caricata dal gestore o perimetro della concessione demaniale marittima importato da un ConcessionDataProvider.

Prenotazioni online di ombrelloni e lettini

  • Pagina pubblica di booking ombrelloni e lettini a https://tuo-dominio/b/{slug}, ottimizzata per smartphone (budget < 150 KB di JavaScript, funzionante da 320 px).
  • Flusso in quattro passi: quando, dove (mappa o zone), cosa (pack ed extra), chi e pagamento. Nessun account richiesto al cliente.
  • Mezza giornata (mattina/pomeriggio), giornaliero, multi-giorno, settimana, quindicina, mese, stagione.
  • Blocco temporaneo del posto durante il checkout: nessuna doppia prenotazione tra cassa e online, garantita da vincoli del database.
  • Link magico per il cliente: visualizza la prenotazione, paga il saldo, modifica o cancella secondo la policy, file .ics per il calendario, QR code.
  • Lista d'attesa con notifica quando un posto si libera.

Prezzi e listini

  • Motore dei prezzi come funzione pura: periodi tariffari (bassa, media, alta, Ferragosto), giorni della settimana, festività italiane incluse più patrono locale, fila e categoria di prezzo, canale, durata, anticipo.
  • Listino prezzi ombrelloni a durata fissa per settimana, mese e stagione; offerte come "7 giorni al prezzo di 6".
  • Codici promozionali, convenzioni (hotel, associazioni), sconti automatici.
  • Prezzi IVA inclusa, aliquote impostate dal gestore, arrotondamento configurabile.
  • Simulatore e matrice di listino per verificare i prezzi prima di pubblicarli, controllo dei "buchi" di listino, copia di stagione.

Policy di prenotazione

  • Anticipo minimo e massimo, orario limite per prenotare in giornata.
  • Formule consentite per periodo (es. ad agosto online solo settimane da sabato a sabato).
  • Pagamento totale, acconto o nessun pagamento online; scadenza del saldo.
  • Cancellazione a scaglioni con rimborso o credito, policy meteo, approvazione manuale per gazebo o richieste particolari.
  • Le policy applicate vengono salvate con la prenotazione: rimborsi verificabili anche se le regole cambiano dopo.

Pagamenti

  • Driver manuale: nessun pagamento online, saldo alla cassa.
  • Driver Stripe con il proprio account: Stripe Checkout (robusto anche dentro un iframe) o Payment Element incorporato. Le chiavi sono del gestore e cifrate a riposo.
  • Conferma solo da webhook firmati, deduplica degli eventi, riconciliazione automatica dei pagamenti in sospeso, rimborsi e crediti cliente.
  • Interfaccia PaymentProvider aperta per altri circuiti (es. Satispay) come contributi.

Cassa per lido e modulo fiscale

  • Cassa con apertura (fondo cassa), incassi per metodo, chiusura con conteggio e differenza, report PDF.
  • Incasso rapido dalla mappa, vendita libera senza prenotazione ("lettino extra al volo").
  • Modulo fiscale con interfaccia FiscalDriver: driver none (usi il tuo registratore telematico) ed export dei corrispettivi giornalieri per aliquota e metodo in CSV e PDF per il commercialista. Vedi la nota fiscale.

Gestione abbonamenti stagionali

  • Abbonamenti stagionali con diritto di prelazione sul posto l'anno successivo.
  • Rilascio dei giorni da parte dell'abbonato (anche dal link magico), con rivendita del posto ed eventuale credito.
  • Rinnovi proposti in blocco a fine stagione, con hold sulla stessa postazione e prezzo del nuovo listino.

Multi-stabilimento e utenti

  • Più stabilimenti nella stessa installazione (organizzazioni con più lidi), con isolamento dei dati verificato da test automatici.
  • Ruoli: titolare, responsabile, cassiere, personale di spiaggia, sola lettura.
  • Password Argon2id, TOTP opzionale (obbligatorio per i titolari se richiesto), chiavi API con scope.
  • Lingue: italiano, inglese, tedesco, francese.

Notifiche

  • Email via il tuo server SMTP (nessun provider imposto): conferma, promemoria saldo, promemoria del giorno prima, cancellazione, rimborso, proposta di rinnovo, posto libero dalla lista d'attesa.
  • Template modificabili in Markdown con variabili, in tutte le lingue attive.
  • Interfaccia Notifier per canali aggiuntivi (WhatsApp, SMS) come estensioni.

API e webhook

  • API REST /api/admin/v1 e /api/public/v1 descritte in api/openapi.yaml (OpenAPI 3.1), errori RFC 9457, Idempotency-Key, paginazione a cursore.
  • Webhook in uscita firmati HMAC-SHA256 (Arenile-Signature), con tentativi e log delle consegne.
  • Punti di estensione Go stabili in pkg/ext: provider di pagamento, driver fiscali, notifiche, autenticazione SSO, protezione anti-bot, plugin UI del pannello.

Privacy, sicurezza e offline

  • GDPR: dati minimi, consensi versionati, esportazione JSON dei dati del cliente, anonimizzazione su richiesta e automatica dopo N anni. Vedi la guida privacy.
  • Segreti cifrati con AES-GCM, CSP e frame-ancestors per stabilimento, limitazione delle richieste, log senza email e telefoni in chiaro.
  • PWA offline del pannello: consultazione della mappa del giorno e operazioni a basso rischio (check-in, note, incassi in contanti) anche senza connessione, sincronizzate al ritorno della rete.

Accessibilità

La prenotazione di ombrelloni e lettini online deve funzionare per tutti i clienti del lido. Arenile punta al livello AA delle WCAG 2.1 (norma europea EN 301 549) sulla pagina pubblica, sul widget incorporato nel sito del lido e sull'area "Gestisci la prenotazione" del cliente; i flussi principali del pannello sono verificati con gli stessi criteri.

Cosa è supportato

  • Tastiera: tutta la prenotazione si completa senza mouse (calendario con frecce e Pagina su/giù, mappa con le frecce, gruppi di opzioni, finestre che trattengono il focus); il focus è sempre visibile e si sposta sul titolo di ogni nuovo passo e sull'esito.
  • Lettori di schermo: regioni, titoli e attributo di lingua per ogni lingua; ogni postazione ha un nome completo, con fila e zona ("Postazione A1, fila A, Prima fila: Libero, da 30,00 €"); prezzo, tempo rimasto ed esito del pagamento sono annunciati senza spostare il cursore; gli errori dei moduli sono collegati al campo.
  • Alternativa non visiva alla mappa: il pulsante "Mostra come elenco" offre le postazioni raggruppate per fila, con stato e prezzo scritti per esteso; ogni fila è un solo punto di tabulazione (frecce, Home e Fine al suo interno) e il nome letto di ogni pulsante è il testo visibile.
  • Contrasto: 4,5:1 per il testo e 3:1 per bordi e focus, in tema chiaro e scuro; sul colore principale scelto dal lido il colore del testo è calcolato in automatico.
  • Il colore non è l'unico segnale nel calendario, sulla mappa e nell'elenco: giorni pieni o chiusi barrati, giorni con gli ultimi posti segnati da un punto, postazioni non disponibili con un lucchetto sulla mappa (spiegato nella legenda), stato delle postazioni scritto per esteso nell'elenco.
  • Movimento ridotto: con la preferenza "riduci movimento" del dispositivo animazioni e transizioni diventano istantanee.
  • Zoom e schermi piccoli: nessuno scorrimento orizzontale fino a 320 px (zoom al 200 % e oltre), aree da toccare di almeno 44 px sulla pagina pubblica.
  • Quattro lingue: italiano, inglese, tedesco e francese per pagina pubblica, email e pannello.

Come è verificato: a ogni modifica del codice axe-core controlla ogni passo della prenotazione, la mappa e l'elenco, l'esito, l'area del cliente (anche con le azioni e la finestra di cancellazione aperte) e le pagine principali del pannello, e le violazioni gravi bloccano il rilascio; un test end-to-end completa una prenotazione con la sola tastiera; test dedicati controllano il contrasto dei colori in entrambi i temi, la larghezza di 320 px, la lingua della pagina e la riduzione del movimento.

European Accessibility Act: dal 28 giugno 2025 la direttiva UE 2019/882 (in Italia D.Lgs. 82/2022) chiede che i servizi di prenotazione online per i consumatori siano accessibili e che il fornitore lo dichiari; le microimprese sono esentate. Arenile fornisce lo strumento e un modello di dichiarazione, ma la responsabilità del servizio resta del lido.

Limiti noti: la pagina di pagamento è di Stripe; logo, testi ed email scritti dal lido e il sito che ospita il widget dipendono dal lido; disegnare la mappa nell'editor richiede mouse o touch; non è ancora stato fatto un audit con utenti di tecnologie assistive.

Guida completa e modello di dichiarazione di accessibilità da adattare: docs.arenile.app/gestore/accessibilita (modello).


Stato delle funzionalità

Legenda: Disponibile = rilasciato e utilizzabile · Pianificato = previsto, non ancora iniziato.

La versione attuale, la 1.1.0, è disponibile (note di rilascio). Sono completate tutte le milestone da M0 a M6 e la M8 (cassa avanzata e convenzioni): inventario ed editor della mappa, prezzi e policy, il gestionale operativo del lido (mappa del giorno, planning, clienti, abbonamenti, cassa e corrispettivi), la pagina pubblica con pagamento online tramite Stripe Checkout, la stagione completa (rinnovi, lista d'attesa, crediti, report con esportazioni Excel, importazione CSV, notifiche, modalità prova, rimborsi garantiti, casse multiple) e l'edizione desktop. Si aggiungono la vendita giornaliera con ticket numerati e i biglietti d'ingresso con controllo al varco (ADR 0020) e la stampa ESC/POS su stampanti di rete dall'app desktop (ADR 0021). Limiti noti: il pagamento incorporato con Stripe Elements non c'è (solo Stripe Checkout); la notifica al gestore per la chiusura di cassa con differenza non è disponibile; i pagamenti tardivi sono sempre rimborsati e la penale di modifica prevista dalla policy non viene addebitata; il pagamento online dentro un <iframe> semplice (senza embed.js) non riporta l'esito nel widget; stampanti ESC/POS via USB o Bluetooth e il ponte di stampa per le installazioni su server sono rimandati a dopo la 1.0.

Area Funzionalità Milestone Stato
Progetto Specifica tecnica completa, licenza, governance, template issue/PR M0 Disponibile
Fondamenta Struttura del repository, Makefile, CI, Dockerfile, docker compose M0 Disponibile
Fondamenta Configurazione da variabili d'ambiente, CLI (serve, migrate, admin, seed, backup, restore, version) M0 Disponibile
Fondamenta Migrazioni SQLite e PostgreSQL, autenticazione e ruoli, audit log, outbox eventi, job runner M0 Disponibile
Fondamenta Contratto OpenAPI iniziale, SPA pannello e booking di base incorporate nel binario M0 Disponibile
Agenti AI AGENTS.md, CLAUDE.md, .claude/ (regole, skill, subagent), devcontainer M0 Disponibile
Prezzi Motore prezzi come libreria pura (regole, condizioni, azioni, IVA, arrotondamento) M0/M2 Disponibile
Policy Mot

Description taken from the repository README.

Ratings

–
0 ratings
5 0
4 0
3 0
2 0
1 0

Rate this app

Sign in to rate

Comments 0

Sign in to comment

No comments yet.

Related apps

#beach · #booking · #management