Treninfo
Info su Treni semplici e veloci.

L'app per chi non ha tempo da perdere in stazione. Tieni d'occhio il tuo treno in un baleno. Info rapide, zero stress

Presto disponibile su

Interfaccia Utente

Design system nativo. Zero webview.

Ricerca Stazione
Tabellone Partenze
Dettaglio Treno
Info Sciopero

Italia Progetto tutto italiano

Il progetto nasce nell'estate del 2025, quando ho notato che la famosa app per i treni Orario Treni di Paolo Conte era praticamente inutilizzabile a causa dell'acquisizione da parte di un colosso: Trainline. In sostanza, all'avvio l'app mostrava solo un messaggio che invitava a scaricare Trainline, senza fornire alcuna funzionalità. Essendo senza alcun dubbio l'app migliore in assoluto per consultare orari e stato dei treni, ho deciso di mettermi in gioco e creare una valida alternativa tutta italiana, che rispettasse la privacy degli utenti e offrisse un'esperienza fluida e veloce.

Dall'estate studio le API di Trenitalia, grazie anche alle repo pubbliche su GitHub che cercano in qualche modo di comprenderne il funzionamento. Inizialmente non era chiaro come farle funzionare, ma dopo varie prove e ricerche sono arrivato alla conclusione che il modo migliore per lavorare con quei JSON così complessi fosse farli passare da un mio server che ne risistemasse un po' la struttura e le risposte. Nasce così Treninfo Server, che funziona come un proxy tra l'app e le API ufficiali di Trenitalia e Italo. In pratica riceve le richieste dell’app, interroga le fonti giuste, normalizza i dati in un formato unico e più pulito, filtra campi inutili e applica cache/timeout per ridurre tempi di attesa e instabilità. Il risultato è un’unica interfaccia affidabile e coerente che semplifica lo sviluppo dell’app e migliora l’esperienza utente.

Netlify ospita le funzioni serverless e semplifica il deploy del proxy, mentre la Netlify CLI facilita lo sviluppo locale con endpoint coerenti.

Criticità: fonti frammentate

ViaggiaTreno, LeFrecce e Italo espongono dati con strutture diverse, campi mancanti e formati che cambiano nel tempo. Quando un provider modifica anche solo un nome proprietà, si rompe l’allineamento tra app e sorgenti. Soluzione: normalizzazione server in un unico schema JSON, con adapter separati per ogni fonte e fallback quando alcune informazioni non sono disponibili.

Criticità: codici stazione diversi

LeFrecce e ViaggiaTreno (Trenitalia) usano codici differenti, Italo (NTV) ha la sua codifica, e alcune stazioni cambiano denominazione o hanno abbreviazioni diverse. Questo rende complicata la ricerca e la fusione dei risultati. Soluzione: database locale con varianti e mappature coerenti, più una logica di matching “tollerante” ai nomi reali usati dai viaggiatori.

Criticità: tempi variabili

Le risposte non sono sempre costanti: in alcuni orari i tempi aumentano, oppure una fonte risulta momentaneamente lenta o non disponibile. Questo può creare attese percepite troppo lunghe nella UI. Soluzione: cache intelligente, timeout e retry controllati, con una UI che mostra dati parziali e li aggiorna appena possibile.

Treninfo logo server

Server & Test

Proxy attivo con treni RFI e Italo ora disponibili. Pagina test disponibile solo in locale.