WallpaperMachine
The wallpapers you love. A new home on your Mac.
Concerti, sagre, mostre, mercatini e attività per bambini vicino a te: l’agenda degli eventi in Italia, con mappa e filtri.
Translation pending
LifestylePython · TypeScriptGitHub @AndreaAzzarelloOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Eventi Vicini: agenda degli eventi pubblici italiani, gratuita e senza pubblicità. SvelteKit, Firebase, Cloudflare
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗Eventi Vicini è un'agenda gratuita degli eventi pubblici italiani: sagre, mostre, concerti, mercati, attività per bambini. Mostra cosa succede oggi, stasera e nel fine settimana nel tuo comune e intorno a te, in lista o su mappa. È pensata per chi cerca qualcosa da fare senza account, senza pubblicità e senza tracciamento. Gli eventi arrivano dai siti istituzionali dei comuni e dagli open data, ogni evento rimanda alla sua fonte, e il progetto non costa nulla da mantenere (Firebase Spark, Cloudflare Pages gratuito).
In English: Eventi Vicini is a free agenda of public events across Italy (festivals, exhibitions, concerts, markets, kids' activities). It collects events daily from municipal websites and open data that allow reuse (CC-BY/CC0), shows them as a list or on a map, has no ads and no tracking, and always links back to the original source. SvelteKit on Cloudflare Pages, Firebase Firestore, a Python importer on GitHub Actions. Code under MIT; event data stays under each source's license.
Indice: Screenshot · Funzioni · Come funziona · Copertura · Privacy · Sviluppo · Struttura · Limiti noti · Sicurezza · Crediti · Licenza
Dati reali dal sito, Brescia, 30 ottobre 2026.
| Tema chiaro | Tema scuro |
|---|---|
Immagine del dettaglio evento: Comune di Brescia, CC-BY 4.0, licenza dichiarata nelle note legali del sito · fonte.
DESIGN.md).flowchart LR
A["Siti dei comuni<br/>e open data<br/>(CC-BY / CC0)"] --> B["Importer Python<br/>GitHub Actions<br/>ogni giorno"]
B --> C[("Firestore<br/>eventi + bundle<br/>per cella e città")]
C --> D["SvelteKit<br/>Cloudflare Pages<br/>(Worker, lettura REST)"]
D --> E(["Utente<br/>web / PWA"])
N["Nominatim (OSM)<br/>geocoding"] --> B
T["Tile OpenStreetMap"] --> E
tools/importer/) legge ogni giorno le fonti attive con un adapter per CMS (Plone, WordPress e HTML Design Comuni Italia, Open Data Hub Alto Adige; con la chiave TICKETMASTER_API_KEY anche Ticketmaster), normalizza, geocodifica, deduplica e scrive su Firestore solo i documenti cambiati (contentHash).web/) fa SSR su un Worker Cloudflare, legge Firestore via REST (niente Admin SDK) e usa cache a due livelli. Il Firebase SDK nel browser si carica solo per login, preferiti e proposte.Dettagli: architettura · importer · quote e letture Firestore.
Dal registro delle fonti, stato al 29 ottobre 2026: 20 regioni, circa 7.900 comuni censiti (ISTAT / IndicePA), 921 con una fonte attiva (802 Design Comuni HTML, 112 WordPress, 6 Plone, 1 Open Data Hub). Il dry-run di fine ottobre contava circa 4.000 eventi su un orizzonte di 45-60 giorni; i numeri variano con la stagione (a ottobre molti comuni del Sud pubblicano pochi eventi).
| Regione | Comuni | Fonti attive | Regione | Comuni | Fonti attive | |
|---|---|---|---|---|---|---|
| Lombardia | 1.502 | 255 | Liguria | 234 | 16 | |
| Veneto | 560 | 157 | Friuli-V. Giulia | 215 | 12 | |
| Piemonte | 1.180 | 111 | Lazio | 378 | 19 | |
| Emilia-Romagna | 330 | 66 | Sardegna | 377 | 27 | |
| Trentino-Alto Adige | 282 | 86 | Sicilia | 391 | 19 | |
| Toscana | 273 | 54 | Campania | 550 | 13 | |
| Marche | 225 | 25 | Calabria | 404 | 10 | |
| Valle d'Aosta | 74 | 13 | Abruzzo | 305 | 10 | |
| Umbria | 92 | 11 | Puglia | 257 | 9 | |
| Basilicata | 131 | 6 | Molise | 136 | 2 |
Fonti: tools/importer/sources/*.csv (conteggio delle righe attivo) e i report in tools/importer/reports/.
Come si scelgono le fonti. Una fonte diventa attiva solo se: esiste un adapter per il suo CMS; la licenza dei contenuti è CC0 o CC-BY (mai NC, ND, SA, «tutti i diritti riservati» sui contenuti); il robots.txt consente i percorsi usati; un dry-run produce almeno un evento futuro valido con coordinate coerenti. Il resto resta da_verificare o escluso, con il motivo in note. L'importer fa una richiesta al secondo per sito, con User-Agent identificativo, e ogni evento mostra e linka la fonte. Procedura completa in docs/importer.md. Per proporre un comune: CONTRIBUTING.md.
Nessun analytics, nessun pixel, nessun cookie di profilazione, nessun banner. Preferiti, posizione e tema stanno nel localStorage del dispositivo; l'account è facoltativo (età minima 14 anni). La posizione, se la concedi, non finisce nell'URL né nel profilo. Dettagli nella pagina /privacy.
Requisiti: Node.js 24 (.nvmrc), JDK 21 per gli emulatori Firebase, Python 3.12 per l'importer.
cd web; npm install
cd ..\firebase; npm install
cd ..\web
npm run emulators # Auth + Firestore (resta aperto, Ctrl+C per chiudere)
npm run seed # dati di prova, in un altro terminale
npm run dev # sviluppo con hot reload
npm run check; npm run lint; npm test; npm run build # da web/
npm run test:e2e # da web/: emulators:exec + Playwright
npm test # da firebase/: test delle regole
python -m pytest -q tests # da tools/importer/
python run.py --dry-run --regione veneto # importer, senza scrivere
Guide complete: sviluppo, test e deploy · importer · architettura e Firebase · design system.
| Cartella | Contenuto |
|---|---|
web/ | Webapp SvelteKit (adapter-cloudflare), test Vitest e Playwright |
firebase/ | Regole e indici Firestore, test delle regole |
tools/importer/ | Importer Python, adapter, registro fonti (sources/*.csv), report |
.github/workflows/ | CI, import giornaliero, ricontrollo settimanale delle fonti |
docs/ | Documentazione tecnica, brand kit, screenshot |
da_verificare.Elenco completo in docs/importer.md e docs/quote-firestore.md.
Le regole Firestore sono testate (firebase/test/): events in lettura pubblica e scrittura solo admin, proposte validate, users solo del proprietario. Le chiavi web di Firebase sono pubbliche per costruzione; il service account dell'importer è un segreto di GitHub Actions. Per segnalare una vulnerabilità leggi SECURITY.md.
Il codice è rilasciato con licenza MIT © 2026 Andrea Azzarello. I dati degli eventi non sono coperti dalla licenza del codice: restano sotto le licenze delle rispettive fonti (CC-BY, CC0) e vanno citati. Nome, logo e immagini in docs/brand appartengono al progetto e non sono coperti dalla MIT.