Blog
Build in Public
3 ottobre 20259 min

Perché ho creato un gestore di attività vocale con IA

TAMSIV è nato da una frustrazione comune: liste della spesa su carta appese al frigorifero, un club di immersioni che gestisce tutto su WhatsApp, e quella sensazione costante che le informazioni si perdano tra post-it e gruppi di discussione. Un giorno, mi sono detto: perché non si potrebbe semplicemente parlare per organizzare la propria vita? Sei mesi e oltre 700 commit dopo, TAMSIV è un'app Android completa con IA conversazionale, pipeline vocale in tempo reale e gestione collaborativa. Ecco come è iniziato tutto.

Punti chiave da ricordare:
- Le migliori idee di prodotto nascono da frustrazioni personali ripetute, non da astratte ricerche di mercato.
- React Native con la New Architecture (Fabric) permette a uno sviluppatore web singolo di rilasciare un'app mobile performante senza puro nativo.
- Supabase offre tutto ciò di cui un progetto singolo ha bisogno (autenticazione, DB, storage, Realtime) in un unico servizio.
- Il primo prototipo funzionante (voce a task creato) è il miglior validatore di idee, meglio di qualsiasi business plan.
Porta del frigorifero coperta di liste della spesa scritte a mano e post-it colorati
La realtà della gestione delle attività familiari: pezzi di carta sul frigorifero che si perdono ogni settimana.

Da dove viene l'idea di un gestore di attività vocale?

Tutto è iniziato con una frustrazione comune. Mia moglie ed io gestiamo una famiglia di quattro persone. Le liste della spesa? Su un pezzo di carta appeso al frigorifero. Le faccende domestiche? Nelle nostre teste. E quando dimentichiamo qualcosa — cosa che succede spesso — è la piccola tensione quotidiana. "Non avevi detto che te ne saresti occupato?" Sì, ma l'ho dimenticato. Come ogni volta.

Parallelamente, sono membro di un club di immersioni. E lì, è il caos organizzato: tutto passa per WhatsApp. Le uscite, le iscrizioni, l'attrezzatura, i resoconti. Decine di messaggi al giorno in un gruppo dove l'informazione si perde. Cerchi la data della prossima uscita? Buona fortuna a trovarla tra i meme e le foto di pesci.

Due contesti diversi, lo stesso problema: l'informazione si perde perché gli strumenti che usiamo non sono fatti per questo. La carta non ricorda. WhatsApp non organizza. E le app di gestione delle attività esistenti? Troppo complicate, troppi campi da compilare, troppa frizione.

Perché la voce è la risposta al sovraccarico mentale?

L'intuizione che ha scatenato tutto: pensiamo e comunichiamo a parole, non tramite moduli. Quando dici al tuo coniuge "non dimenticare di comprare il latte domani", è un'istruzione chiara. Ma quando apri un'app di attività, devi:

  1. Aprire l'app
  2. Toccare "+"
  3. Digitare il titolo
  4. Selezionare una data
  5. Scegliere un progetto/tag
  6. Salvare

Sei passaggi per un'azione che richiede 3 secondi a dirsi. Questo è esattamente il problema descritto dal concetto di capture friction nella metodologia GTD (Getting Things Done) di David Allen: più è facile catturare un'idea, più il sistema viene utilizzato.

Mi sono detto: perché non si potrebbe semplicemente dire quello che si vuole fare? "Aggiungi il latte alla lista della spesa." "Ricordami di preparare le bottiglie per sabato." Senza aprire un'app, senza digitare, senza cercare il campo giusto in un modulo.

È così che è nato TAMSIV. Un gestore di attività e memo controllato dalla voce, con un'IA conversazionale che capisce quello che vuoi e agisce di conseguenza.

Quali scelte tecniche per uno sviluppatore singolo che lancia un progetto mobile?

Sviluppatore che configura un nuovo progetto su un laptop con le prime righe di codice
Il primo commit: ottobre 2025. Un monorepo, tre cartelle e una montagna di decisioni da prendere.

Primo commit a ottobre 2025. Ogni scelta tecnica in questa fase è critica — sei solo, non hai margine di errore, e tornare indietro costa caro.

Perché React Native e non puro nativo?

Sono uno sviluppatore web di formazione. Il puro nativo (Kotlin/Swift) mi avrebbe rallentato di diversi mesi per un risultato equivalente. React Native con la New Architecture (Fabric) offre prestazioni all'altezza — il jank e i problemi di bridge che affliggevano le versioni precedenti sono risolti.

La scelta del monorepo con tre cartelle era ovvia:

  • frontend/ — React Native TypeScript per l'app mobile
  • backend/ — Node.js Express con WebSocket per il server IA
  • website/Next.js per la landing page e la dashboard web

Un solo repo, un solo git log, tipi TypeScript condivisi tra frontend e backend. La coerenza è massima.

Perché Supabase piuttosto che Firebase o un backend custom?

Supabase offre tutto ciò di cui un progetto singolo ha bisogno in un unico servizio: PostgreSQL gestito, autenticazione integrata (email, magic links, e più tardi QR code), archiviazione di file e Realtime per la sincronizzazione in tempo reale.

Firebase sarebbe stata l'altra opzione ovvia, ma il modello NoSQL (Firestore) non è adatto a dati relazionali come attività, memo, gruppi ed eventi. PostgreSQL è fatto per questo — e Supabase lo rende accessibile senza gestire un server.

La strutturazione del database sarebbe arrivata più tardi, ma la scelta di Supabase fin dall'inizio ha permesso di iterare velocemente senza preoccuparsi dell'infrastruttura.

Come funziona la pipeline vocale al centro di TAMSIV?

Persona che parla al suo smartphone mentre cammina all'aperto
Il caso d'uso ideale: dire quello che si vuole fare, a mani libere, senza aprire menu né compilare moduli.

Il cuore del progetto è la pipeline vocale. Fin dal primo prototipo, ho cablato la catena completa:

  1. Audio PCM 16kHz — catturato dal microfono del telefono
  2. WebSocket in tempo reale — invio del flusso audio al backend
  3. STT (Speech-to-Text) — trascrizione tramite il motore nativo del dispositivo (con fallback Deepgram)
  4. LLM (Large Language Model) — analisi del testo e decisione dell'azione tramite OpenRouter
  5. Function calling — l'LLM chiama una funzione (create_task, create_memo, ecc.)
  6. TTS (Text-to-Speech) — risposta vocale tramite OpenAI TTS

L'utente parla, il backend trascrive, invia il testo a un LLM che decide cosa fare e restituisce una risposta vocale. Tutto questo in pochi secondi.

I primi test erano magici. Dire "crea un'attività comprare il pane per domani" e vedere l'attività apparire con la data giusta... è il tipo di momento che ti conferma di essere sulla strada giusta. Non c'è bisogno di un business plan di 50 pagine — quando il prototipo funziona e ti dici "voglio usarlo tutti i giorni", l'idea è convalidata.

Quali sono le sfide di uno sviluppatore singolo su un progetto così ambizioso?

Essere uno sviluppatore singolo significa totale libertà nelle scelte tecniche. Nessuna riunione, nessun compromesso, nessun "ne parliamo lunedì". Vedi un problema, lo risolvi. Hai un'idea, la codifichi.

Ma è anche la solitudine di fronte ai bug alle 23:00. Nessuno a rileggere il tuo codice, nessuno a sfidare le tue scelte, nessuno a dirti "sei sulla strada giusta" quando dubiti. È una sensazione che molti fondatori tecnici singoli conoscono.

Il build in public — raccontare l'avventura tramite questo blog e i social — è diventato il mio modo per compensare questa solitudine. Ogni articolo è un checkpoint, una prova che il progetto avanza, un modo per ricevere feedback anche senza un team.

Come siamo passati dal primo commit a oltre 700 commit in 6 mesi?

Il percorso dal primo commit ha seguito una traiettoria che non avrei potuto pianificare:

L'articolo dettagliato sui 650+ commit ripercorre ogni fase in profondità.

Quali lezioni imparare per lanciare un progetto singolo?

  1. Parti dalla tua frustrazione. I migliori prodotti risolvono un problema che il creatore vive quotidianamente. Sarai il tuo primo utente e il tuo miglior tester.
  2. Scegli strumenti che moltiplicano la tua produttività. React Native, Supabase, OpenRouter — ogni scelta deve farti guadagnare settimane, non ore.
  3. Prototipa velocemente, convalida velocemente. Il primo pipeline vocale funzionante mi ha richiesto 3 giorni. Questo prototipo ha convalidato l'idea meglio di qualsiasi studio.
  4. Documenta l'avventura. Il "build in public" non è marketing — è un diario di bordo che ti costringe a prendere le distanze e che crea una comunità attorno al progetto.

Domande frequenti

È necessario saper programmare in nativo per creare un'app mobile con IA?

No. React Native con TypeScript permette a uno sviluppatore web di creare un'app mobile performante. Per l'IA, servizi come OpenRouter e OpenAI forniscono API che non richiedono competenze di machine learning. La cosa più importante è comprendere l'architettura client-server e i WebSockets.

Quanto costa lo sviluppo di un'app come TAMSIV da parte di un singolo sviluppatore?

In costi diretti: Supabase (piano gratuito all'inizio, poi ~25 EUR/mese), OpenRouter (~0.001 EUR/messaggio LLM), OpenAI TTS (~0.015 EUR/1000 caratteri), Runware per le immagini (~0.003 EUR/immagine). Il costo principale è il tempo: 6 mesi part-time, ovvero circa 500-600 ore di lavoro.

Perché un monorepo piuttosto che repository separati?

Per uno sviluppatore singolo, la coerenza è fondamentale. Un unico repository significa un unico storico git, tipi TypeScript condivisi e nessuna sincronizzazione di versioni tra pacchetti. Il monorepo diventa più complesso da gestire a partire da 3-4 sviluppatori, ma per un progetto singolo è l'ideale.

La pipeline vocale funziona offline?

Parzialmente. Lo STT nativo del dispositivo funziona senza internet (riconoscimento vocale locale). Ma l'LLM e il TTS richiedono una connessione al backend. Una modalità offline con accodamento è sulla roadmap — i comandi vocali verrebbero memorizzati localmente ed elaborati alla riconnessione.

WhatsApp non è sufficiente per gestire le attività in gruppo?

No, ed è esattamente il problema che ha ispirato TAMSIV. WhatsApp è uno strumento di comunicazione, non di organizzazione. Le informazioni si perdono nel flusso di messaggi, nulla è strutturato, non ci sono promemoria, scadenze, assegnazioni. È il caos organizzato — e i gruppi collaborativi di TAMSIV risolvono proprio questo problema.