Sviluppare Software con l’AI: La Nostra Esperienza con CLISpoofing e il Vibecoding

Come l’intelligenza artificiale sta trasformando il nostro modo di scrivere codice


Nel panorama tecnologico attuale, l’intelligenza artificiale sta ridefinendo radicalmente il modo in cui sviluppiamo software. In Biomine S.r.l. abbiamo abbracciato questa trasformazione adottando un approccio che la community di sviluppatori ha battezzato Vibecoding: una metodologia di sviluppo collaborativo tra programmatore umano e assistente AI.

In questo articolo condividiamo la nostra esperienza diretta con lo sviluppo di CLISpoofing, un’applicazione enterprise realizzata interamente con questo nuovo paradigma.


Prima di parlare dell’esperienza di sviluppo, è fondamentale capire il contesto in cui nasce CLISpoofing.

Lo spoofing del CLI (Calling Line Identification) è una pratica fraudolenta in cui un chiamante maschera il proprio numero telefonico reale, facendo apparire sul display del destinatario un numero diverso, spesso quello di banche, istituzioni o aziende legittime. Questa tecnica viene utilizzata per truffe, phishing telefonico e altre attività illecite che ogni anno causano danni significativi a cittadini e imprese.

Per contrastare questo fenomeno, AGCOM (Autorità per le Garanzie nelle Comunicazioni) ha promosso un’iniziativa che coinvolge tutti i principali operatori telefonici italiani: TIM, Vodafone, WindTre, Fastweb, Iliad, PostePay, e molti altri. L’obiettivo è creare un sistema di verifica in tempo reale che permetta di validare l’autenticità del numero chiamante prima che la chiamata raggiunga il destinatario.

Per realizzare questo obiettivo è stata costruita una rete di interconnessione tra tutti gli operatori coinvolti, basata su API REST standardizzate. Ogni operatore espone endpoint di verifica e interroga gli altri operatori per validare che il numero chiamante appartenga effettivamente alla rete di origine dichiarata.

CLISpoofing è il sistema che Biomine S.r.l. ha sviluppato per gestire questa infrastruttura: un gateway che orchestra le verifiche tra operatori, gestisce la logica di routing, implementa meccanismi di resilienza (circuit breaker, load balancing) e raccoglie metriche dettagliate per il monitoraggio dell’intero ecosistema.


Il termine “Vibecoding” descrive un approccio allo sviluppo software dove il programmatore lavora in simbiosi con un assistente AI, comunicando le proprie intenzioni in linguaggio naturale e collaborando iterativamente per tradurle in codice funzionante.

Non si tratta di delegare completamente la scrittura del codice all’AI, né di usarla come semplice autocompletamento. È piuttosto una conversazione continua dove:

  • Il developer mantiene la visione architetturale e le decisioni strategiche
  • L’AI contribuisce con implementazioni, suggerimenti e pattern
  • Entrambi iterano rapidamente su problemi e soluzioni

Per implementare questa metodologia abbiamo utilizzato:

  • Claude Code CLI: l’interfaccia a riga di comando di Anthropic per interagire con Claude direttamente nel terminale — lo strumento principale del nostro workflow
  • Visual Studio Code con Remote SSH: per lavorare su un server Linux dedicato allo sviluppo

Inizialmente avevamo sperimentato anche Roo Code (un’estensione VSCode), ma abbiamo rapidamente scoperto che lavorare direttamente con Claude Code CLI offriva maggiore controllo e flessibilità. La semplicità della riga di comando, unita alla potenza del modello, si è rivelata la combinazione vincente.

Questa configurazione ci ha permesso di mantenere tutti i progetti su un server Ubuntu 22.04, sfruttando la potenza di Claude direttamente nell’ambiente di sviluppo.


Dal punto di vista tecnico, CLISpoofing è un sistema enterprise complesso che comprende:

  • Backend Node.js per la logica di business, le API REST e l’orchestrazione delle verifiche tra operatori
  • Frontend React con TypeScript per l’interfaccia di gestione e configurazione
  • Sistema RTG (Real-Time Gateway) per la gestione degli endpoint di ogni operatore, con load balancing e circuit breaker
  • InfluxDB per la raccolta di metriche e telemetria ad alta frequenza
  • Dashboard Grafana per il monitoring in tempo reale delle performance e dello stato di salute del sistema

L’applicazione deve gestire migliaia di verifiche al secondo, garantendo tempi di risposta nell’ordine dei millisecondi e alta affidabilità. Ogni operatore ha configurazioni diverse, endpoint multipli per ridondanza, e policy specifiche da rispettare.


La prima sfida è stata definire l’architettura. Qui il Vibecoding ha mostrato subito il suo valore: abbiamo potuto discutere le opzioni architetturali con l’AI, esplorando pro e contro di diverse soluzioni prima di scrivere una singola riga di codice.

L’AI non solo suggeriva pattern, ma li contestualizzava rispetto alle nostre esigenze specifiche, considerando fattori come la scalabilità, la manutenibilità e l’integrazione con sistemi esistenti.

Il cuore del Vibecoding è l’iterazione rapida. Un tipico ciclo di sviluppo funzionava così:

  1. Descrizione dell’obiettivo in linguaggio naturale
  2. Proposta di implementazione da parte dell’AI
  3. Review e feedback sul codice generato
  4. Raffinamento basato sui test e sul comportamento reale
  5. Documentazione automatica del lavoro svolto

Questo approccio si è rivelato particolarmente efficace per:

  • Query Flux per InfluxDB: la sintassi di Flux può essere ostica; l’AI ha accelerato enormemente la scrittura di query complesse per le dashboard
  • Componenti React: dalla struttura base agli hook personalizzati, il codice frontend è stato sviluppato con iterazioni molto veloci
  • API REST: definizione degli endpoint, validazione, gestione errori

Un aspetto sottovalutato del Vibecoding è il supporto al debugging. Quando un comportamento non era quello atteso, potevamo descrivere il problema e ottenere:

  • Ipotesi sulle possibili cause
  • Codice di test per isolare il problema
  • Soluzioni proposte con spiegazione del razionale

Abbiamo anche integrato Playwright per test E2E automatizzati, permettendo all’AI di verificare autonomamente se le modifiche risolvevano i problemi riscontrati.

La User Guide dell’applicazione è stata creata direttamente in Markdown, integrata nel frontend React per una consultazione contestuale. L’AI ha supportato sia la struttura del contenuto che l’implementazione del componente di visualizzazione.


Funzionalità che avrebbero richiesto giorni sono state completate in ore. Non perché l’AI scriva codice più velocemente, ma perché riduce drasticamente il tempo di “context switching” e ricerca.

L’AI funge da “secondo paio di occhi” costante, suggerendo best practice, identificando potenziali problemi, e mantenendo coerenza stilistica nel codebase.

Il codice nasce già documentato. Le conversazioni con l’AI producono naturalmente spiegazioni che diventano commenti, README, e documentazione tecnica.

Per tecnologie meno familiari (come Flux o specifici pattern React), l’AI ha funzionato come mentore on-demand, accelerando l’apprendimento senza sacrificare la comprensione.


Le sessioni di Vibecoding possono consumare molti token. Abbiamo imparato a strutturare le conversazioni in modo efficiente, usando file CLAUDE.md per mantenere il contesto tra sessioni.

Il codice generato dall’AI richiede sempre review. Non tutto ciò che viene proposto è ottimale, e la responsabilità finale resta del developer umano.

Comunicare efficacemente con l’AI è una skill che si sviluppa. I primi giorni sono stati meno produttivi di quelli successivi, man mano che affinávamo il modo di formulare le richieste.


L’esperienza con CLISpoofing ci ha convinto che il Vibecoding non è una moda passeggera, ma un cambiamento di paradigma destinato a restare. Non sostituisce il developer, ma ne amplifica le capacità in modo significativo.

Per chi si avvicina a questo approccio, il nostro consiglio è:

  1. Iniziare gradualmente: non tutto il codice deve essere “vibecoded”
  2. Mantenere il controllo: l’AI è un collaboratore, non un sostituto
  3. Investire nel setup: una buona configurazione dell’ambiente paga dividendi enormi
  4. Documentare il processo: tenere traccia delle sessioni aiuta a migliorare nel tempo

Il futuro dello sviluppo software è collaborativo, e noi siamo entusiasti di essere parte di questa evoluzione.


Biomine S.r.l. è una società specializzata in infrastrutture tecnologiche, con competenze che spaziano dal mining di criptovalute alla consulenza su sistemi AI. Per maggiori informazioni sui nostri servizi, contattaci.