Soamee ha sviluppato AWARE, l’applicazione rivolta ai cittadini di Zonehaven, una piattaforma di gestione delle evacuazioni poi acquisita da Genasys Inc. (NASDAQ: GNSS), leader globale nella comunicazione critica e nell’allerta di massa. Oggi quella tecnologia fa parte di un sistema che protegge oltre 155 milioni di persone in più di 100 paesi e in tutti i 50 stati degli Stati Uniti.
Il nostro incarico è stato il pezzo che arriva alla persona: quello che trasforma una decisione presa in una centrale operativa in un’istruzione chiara nella tasca di chi sta per dover lasciare casa.
La sfida
Un’app di emergenza non assomiglia a nessun altro prodotto digitale. Infrange quasi tutte le regole di prodotto che diamo per scontate:
- Non ha onboarding. Nessuno la scarica “per provarla”. La apre per la prima volta quando c’è già fumo all’orizzonte, con le mani che tremano e senza pazienza per un tutorial.
- Non ha traffico medio. Resta ferma per settimane e all’improvviso riceve una valanga di aperture simultanee nella stessa area geografica, proprio quando la rete mobile è più congestionata.
- Non ammette ambiguità. Un testo che si può leggere in due modi non è un problema di UX: è una persona che esce quando doveva restare al riparo.
- Non può dipendere dalla rete. In incendi boschivi, alluvioni o terremoti, l’infrastruttura di comunicazione è spesso la prima a cadere.
- Non può chiedere dati. Uno strumento di sicurezza pubblica che impone registrazione, account e consensi perde esattamente le persone che deve raggiungere.
A questo si aggiunge la natura del mittente. Le allerte non le scrive un team di marketing: le emettono vigili del fuoco, protezione civile, forze dell’ordine e gestori delle emergenze, ognuno con il proprio vocabolario, i propri protocolli e la propria normativa. L’app doveva essere il denominatore comune di tutti loro senza tradirne nessuno.
La nostra soluzione
Abbiamo collaborato con Zonehaven allo sviluppo di AWARE con Next.js e React, con un obiettivo molto preciso: rispondere a tre domande in meno di cinque secondi — cosa sta succedendo, se mi riguarda e cosa devo fare adesso.
Mappa delle zone in tempo reale
Il cuore dell’app è una mappa delle zone di evacuazione. Ogni zona è un poligono definito dall’ente competente e ha uno stato che cambia in diretta durante l’incidente:
- Ordine di evacuazione — uscire subito, dal percorso indicato
- Avviso di evacuazione — prepararsi a uscire: documenti, farmaci e animali
- Ripararsi sul posto — restare dentro, sigillare accessi e ventilazione
- Zona sicura — nessuna restrizione attiva
L’utente individua la propria zona tramite geolocalizzazione o cercando un indirizzo, e ne vede lo stato con l’istruzione associata senza dover interpretare nulla. Sulla mappa si sovrappongono i livelli che contano durante un’evacuazione: percorsi consigliati, chiusure stradali, rifugi e centri di accoglienza, e punti di raccolta.
Allerte push geolocalizzate
L’app risolve la posizione dell’utente rispetto ai poligoni attivi e notifica solo quando lo riguarda davvero. Quel filtro è ciò che separa uno strumento utile da una fonte di rumore:
- Allerte per posizione attuale, che seguono l’utente se si sposta durante l’incidente
- Posizioni seguite (casa, lavoro, la scuola dei figli) che ricevono allerte anche quando l’utente è lontano
- Notifiche immediate ogni volta che cambia lo stato di una zona seguita
- Risorse di preparazione: guide e checklist per essere pronti prima che l’emergenza accada
Abbiamo dato priorità alle notifiche push native rispetto a qualsiasi canale live dentro l’app per una ragione semplice: arrivano con l’applicazione chiusa e il telefono in tasca, che è la situazione reale nel 99% dei casi.
Progettata per essere letta sotto stress
Ogni decisione di interfaccia è stata presa ottimizzando per lo scenario peggiore, non per la demo:
- Una sola azione visibile per schermata. L’istruzione principale sempre sopra la piega, senza scroll.
- Il colore non viaggia mai da solo. Ogni stato combina colore, etichetta testuale e icona propria, così funziona con il daltonismo, in pieno sole o in uno screenshot in bianco e nero inoltrato su WhatsApp.
- Contrasto verificato secondo WCAG 2.1 AA, con tipografia grande e aree tattili ampie: quest’app si usa di fretta, con i guanti o con il telefono nella mano sbagliata.
- Linguaggio letterale. “Esci ora dalla Route 1 verso nord” invece di “si raccomanda di valutare l’evacuazione”.
- Gerarchia per criticità, non cronologica: un ordine di evacuazione non finisce mai sotto un avviso di lavori stradali.
Architettura offline-first
Diamo per scontato che la rete cadrà, perché in un’emergenza reale cade:
- Service Worker che pre-caricano mappe base, geometrie delle zone, percorsi e guide di preparazione all’installazione dell’app
- Cache-first per tutti i contenuti statici, con rivalidazione in background appena torna la connessione
- Persistenza locale dell’ultimo stato noto delle zone seguite, sempre visibile anche senza copertura e con marca temporale esplicita, così l’utente sa quanto è recente
- Sincronizzazione automatica al ritorno del segnale, senza che l’utente debba aggiornare nulla
- Payload minimi e asset compressi, pensati per reti congestionate o degradate durante l’incidente
Progettata per il picco, non per la media
Il pattern di carico di un’app di emergenza è un picco brutale e concentrato geograficamente. L’architettura risponde a questo: contenuti statici serviti da CDN con caching sull’edge, risposte API piccole e memorizzabili in cache, distribuzione delle notifiche tramite code di fan-out e degradazione elegante — se qualcosa deve cadere, cade l’accessorio e mai lo stato della zona e l’istruzione di sicurezza.
Il canale digitale di un sistema più grande
AWARE non viveva da sola: era il canale digitale di un sistema di allerta che raggiunge la popolazione anche via SMS, chiamate vocali, sirene, radio e televisione. Parte del nostro lavoro è stata assicurare che il canale digitale parlasse esattamente la stessa lingua degli altri — stessi stati, stessi nomi di zona e stessa istruzione — perché nessuno ricevesse due versioni diverse dello stesso ordine.
Architettura tecnica
Ciclo di vita di un’allerta
Risultati
La piattaforma Zonehaven è stata acquisita da Genasys Inc., a conferma della qualità tecnica e del valore del prodotto. Oggi la tecnologia Genasys, Zonehaven inclusa, protegge oltre 155 milioni di persone in più di 100 paesi e in tutti i 50 stati USA. La piattaforma è stata raccontata da testate come Fox News, NPR, Inc. Magazine e SF Gate.
- 155M+ persone protette a livello globale attraverso la piattaforma
- Copertura in 100+ paesi e in tutti i 50 stati USA
- Disponibilità offline garantita per i dati critici di evacuazione
- Zero attrito di accesso: nessuna registrazione e nessuna barriera proprio quando conta di più
- Un unico linguaggio visivo per gli stati delle zone, riutilizzabile da qualsiasi ente emittente senza adattamenti
- Acquisizione di successo da parte di Genasys Inc.
Decisioni tecniche chiave
- Next.js con SSR: scelto per la combinazione di prestazioni al primo render (critiche per gli accessi di emergenza) e generazione statica per i contenuti di preparazione.
- Offline-first non negoziabile. Preferiamo mostrare l’ultimo stato noto con la sua marca temporale piuttosto che una schermata di errore: in un’emergenza, un’informazione di dieci minuti fa è infinitamente meglio di nessuna.
- Push nativo come canale principale, sopra WebSocket: è l’unico che arriva con l’app chiusa, che è lo stato normale dell’app.
- Geometria sul client quando possibile. Risolvere “sono dentro questa zona?” sul dispositivo riduce la latenza e funziona senza rete.
- CDN con caching sull’edge, imprescindibile per un prodotto che opera in oltre 100 paesi con picchi concentrati geograficamente.
- Semaforo universale degli stati, accessibile e indipendente dalla lingua, verificato secondo WCAG 2.1 AA.
Stack tecnico
- Next.js (framework principale con SSR)
- React (interfaccia utente)
- Service Worker e storage locale (strategia offline-first)
- Push notification (allerte di emergenza)
- Geolocalizzazione e mappe interattive (livelli GIS: poligoni di zona, percorsi, rifugi)
- CDN con edge caching
- Google Analytics (analisi)
Cosa ci ha lasciato questo progetto
Lavorare su tecnologia per le emergenze cambia il modo di progettare prodotto. Le metriche abituali — tempo sullo schermo, sessioni, retention — qui non significano nulla: il miglior risultato possibile è che qualcuno apra l’app, capisca cosa fare in tre secondi e la chiuda. È un prodotto che si misura da quanto in fretta riesce a farti smettere di usarlo.
Ci ha lasciato anche una regola che da allora applichiamo a tutto ciò che costruiamo: progettare per il giorno peggiore, non per la demo. Se funziona con una rete pessima, di fretta, sotto stress e su un telefono vecchio, funzionerà tutto il resto del tempo.
Ti serve un’app che funzioni quando tutto il resto fallisce? Scopri il nostro servizio di sviluppo di app mobili →
Come lavoriamo
Ogni progetto segue il nostro processo artigianale, adattato alle esigenze specifiche di ogni cliente.
Discovery & Requisiti
Immersione nel business, utenti e obiettivi. Workshop di ideazione, ricerca di mercato e definizione dell'ambito MVP.
Design & Architettura
Wireframe, prototipi interattivi e architettura tecnica. Validazione con il cliente prima di scrivere codice.
Sviluppo & Testing
Sprint di 2 settimane con demo. CI/CD, code review e testing continuo. Feedback a ogni iterazione.
Consegna & Evoluzione
Deploy in produzione, monitoraggio e supporto. Metriche post-lancio e roadmap di miglioramenti continui.