Steady
Un copilota in tasca per chi ha paura di volare
Incasso mensile: 3179 USD (fonte indicata nella scheda)
Cosa fa
App per iPhone che funziona senza internet e accompagna chi ha paura di volare, con esercizi e una previsione delle turbolenze sulla propria rotta.
Come guadagna
Gratis con acquisti: 5,99 $ a settimana, "Bravery Pass" di 72 ore a 11,99 $, 39,99 $ all'anno o 49,99 $ a vita. 223 abbonati, voto 4,7 su 5. Nata a giugno 2026. Incassi verificati con RevenueCat.
Rendilo tuo
- In italiano, con la voce calma di un vero pilota o di una psicologa.
- Per altre paure precise: dentista, guida in autostrada, esami.
- Pacchetto da regalare a chi deve partire.
Le frasi da scrivere all'AI
1. Base del sito e grafica
Crea un'app web in italiano chiamata "Volo Sereno": un'app per chi ha paura di volare: prima del volo spiega la rotta e le turbolenze previste, in volo funziona offline con respirazione guidata e spiegazioni di rumori e sensazioni. Usa React, Vite, TypeScript e Tailwind CSS.
Pagine da creare:
1. Presentazione
2. Inserisci il tuo volo
3. Prima del volo: cosa aspettarsi e turbolenze previste
4. In volo: pulsante "Sto male" con respirazione
5. "Che rumore è?": spiegazioni dei suoni dell'aereo
Stile: calmo: sfondo azzurro polvere #E0F2FE, blu #1E40AF, carattere "Nunito", movimenti lenti e nessun colore allarmante. Nessuna immagine generica di stock.
Tutto deve funzionare perfettamente da telefono. Tutti i testi in italiano, chiari e senza parole tecniche.
2. Database, account e sicurezza
Collega il progetto a Supabase e attiva la registrazione con email e password.
Crea queste tabelle:
- "voli": utente, partenza, arrivo, data
- "contenuti": rumori e fasi del volo con testo e audio
- "diario": voli fatti e livello di ansia
Regole di sicurezza obbligatorie:
- ognuno vede solo i suoi voli e il suo diario
- contenuti e previsione vengono salvati sul telefono prima del decollo
- gli acquisti si verificano con RevenueCat
Usa esattamente il codice SQL che trovi nei "Dettagli tecnici" di questa scheda: eseguilo nel SQL Editor di Supabase prima di continuare, poi collega le pagine alle tabelle.
3. Previsione prima del decollo, tutto offline
Prima di partire si inserisce il volo: l'app calcola la rotta e scarica una previsione della turbolenza da dati meteo aeronautici pubblici (per esempio NOAA Aviation Weather). Mostra una linea con i tratti più e meno mossi, spiegata con calma.
Il linguaggio conta: mai promettere "non ci sarà turbolenza". Si spiega che la turbolenza è normale e l'aereo è progettato per affrontarla.
In volo non c'è internet: audio di respirazione e spiegazioni sono già scaricati. Non sostituisce un medico o uno psicologo; se l'ansia è forte l'app invita a parlarne con un professionista.
4. Che rumore è? e progressi
Elenco per fase del volo: "Il rumore dopo il decollo sono i carrelli che rientrano". Testi riletti da un pilota, così sono corretti.
Diario dei voli con il livello di ansia prima e dopo. Pass di 72 ore: si compra per un solo viaggio, come fa Steady.
5. Pagamenti con Stripe
Aggiungi un abbonamento a 3,99 € a settimana o 29,99 € all'anno. Gratis l'utente ha: respirazione guidata e 3 spiegazioni. Con il piano Pro sblocca: previsione sulla tua rotta, tutti i rumori e il diario.
A pagamento riuscito il webhook porta l'utente al piano Pro; se l'abbonamento viene disdetto o non rinnovato lo riporta al piano gratuito.
Per la sessione di pagamento e il webhook segui la guida "Pagamenti con Stripe" di Fattibile.
6. Controlli specifici di questo progetto
Oltre ai controlli della guida "Controllo finale", verifica in particolare:
1. Offline: scarica un volo, metti la modalità aereo e controlla che tutto funzioni, audio compresi.
Correggi quello che non va e scrivimi cosa hai cambiato.
Dettagli tecnici
Punti della rotta
La rotta si approssima con punti lungo l'arco più breve tra due aeroporti; per ogni punto si chiede la previsione.
const rad = (g: number) => (g * Math.PI) / 180, gra = (r: number) => (r * 180) / Math.PI;
type P = { lat: number; lon: number };
export function puntiRotta(a: P, b: P, n = 20): P[] {
const [f1, l1, f2, l2] = [rad(a.lat), rad(a.lon), rad(b.lat), rad(b.lon)];
const d = 2 * Math.asin(Math.sqrt(Math.sin((f2 - f1) / 2) ** 2 + Math.cos(f1) * Math.cos(f2) * Math.sin((l2 - l1) / 2) ** 2));
return Array.from({ length: n + 1 }, (_, i) => {
const t = i / n, A = Math.sin((1 - t) * d) / Math.sin(d), B = Math.sin(t * d) / Math.sin(d);
const x = A * Math.cos(f1) * Math.cos(l1) + B * Math.cos(f2) * Math.cos(l2);
const y = A * Math.cos(f1) * Math.sin(l1) + B * Math.cos(f2) * Math.sin(l2);
const z = A * Math.sin(f1) + B * Math.sin(f2);
return { lat: gra(Math.atan2(z, Math.hypot(x, y))), lon: gra(Math.atan2(y, x)) };
});
}
Pezzi comuni a tutti i progetti
Glossario
- Rotta ortodromica
- Il percorso più breve tra due punti sulla Terra: sulle mappe appare come una curva.
