Premessa
Il mio archivio di promemoria di progetto nasce da un bot Telegram: mando un messaggio, anche vocale, e un modello linguistico che gira sul PC di casa lo trasforma in una riga strutturata su un foglio Google. Idea, task, bug, priorità, scadenza. Per catturare un pensiero mentre cammino è perfetto. Il problema è arrivato dopo, quando ho iniziato a usare davvero quell’archivio: catturare è facile, organizzare è un altro mestiere. E il mestiere di organizzare, almeno per me, si fa da seduti, davanti a uno schermo grande.
Il punto di partenza: un archivio, non un’app
La scelta di fondo di questo progetto, fatta il primo giorno, è che i dati non stanno dentro un’applicazione: stanno in un foglio Google, e basta. Il bot Telegram ci scrive sopra, io posso aprirlo e correggerlo a mano, e qualunque strumento capace di leggere un foglio può diventare una finestra su quei dati. Questa decisione, che sembrava solo comoda, si è rivelata quella che ha reso possibile tutto il resto: quando ho voluto un’interfaccia diversa, non ho dovuto migrare nulla. Ho solo aggiunto un lettore in più.
AppSheet fa benissimo una cosa: il telefono
Il primo strumento che ho collegato al foglio è stato AppSheet, la piattaforma no-code di Google. In un pomeriggio, senza scrivere una riga di codice, avevo sul telefono un’app vera: elenco dei promemoria, schede di dettaglio modificabili, calendario delle scadenze, ricerca. Funziona ovunque, anche a PC spento, perché gira nel cloud e legge direttamente il foglio.
Questo è esattamente il caso d’uso in cui il no-code brilla: un’app di consultazione e piccola modifica, da avere in tasca, che non vale il costo di sviluppare e mantenere. Se avessi dovuto scrivere io un client mobile, con lo store, gli aggiornamenti e la sincronizzazione, non l’avrei mai finito. AppSheet è rimasto, e resta il client mobile ufficiale del sistema.
Cosa mancava quando mi sedevo al computer
Il limite si è visto appena ho provato a fare, dal desktop, il lavoro vero: guardare tutti i progetti insieme, decidere cosa spostare avanti, ripulire quello che era chiuso da settimane. Lì AppSheet mi stava stretto per tre motivi.
- Niente kanban con trascinamento. Nel piano che uso la vista kanban non è nemmeno disponibile: il massimo che ottengo è un elenco raggruppato per stato. Per far avanzare un task devo aprirlo, cambiare un menu a tendina, salvare. Tre gesti al posto di uno.
- Interfaccia poco malleabile. Le viste no-code si configurano, non si disegnano. Va benissimo finché quello che vuoi rientra nelle caselle previste, molto meno quando hai in testa un’idea precisa di come dovrebbe apparire il tuo lavoro.
- Pensato per il pollice, non per il mouse. Su uno schermo da 27 pollici un’app mobile è un francobollo in mezzo al vuoto. Filtri, ricerca e panoramica generale chiedono spazio, e lo spazio sul desktop c’è.
La decisione: aggiungere un client, non sostituire il sistema
La tentazione, in questi casi, è la riscrittura: se lo strumento no-code non basta, butto tutto e mi faccio l’applicazione completa, con il suo database, la sua autenticazione, la sua app mobile. Sarebbe stato il modo migliore per trasformare un sistema che funziona in un cantiere aperto per mesi.
Ho fatto la scelta opposta: ho aggiunto un terzo client e non ho toccato niente altro. Una web app desktop, scritta su misura, che legge e scrive lo stesso identico foglio. Il bot Telegram non se ne accorge, AppSheet non se ne accorge, i workflow di automazione sono rimasti esattamente come erano. Se un giorno la web app dovesse smettere di piacermi, la spengo e il sistema continua a funzionare con due client su tre.
Tre strumenti, tre mestieri
Il risultato è una divisione dei compiti che, a posteriori, sembra ovvia. Ogni strumento fa la cosa che sa fare meglio, e nessuno prova a fare tutto.
| Strumento | A cosa serve | Dove gira |
|---|---|---|
| Bot Telegram | catturare al volo un appunto, anche parlando | sul PC di casa, con modello e trascrizione in locale |
| AppSheet | consultare e correggere dal telefono, ovunque | nel cloud, sempre disponibile |
| Web app desktop | organizzare: board, filtri, scadenze, archivio | sul PC di casa, in un container |
Il collante è sempre lo stesso: il foglio Google è l’unica fonte di verità. La web app non ha un suo database, e questa è una funzionalità, non una mancanza. Se avessi introdotto una base dati “vera”, avrei dovuto sincronizzarla con il foglio, e la sincronizzazione a due vie è il posto in cui i dati vanno a morire.
Com’è fatta la web app
È un’applicazione React servita da un piccolo backend Node, impacchettati insieme in un container Docker che parte da solo con il computer. Si apre nel browser all’indirizzo locale e offre quattro viste: la board kanban a tre colonne con il trascinamento vero, le scadenze ordinate per urgenza con gli scaduti in cima, l’archivio dei task chiusi raggruppati per mese, e un riepilogo con i contatori per stato e per progetto. Più una barra di filtri e ricerca che attraversa tutto.
Qualche scelta che vale la pena raccontare, perché sono quelle che fanno la differenza fra un giocattolo e uno strumento che si usa davvero.
Si trascina lo stato, non l’ordine
Trascinare una card da una colonna all’altra cambia il suo stato sul foglio, e nient’altro. Dentro la colonna, invece, l’ordine non si tocca: lo calcola l’app, prima per priorità e poi per scadenza più vicina. Avrei potuto rendere ordinabile anche quello, ma avrebbe richiesto una colonna nuova sul foglio, che il bot e AppSheet avrebbero dovuto imparare a gestire. Un ordine deciso dalle regole, e non dalle mie mani, mi è sembrato onestamente più utile: mi dice cosa viene prima, invece di lasciarmi la libertà di mentire a me stesso.
La card si muove subito, il foglio arriva dopo
Scrivere su un foglio Google richiede qualche centinaio di millisecondi, e un’interfaccia che si blocca a ogni gesto è un’interfaccia che si smette di usare. Quindi la card si sposta immediatamente e la scrittura parte in sottofondo; se fallisce, la card torna indietro da sola e compare un avviso. La board inoltre si aggiorna da sola ogni venti secondi, così i promemoria arrivati da Telegram compaiono senza fare nulla, ma si mette in pausa mentre sto trascinando o mentre ho una scheda aperta: nessuno vuole vedersi sparire il lavoro sotto le mani.
L’archivio si pulisce da solo
I task chiusi da più di due settimane escono dalla board e finiscono in archivio, raggruppati per mese di chiusura. Non ho aggiunto uno stato “archiviato”, che pure sarebbe stato la strada più diretta: lo stato è una lista chiusa condivisa con il bot e con AppSheet, e un valore in più avrebbe voluto dire allineare tre posti diversi. In più, archiviare a mano è uno di quei lavoretti che si smette di fare dopo due settimane. Meglio una regola che lavora al posto mio.
Le scadenze finiscono sul calendario
C’è un pezzo in più che è nato proprio dalla convivenza dei tre client. Ogni promemoria con una scadenza, e ancora aperto, diventa un evento su un calendario Google dedicato. La sincronizzazione è volutamente a una via: il foglio comanda, il calendario mostra. Se sposto un evento dentro Google Calendar, alla prima riconciliazione torna dov’era. È una vetrina, non un editor.
Il vantaggio è che le scadenze mi arrivano sul telefono e sull’orologio senza aprire nulla, cioè proprio dove l’app desktop non può arrivare. E se il calendario non risponde, il promemoria si salva lo stesso: un servizio accessorio non deve mai poter impedire il lavoro principale.
Quello che ho scelto di non fare
Metà del valore di questo progetto sta nelle cose che non ci sono. Niente login, perché l’app ascolta solo sul computer stesso e non è raggiungibile né dalla rete di casa né da internet: chi è davanti alla tastiera sono io. Niente versione mobile, perché quella esiste già e si chiama AppSheet. Niente gestione della concorrenza, perché sono un utente solo e non scrivo da due posti nello stesso istante. Niente riscrittura dei workflow di automazione, che funzionavano e continuano a funzionare.
Ogni “no” è stato un pezzo di lavoro risparmiato e, soprattutto, un pezzo di sistema che non si può rompere.
Cosa mi porto a casa
La domanda non era “no-code o codice su misura”, ma quale strumento per quale mestiere. AppSheet ha vinto sul telefono perché lì il costo di scrivere qualcosa a mano sarebbe stato assurdo. Il codice su misura ha vinto sul desktop perché lì la libertà di interfaccia era esattamente il punto. Il bot Telegram ha vinto sulla cattura perché nessuna app batte un messaggio vocale detto mentre si cammina.
Tenerli insieme è costato una sola disciplina: un archivio condiviso, semplice e leggibile, che nessuno dei tre pretende di possedere. Finché quella regola regge, aggiungere un client nuovo è un pomeriggio di lavoro, non un progetto di migrazione.
Per maggiori informazioni contattami a info@davidemugnaini.it.