Per molto tempo “strumento online” ha significato quasi automaticamente “inviare un file a un server, attendere l’elaborazione e scaricare il risultato”. Questo modello rimane indispensabile in molti casi, ma non è più l’unica architettura possibile.
I browser moderni dispongono di API per i file, Canvas, audio, worker e WebAssembly. Nel frattempo computer e smartphone sono diventati abbastanza potenti da eseguire localmente operazioni che un tempo richiedevano un’applicazione nativa o un server.
Questo non significa che il server scomparirà. Significa che per ogni funzione è ormai legittimo chiedersi: abbiamo davvero bisogno di inviare questi dati?
Dal client leggero all’applicazione nel browser
Il Web storico mostrava soprattutto risultati prodotti lato server. JavaScript ha progressivamente spostato più logica sul client, i Web Worker hanno permesso di eseguire calcoli fuori dal thread principale e WebAssembly ha reso praticabile l’esecuzione di componenti compilati e carichi più intensivi.
Il browser è quindi diventato un vero ambiente di esecuzione, pur restando isolato da un modello di sicurezza rigoroso.
Perché elaborare localmente?
Evitare trasferimenti inutili
Se devi soltanto ridimensionare un’immagine, trasformare testo o convertire un file, il trasferimento può costare più del calcolo stesso.
upload → rete → server → download
può diventare:
lettura locale → elaborazione → risultato
Il guadagno dipende dalla dimensione dei dati e dalla potenza del dispositivo.
Ridurre l’esposizione dei dati
Non caricare un file elimina un’intera fase di circolazione dei dati. Non rende automaticamente perfetta la privacy — script di terze parti e telemetria restano da valutare — ma la trasformazione può rimanere sul dispositivo.
Per un PDF amministrativo, una foto privata o un export CSV interno è una proprietà importante.
Ridurre alcuni costi infrastrutturali
Quando il calcolo avviene sul dispositivo dell’utente, il servizio non deve dimensionare server per ogni piccola conversione. Questo può rendere sostenibile una lunga coda di strumenti gratuiti che sarebbero costosi se ogni file passasse dall’infrastruttura centrale.
Perché i server restano indispensabili
Local First non è una religione tecnica. Un server resta appropriato quando bisogna collaborare tra utenti, sincronizzare più dispositivi, eseguire un calcolo troppo pesante, usare una grande base dati o un modello non distribuibile, pianificare lavori in background, inviare notifiche o gestire autorizzazioni centralizzate.
Un’architettura seria decide quindi dove eseguire il lavoro in base al bisogno.
I limiti del browser
Prestazioni e memoria variano molto tra un computer recente e uno smartphone vecchio. I codec non sono esposti allo stesso modo ovunque e alcune operazioni dipendono dal sistema.
L’elaborazione locale consuma inoltre CPU e batteria: spostare un calcolo dal server al client non elimina il suo costo energetico, cambia soltanto dove viene pagato.
Local First non significa “senza rete”
Un’applicazione Local First può usare il server per funzioni precise. Bethemesh, per esempio, distingue l’elaborazione dei file dalla sincronizzazione opzionale delle ricette. I dati possono restare locali mentre un account serve a ritrovare i pipeline.
Questa separazione è descritta in Cloud Sync: ritrovare i pipeline senza caricare i file.