La costante
Costruisco l'infrastruttura che a un progetto manca — poi la isolo e la rendo utilizzabile da altri.
Sono Sergio Turolla, sviluppatore web full stack. Costruisco per il web dal 1998 e oggi il mio focus è il frontend: React, Next.js e TypeScript.
Mi succede sempre la stessa cosa. Nel 2000 mi serviva un modo per portare contenuti dinamici dentro i front-end in Flash, così ho scritto un CMS headless; il componente di upload immagini che ne ho estratto è diventato I-Load, venduto a circa 800 clienti in 46 paesi. Nel 2023 mi serviva un'internazionalizzazione che il sistema di tipi potesse davvero controllare, così l'ho scritta dentro un SaaS in Next.js; estratta da quel codebase, è diventata R-Machine.
CodeCarvings è il posto dove questo lavoro è pubblico. Questo sito è il primo banco di prova reale di R-Machine — che è un altro modo per dire che è ancora sotto lo scalpello.
Il percorso
Le mie prime righe di codice per il web
Siti web e applicazioni multimediali per clienti diretti, mentre finivo il Diploma Universitario in Informatica a Ferrara. Il web era giovane, le tabelle servivano per il layout e ogni pagina era un piccolo atto artigianale.
Quello che mi ha conquistato è stata l'immediatezza: scrivi qualcosa, ricarichi, lo vedi dal vivo. Quel ciclo — fai, guarda, correggi — non mi ha più lasciato. È ancora oggi il mio modo di lavorare.
Seven — e la prima cosa che ho chiamato R-Machine
Cinque anni in un'agenzia di comunicazione interattiva: siti, portali, sistemi di e-commerce e piattaforme di e-learning, per clienti dell'industria, dei media, dell'energia e delle assicurazioni. ASP e ASP.NET su SQL Server, con front-end in Flash.
I front-end Flash dell'agenzia avevano bisogno di contenuti dinamici e sul mercato non c'era niente che li desse: ho progettato di mia iniziativa un CMS headless, esposto tramite endpoint XML. Si chiamava R-Machine. Tieni a mente il nome.
I-Load, la prima libreria WYSIWYG per l'upload e il ritaglio delle immagini sul web
Il problema era sempre lo stesso: un template ha bisogno di immagini di dimensioni esatte, e chi lo riempie non è chi sa produrle. Così ho preso il componente di upload immagini del mio CMS e ne ho fatto un prodotto a sé — un controllo ASP.NET con cui chiunque poteva caricare un'immagine e ritagliarla, ingrandirla, ridimensionarla e ruotarla direttamente dal browser, finché non rientrava nei vincoli.
Venduto in licenza perpetua con sottoscrizione annuale di supporto e aggiornamenti, tramite un e-commerce che avevo costruito e gestivo io, a circa 800 clienti in 46 paesi.
Estrarre, isolare, consegnare a persone che non incontrerai mai. È stata la prima volta che lo schema ha tenuto su quella scala.
RADactive srl
Ho lasciato l'agenzia e fondato una società per sviluppare e vendere I-Load. Per cinque anni ho seguito il prodotto end-to-end: sviluppo, rilasci, documentazione e supporto tecnico diretto a una clientela internazionale — che è il modo più rapido che esista per scoprire come sono fatte davvero le tue API viste da fuori.
Non erano tutti piccoli studi. RADactive srl ha fatturato a NASA — Jet Propulsion Laboratory, a Intel, all'International Committee of the Red Cross, alla United States Tennis Association, Burton Snowboards e a diverse altre aziende ed enti di rilevanza internazionale.
Anche mandare avanti quella società richiedeva un'infrastruttura che non esisteva, così ho costruito Revolve, un CMS headless di mia progettazione. Gestiva l'e-commerce radactive.com, emetteva e rinnovava le licenze, e in seguito ha servito anche siti cliente.
Piczard
I-Load mi aveva insegnato molto sulla manipolazione delle immagini, e gran parte di quel lavoro non aveva motivo di restare chiusa dentro un prodotto commerciale. Piczard è ciò che ne ho estratto e regalato: una libreria .NET gratuita con filtri applicabili programmaticamente e un componente WYSIWYG per il ritaglio, il ridimensionamento e la correzione di tonalità, saturazione e contrasto.
2.712 installazioni sul Visual Studio Marketplace, distribuita insieme a un controllo di upload open source, rilasciato come sorgente personalizzabile in licenza BSD. La mossa di sempre — estrarre e isolare — solo che stavolta non l'ha pagata nessuno.
R-Machine — Uniformity Under Change
Nel 2023 stavo costruendo un SaaS in Next.js e mi serviva un'internazionalizzazione che il sistema di tipi potesse davvero controllare. L'ho scritta dentro il progetto, poi l'ho tirata fuori. Quell'estrazione è R-Machine — lo stesso nome che venticinque anni prima avevo dato a un CMS headless.
È un resource layer TypeScript per React e Next.js, e serve a ridurre il numero di file che devono cambiare quando cambia un'implementazione. Il namespace è il contratto: consumatori, test e mock dipendono da quello, non da dove il valore vive o da com'è fatto. Gestione dello stato, dependency injection e internazionalizzazione stanno dietro un unico primitivo di consumo, perché sono le tre vie da cui l'implementazione trapela in ciò che la usa. I mock sono tipizzati: se una risorsa cambia forma i test smettono di compilare, invece di continuare a passare su presupposti ormai falsi.
Cinque pacchetti pubblicati su npm, monorepo pnpm con Vitest e Changesets, licenza duale AGPL e commerciale, alpha pubblica in sviluppo attivo. Questo sito è il suo primo banco di prova reale: ogni pagina che stai leggendo è una risorsa risolta attraverso di esso.