Alberta Scardapane, SEO Specialist e sviluppatrice full-stack
Ti do il benvenuto in AlbertaOS, il mio portfolio. Lavoro da Lanciano, in Abruzzo: da remoto su tutta Italia, in sede o ibrido tra Abruzzo, Marche e Molise. Faccio due cose: sviluppo software gestionali su misura per le aziende, e siti web che si devono far trovare su Google.
Cosa c'è qui dentro
Quattro progetti in produzione, e ognuno ha la sua app in questo portfolio.
Le app si aprono dalle loro icone, e in ognuna c'è qualcosa da provare: prenoti un ombrellone, fai avanzare una richiesta di iscrizione, scansioni un codice QR.
Una precisazione onesta
Le app di questo portfolio sono rivisitazioni, sviluppate qui in poche righe di codice, per far capire in dieci secondi di cosa si occupa ogni software. Nell'app Foto è invece disponibile una raccolta di screenshot reali dei miei progetti.
Il portfolio è scritto in HTML, CSS e JavaScript, senza framework e senza librerie.
Gestionale per stabilimenti balneari. Prima i due lidi che lo usano lavoravano con carta e penna, e un registro cartaceo si porta dietro sempre gli stessi problemi: la stessa postazione venduta due volte, la promessa al telefono che nessuno ricorda, l'incasso che a fine giornata non torna. Oggi quella postazione compare su una mappa che tutti vedono aggiornata nello stesso momento.
L'intero ecosistema è mio, sviluppato da ottobre 2024 e lanciato a maggio 2026: sei componenti che comunicano tra loro, compreso il CRM con cui seguo le installazioni e il sito del prodotto, lidomatic.it.
rivisitazione · clicca gli ombrelloni per prenotare o liberare
Le prenotazioni entrano da due strade e convergono sulla stessa mappa. La prima è la cassa, sul gestionale desktop per Windows e macOS, dove l'operatore assegna la postazione al cliente che si presenta o che telefona. La seconda è il sito del lido: con il plugin WordPress e WooCommerce che ho sviluppato, il cliente prenota da casa e la postazione risulta occupata in cassa senza alcun passaggio manuale.
In spiaggia lo staff ha un tablet con il viewer, pensato per la consultazione: chi gira tra gli ombrelloni vede la mappa aggiornata senza tornare in cassa, in rete locale o anche da fuori attraverso un tunnel cifrato.
Quando qualcosa si rompe
Se salta la linea il lido continua a lavorare, perché il database risiede sul computer della cassa e non su un server remoto. Se invece il problema è il software, lo vedo io: dal CRM che ho sviluppato controllo le licenze e lo stato di ogni installazione, compresa la diagnostica da remoto. Di solito me ne accorgo prima che mi chiamino. Gli aggiornamenti si installano da soli, e non tutti ricevono gli stessi: i canali di rilascio sono più di uno, in base alla formula scelta dal cliente.
Cosa c'è nel gestionale
Listini giornalieri, settimanali, mensili e stagionali, differenziati per tipo di postazione: ombrellone, palma e gazebo hanno prezzi e regole diverse. Prenotazioni singole e di gruppo, cabine, ticket e voucher, pagamenti e saldi. Più utenti con ruoli e PIN, perché in cassa non c'è sempre la stessa persona. Statistiche con mappa di calore delle postazioni più richieste, export in PDF, stampa della mappa, guida utente dentro l'app e documenti legali già inclusi.
Lidomatic è in continua evoluzione e per la stagione 2027 usciranno nuove importanti funzionalità.
CRM FAMA in produzione · v96
CRM per un polo di orientamento universitario. Prima i dati di una stessa persona vivevano in sistemi diversi che non si parlavano, quindi nessuno aveva il quadro completo di una pratica. Il CRM li tiene in un posto solo, dal modulo compilato sul sito fino all'immatricolazione confermata dall'ente, e tiene insieme più enti formativi con cataloghi e regole diverse.
rivisitazione · clicca una scheda per farla avanzare nella pipeline
Da sette strade: il modulo di contatto del sito, il calcolatore delle rate, i test di orientamento, l'inserimento a mano, un bot Telegram, una conversazione social trasformata in richiesta, e le automazioni. Tutte e sette passano dallo stesso controllo duplicati, perché il doppione si crea sempre all'ingresso e correggerlo dopo costa dieci volte tanto.
Il controllo distingue due livelli. Codice fiscale, email e telefono dicono che è la stessa persona. Il nome invece avvisa e non blocca: gli omonimi esistono, e la stessa persona che si informa due volte a mesi di distanza su corsi diversi non è un errore da correggere.
Riconoscere che due cose sono la stessa cosa
Il pezzo più difficile di questo progetto non è il CRM, è capire quando due record sono la stessa cosa. La stessa persona arriva dal sito con un indirizzo email e dal portale dell'ente con un altro. Lo stesso corso cambia codice ogni anno accademico. La stessa pratica ha identificativi diversi a seconda di dove la si guarda. Buona parte delle release di questi mesi è esattamente quel lavoro: un caso reale alla volta, decidere quando due cose vanno unite e quando invece è giusto che restino separate.
L'estensione per il browser
Gli enti che erogano i corsi hanno ciascuno il proprio portale, e nessuno di questi offre un modo automatico per sapere com'è andata una pratica: l'unico modo è aprire la scheda e guardarla. Ho sviluppato un'estensione per Chrome che raccoglie quel dato mentre si visualizza la scheda nel portale, così che i dati arrivino nel CRM senza che nessuno li debba inserire manualmente.
La sincronizzazione automatica è volutamente limitata: aggiorna solo quello che esiste già e non crea mai niente. Aprire una scheda per curiosità non deve produrre record nuovi.
Quando una pratica si ferma
Il sistema se ne accorge da solo e avvisa chi la segue, poi allarga l'avviso a chi ha la responsabilità. Le soglie si configurano dal pannello, tranne quella dell'ultimo gradino: chi lavora una pratica non deve poter allungare da solo il tempo prima che se ne accorga qualcun altro. Il cronometro non riparte dalla creazione, ma dall'ultimo segno di vita registrato nel sistema.
Come lavoro su questo progetto
Ogni intervento nasce da un caso reale segnalato dal cliente. Prima di scriverlo lo misuro sui dati veri, e lo rilascio solo se non peggiora quello che già funziona.
Il primo esempio riguarda il misurare. Ogni anno gli enti ripubblicano gli stessi corsi con un codice nuovo, quindi il sistema deve capire da solo che il corso appena caricato è la nuova edizione di uno che c'è già. Ho scritto la funzione che li accoppia, confrontando nome, ente e tipo di corso, e prima di collegarla a qualcosa l'ho fatta girare sul catalogo vero: su sette coppie proposte, quattro erano sbagliate. Il sistema accoppiava corsi che si somigliavano nel nome ma era una regola fin troppo fragile. Ho quindi aggiunto tre controlli e alla prova successiva le coppie proposte erano tutte giuste.
Il secondo riguarda il non peggiorare. Un'altra segnalazione mi aveva portato a una regola sbagliata, e per correggerla bastava una riga. Quella riga però avrebbe creato un problema più grande di quello che risolveva: il sistema avrebbe perso il collegamento con le pratiche già archiviate e le avrebbe registrate una seconda volta. Ho corretto la regola solo dopo aver aggiunto la protezione che mantiene quel collegamento.
Cosa c'è sotto
Cinque ruoli e ventidue permessi che si accendono uno per uno, con l'override sul singolo utente che vince sempre sul ruolo. Un motore di automazioni configurabile dal pannello, ventitré eventi, con la prova a vuoto che mostra destinatari e testo senza mandare niente. Le automazioni che devono scattare una volta sola sono protette da un blocco atomico, non da un controllo che può arrivare tardi. Posta e documenti passano da Microsoft Graph, la chat da Messenger e Instagram Direct. Il calcolo delle provvigioni segue le regole configurate dal cliente, con una guardia che impedisce il doppio pagamento.
In produzione, con oltre 90 release documentate da aprile 2026. Non è consegnato e chiuso: è in manutenzione e sviluppo continui.
Inventario per un'azienda di abbigliamento. Polidoro Group non voleva più sbagliare le giacenze, e voleva vedere a colpo d'occhio cosa era disponibile e cosa andava riordinato. Da qui la richiesta: un sistema veloce, sempre a disposizione in magazzino e semplice da usare, che tenesse traccia delle operazioni. Il tracciamento c'era fin dalla prima richiesta, ed è il dettaglio che dice qual era il problema vero: serviva sapere chi aveva mosso cosa, e quando.
Ho tenuto solo quello che serviva e ho lasciato fuori tutto il resto. Niente prezzi e niente foto degli articoli, perché è un magazzino di giacenze e non di vendita. Niente cloud, perché il magazzino è un capannone con una rete locale. Nessun hardware da comprare: gli operatori usano i telefoni che hanno già in tasca, e la stampante laser c'era già. Ogni cosa lasciata fuori è una cosa in meno da configurare e da spiegare a chi lavora in magazzino.
rivisitazione · scansiona l'etichetta per movimentare la giacenza
Quando arriva la merce l'articolo si crea da desktop: marchio, codice originale, modello, colore, taglia, giacenza iniziale, soglia minima e posizione a scaffale. Il codice interno invece non si scrive, lo genera il sistema mettendo insieme codice originale, colore e taglia, e viene fuori CD0881-GIBL-3XL. Un magazziniere che digita a mano una stringa così prima o poi sbaglia, quindi non deve digitarla nessuno.
Le etichette si accumulano in una coda di stampa che vive nel database, non nella sessione del browser: chiudendo l'app la coda resta, e non si svuota da sola dopo il download, così se un foglio esce storto si ristampa senza rifare il lavoro. Il PDF viene generato con 24 etichette per foglio A4, da 70 per 37 millimetri. Ogni etichetta ha il suo QR, quattro righe di testo e una banda colorata che replica il colore del capo, per riconoscerlo senza leggere.
Il QR non contiene il codice interno, ma un indirizzo con un identificativo stabile dell'articolo. Se domani quel codice cambia, le etichette già stampate e attaccate continuano a funzionare.
Poi l'operatore apre la fotocamera del telefono, inquadra il QR, tocca il banner che compare e si ritrova sulla scheda dell'articolo: più uno, meno uno, oppure una quantità con una nota. Cinque o sei secondi in tutto.
Lo scanner che ho tolto
Uno scanner QR dentro l'app l'avevo sviluppato, e poi l'ho rimosso. Per usare la fotocamera dentro il browser serve HTTPS, e su una rete locale questo significa certificati da installare a mano sul telefono di ogni operatore, oppure un dominio dedicato, oppure mettere le mani nel DNS del cliente. Ho valutato tutte e tre le strade e le ho scartate: troppo lavoro di partenza per una funzione che per giunta era più lenta, dieci o quindici secondi contro cinque. La fotocamera del telefono non ha niente da configurare. Il codice dello scanner e i suoi test li ho cancellati, non lasciati lì spenti.
Quando due operatori toccano lo stesso articolo
Ogni movimento è un delta, mai un valore assoluto: nessuno scrive che adesso ce ne sono nove, si scrive meno uno. Due operatori che scaricano un pezzo a testa producono due movimenti distinti, tutti e due nel registro, con chi, quando, da quale dispositivo, e la giacenza risultante fotografata in quel momento. Ogni movimento è anche una transazione sola: o si aggiornano insieme la giacenza e il registro, o non si muove niente. La giacenza non può scendere sotto zero, e uno scarico più grande della giacenza viene rifiutato con un messaggio in italiano invece che con un numero negativo.
Il database è in modalità WAL, quindi chi legge non blocca chi scrive: mentre un operatore registra un movimento, la dashboard del titolare e gli altri telefoni continuano a leggere. L'evento in tempo reale parte dopo che la scrittura è confermata, così nessun dispositivo vede comparire un movimento che poi non esiste.
Dove gira e chi lo usa
Due ruoli. Il titolare lavora dal PC dell'ufficio, che è anche il server: apre l'app con un doppio click e vede una finestra senza barra degli indirizzi, quindi non incontra mai un indirizzo tecnico. Da lì fa tutto, articoli, colori, stampa delle etichette, utenti, dashboard. Gli operatori entrano solo dal telefono con nome utente e PIN numerico, sessione da trenta giorni, e possono fare una cosa sola: aprire la scheda di un articolo e cambiarne la giacenza.
Tutto resta sulla rete aziendale: niente esposizione su internet, niente VPN, niente cloud. Il sistema risponde quando il PC dell'ufficio è acceso, cioè negli orari in cui in azienda si lavora, ed è una scelta dichiarata al cliente prima di partire, non un limite scoperto dopo. L'installazione su quel PC richiede tre o quattro minuti da una chiavetta, con uno script ripetibile, e ogni sera alle 19:00 parte un backup automatico che tiene trenta giorni di copie.
Primo commit il 29 aprile 2026, in produzione l'8 giugno. Da allora non è rimasto fermo: è arrivata la correzione in blocco di un codice originale sbagliato, con la rigenerazione a cascata dei codici interni, e le ottimizzazioni sugli aggiornamenti in tempo reale.
502test automatici
<1ssync tra dispositivi
24etichette per foglio A4
python 3.11fastapihtmxsqlitereportlabpwa
Marketing Hub strumento mio · in uso ogni giorno
A un certo punto il lavoro SEO su più clienti non ci sta più in un foglio di calcolo. La strada normale, arrivati lì, è pagare l'abbonamento a una piattaforma che decide lei come devi lavorare. Ho preferito capire cosa mi serviva davvero e svilupparlo.
Marketing Hub è l'archivio operativo del mio lavoro: per ogni cliente, nello stesso posto, il piano editoriale, l'inventario delle pagine del sito, le keyword monitorate, i competitor e i dati veri letti da Search Console e GA4. Non è un prodotto e non è in vendita. Gira sul mio computer, non ha login e non ha utenti, perché l'utente sono io.
Cosa possono toccare gli agenti
Questo archivio non lo riempio soltanto io: gli agenti con cui lavoro ci scrivono dentro. Salvano un articolo, aggiornano le keyword, registrano un'analisi. La parte difficile non è stata farli scrivere, è stato decidere cosa non gli è permesso toccare. Prova a chiedere.
in attesaScegli una richiesta qui sopra.
Cosa si riempie da solo e cosa scrivo io
Si riempiono da soli i numeri: sessioni e pagine viste da GA4, impression, click e posizione da Search Console, e i titoli e le descrizioni reali delle pagine, letti direttamente dal sito. Scrivo io tutto il resto, cioè tutto quello che richiede un giudizio: perché un articolo va scritto, a chi parla, a che punto è, cosa ho imparato quando è andato storto.
Anche la cronologia di ogni articolo è scritta a mano, evento per evento: centotrentacinque voci, una alla volta. Nessuna app sa registrare da sola il motivo per cui una cosa è successa.
Come è fatto
Flask e SQLite dietro, davanti un'interfaccia a pagina singola in JavaScript senza framework e senza compilazione: si modifica un file e si ricarica. Il database è in modalità WAL, e non è un dettaglio tecnico buttato lì: serve perché un agente possa leggerlo mentre l'app è aperta, senza che nessuno dei due debba aspettare l'altro. È la prima riga dello schema, quindi la convivenza con gli agenti è una decisione presa all'inizio e non un ripensamento.
Da un cliente a tutti i clienti
All'inizio l'avevo pensata per seguire un cliente solo. Quando ho iniziato a seguirne altri l'ho generalizzata: il dominio e i segnali di marca non vivono più dentro la logica di analisi, si passano dall'esterno cliente per cliente. È il lavoro che si vede meno e serve di più, perché è quello che separa uno strumento che funziona una volta da uno che si riusa.
19.700righe di codice
61indirizzi interni
20schermate
pythonflasksqlite (wal)javascript senza frameworksearch console apiga4 api
Foto
In questa galleria ci sono le schermate dei software e dei siti web che ho sviluppato e a cui ho contribuito.
clicca una miniatura per visualizzare l'immagine con la scheda tecnica di riferimento
Changelog · carriera
La mia storia nel formato che conosco meglio: release notes.
v2026.7non ancora rilasciata
PLANNED · il prossimo rilascio: un ruolo in azienda o un incarico, tra SEO, sviluppo e formazione. Conta il progetto a cui portare tutto questo, non la forma del contratto.
v2026.6
CRM FAMA: rilasci continui, oltre 90 versioni documentate da aprile
Questo portfolio, senza framework né librerie
v2026.5
Lidomatic lanciato e venduto ai primi clienti: 2 stabilimenti in produzione
Nasce Lidomatic: studio e sviluppo dell'intero ecosistema, dall'app alla prenotazione online, dal CRM delle licenze all'assistenza
v2025.02022-2025 · le fondamenta
Laurea in Informatica per le Aziende Digitali (L-31) all'Università Telematica Pegaso, 107/110: tesi sulla comunicazione della responsabilità sociale d'impresa sul web, caso aziendale De Cecco
4 certificazioni MIUR con UniD Formazione: SEO Manager/Specialist, SEO Copywriter, Inbound Marketing, AI per il Digital Marketing
Formazione insegno · ragazzi e adulti
Insegno cinque materie, e sono le stesse cose su cui lavoro ogni giorno. Non le lego a un'età: un ciclo for si spiega a un bambino di sei anni come a un adulto che si sta riqualificando, e quello che cambia è il modo, non la materia. Se poi non riesco a spiegarlo al bambino, vuol dire che non l'ho capito fino in fondo nemmeno io.
ProgrammazioneDai primi blocchi al codice vero, per ragazzi e per adulti
Sviluppo webHTML, CSS, JavaScript, e come si manda online un sito
SEORicerca, contenuti, dati strutturati e misurazione
AIUsarla nel proprio lavoro senza affidarle le decisioni
InformaticaLe basi, per chi parte da zero, a qualsiasi età
SEO e AI, non solo codice
Sono le due materie su cui ho il lavoro più fresco alle spalle. La SEO la faccio ogni giorno su un sito vero, e un anno intero di quel lavoro è qui dentro, misurato e consultabile: il caso di polodidatticofama.it. Insegnarla vuol dire soprattutto insegnare la parte che di solito si salta: come si misura, come si verifica una fonte prima di pubblicarla, come si capisce se un numero dice davvero quello che sembra dire.
Sull'AI insegno quello che faccio: le si dà il lavoro, non la decisione. Ho sviluppato Marketing Hub proprio per tenere quel confine scritto in chiaro invece che a memoria. Chi usa l'AI senza conoscere la materia non si accorge di quando sbaglia, e riconoscerlo è esattamente la parte che va insegnata.
A chi, e in che formato
Ragazzi e adulti, uno a uno o in aula. Sono due mestieri diversi. Uno a uno si va al ritmo di chi si ha davanti, si torna indietro tutte le volte che serve e la lezione si riscrive mentre la si fa. In aula serve una scaletta che regga anche quando metà del gruppo è avanti e l'altra metà è rimasta indietro, ed è lì che servono gli strumenti: i quiz e i timer a tema che mi sono sviluppata per le lezioni.
Dove l'ho già fatto
Da settembre 2025 a settembre 2026 sono stata docente di programmazione per Coding Giants: classi di bambini e ragazzi dai 6 ai 18 anni, ogni settimana, per un anno. Fuori da lì seguo adulti uno a uno sullo sviluppo web. Sono i due estremi della stessa cosa, ed è il motivo per cui non tengo separato il pubblico giovane da quello adulto.
5materie che insegno
1 annodi docenza in aula
1:1 e aulai due formati
Chi sono, e come lavoro
AlbertaOSversione 26.6
Sviluppo siti web e software che seguo durante tutto il percorso: parlo con chi userà il programma, scrivo il codice, lo mando in produzione e poi continuo a seguirlo, perché un gestionale che le persone usano ogni giorno non è mai finito.
RuoloSEO Specialist e sviluppatrice full-stack
SedeLanciano (CH), in Abruzzo, e da remoto
FormazioneLaurea in Informatica per le Aziende Digitali, 107/110
CertificazioniQuattro MIUR nel 2025, tra SEO, inbound marketing e AI
In produzioneQuattro progetti: uno mio, tre per clienti
LinguaggiPHP, TypeScript e Python, uno per ogni gestionale che ho in produzione
DocenzaProgrammazione, sviluppo web, SEO, AI e informatica di base, per ragazzi e adulti
Processi in background
graficavideogiochiIl Trono di SpadeIl Signore degli Anelli
Non ho sempre scritto codice. Mi sono diplomata in economia aziendale all'istituto P. De Giorgio, un indirizzo che non ho mai sentito mio: la mia passione era l'informatica. Per anni ho lavorato in tutt'altro settore, e la mia passione intanto non è andata da nessuna parte: aspettava solo che le facessi spazio.
Da mamma di due bambini e con la spinta di mio marito, ho ripreso a studiare. Studiavo la mattina, mentre i bambini erano a scuola. Diciotto esami, e il piano di studi diceva già che lavoro avrei fatto: programmazione, algoritmi e strutture dati, basi di dati, reti e cybersecurity, architettura dei calcolatori, ingegneria del software, tecnologie web, cloud computing. Accanto, comunicazione digitale, marketing e diritto per le aziende digitali. Sviluppo e marketing dentro lo stesso corso di laurea, che è poi la coppia su cui lavoro adesso.
Laurea in Informatica per le Aziende Digitali, 107/110, con una tesi dal titolo "Comunicare la responsabilità sociale attraverso il web: il caso aziendale De Cecco come modello applicativo". Nello stesso anno quattro certificazioni MIUR con UniD Formazione: SEO Manager e Specialist, SEO Copywriter, Inbound Marketing, AI per il Digital Marketing. Sono le stesse competenze che applico ogni giorno nel mio lavoro, due delle quali, SEO e AI, fanno parte anche delle cinque materie che insegno.
Lidomatic in produzione in due stabilimenti balneari, il sito e il CRM di un polo di orientamento universitario, un software di magazzino per Polidoro Group. E insegno programmazione, sviluppo web, SEO e uso dell'AI, a ragazzi e adulti.
Ogni paragrafo di questa sezione nasce da quel che ho appreso in ogni progetto che trovi in questo portfolio.
Parto dal problema, non dalla lista delle funzioni
Una richiesta descrive quasi sempre una soluzione. Il problema vero è più sotto, e all'inizio il mio lavoro è ascoltare finché non salta fuori parlando con chi commissiona il programma, ma anche con chi lo userà. Per il gestionale di magazzino mi era stato chiesto un sistema veloce, semplice e sempre a disposizione, ma nell'elenco c'era anche la traccia delle operazioni: era quello il punto, perché voleva dire che nessuno sapeva chi avesse mosso cosa e quando.
Quello che lascio fuori
Da quel magazzino sono rimasti fuori i prezzi e le foto degli articoli, il cloud e qualunque hardware da comprare: è un magazzino di giacenze dentro un capannone con una rete locale, e ogni cosa lasciata fuori è una cosa in meno da configurare e da spiegare a chi ci lavora. Uno scanner QR dentro l'app l'avevo perfino sviluppato. Poi l'ho tolto, perché avrebbe richiesto un certificato da installare sul telefono di ogni operatore ed era più lento della fotocamera che tutti hanno già in tasca. Non tutto quello che si può aggiungere a un software va aggiunto. A volte progettare bene significa anche capire cosa non serve e avere il coraggio di eliminarlo.
Rilasci piccoli, e niente che peggiori quello che funziona
Il CRM ha superato le novanta release documentate da aprile 2026. Sono tante perché scelgo di lavorare per piccoli rilasci: mantenere circoscritto il cambiamento rende più semplice verificarne gli effetti e riduce il rischio di introdurre regressioni in un software già in produzione.
E questo è un principio che seguo sempre: una modifica non deve compromettere ciò che già funziona.
Una volta, per esempio, una correzione di una sola riga risolveva il problema segnalato, ma introduceva una regressione più grave: il sistema avrebbe perso il collegamento con le pratiche già archiviate. È proprio per intercettare casi come questo che affianco allo sviluppo una suite di test automatici: 1.595 test su Lidomatic, 564 sul CRM e 502 sul gestionale di magazzino.
Controllo i dati prima di pubblicarli
Il 3 agosto 2026 ho passato una giornata a verificare i dati che sarebbero finiti in alcuni articoli. Alla fine ne ho scartati quattro: dati occupazionali di un consorzio a cui nessuno degli enti citati aderisce, una ricerca americana del 2009 presentata come attuale, un regolamento inesistente e un percorso formativo attribuito all'ente sbagliato.
Probabilmente non se ne sarebbe accorto nessuno. Ed è proprio questo il punto: un contenuto può sembrare corretto e avere comunque informazioni sbagliate. Per questo la verifica viene prima della pubblicazione, non dopo.
Lo stesso criterio vale quando presento i risultati del mio lavoro. Nel caso studio SEO, per esempio, avrei potuto scegliere il periodo più favorevole per costruire un confronto migliore. Ho fatto l'opposto: luglio 2025 contro luglio 2026, sapendo che luglio 2025 era stato il mese migliore di quell'anno. Se il risultato regge anche contro il dato più difficile da battere, il confronto ha molto più valore.
La consegna non è la fine
Su Lidomatic lo stato di ogni installazione lo leggo dal CRM che ho sviluppato per seguirle, diagnostica da remoto compresa, e di solito mi accorgo di un problema prima che il cliente mi chiami. Gli aggiornamenti si installano da soli. Il CRM del polo è in manutenzione e sviluppo continui, e il magazzino, in produzione dall'8 giugno 2026, da allora non è rimasto fermo. Nessuno dei tre è un progetto consegnato e chiuso.
L'AI la uso ogni giorno, e lo dico
Uso l'AI ogni giorno e lo dico volentieri invece di nasconderlo. Per ogni progetto ho sviluppato agenti dedicati e intere catene di lavoro, dalla ricerca alla verifica. Ma l'AI è il braccio: l'architettura la scelgo io, le istruzioni le do io, e ogni risultato lo controllo prima che vada in produzione. Non decide lei, decido io. Chi conosce la materia ci guadagna un moltiplicatore, chi lascia fare senza controllo raccoglie disordine.
Quel confine non lo tengo a memoria, è scritto anche dentro Marketing Hub, dove i permessi degli agenti sono una tabella: cosa possono scrivere da soli, cosa devono chiedere a me, cosa non possono toccare in nessun caso. Nella pagina di quell'app il banco dei permessi si può provare.
Sviluppo siti web ottimizzati SEO e software che mando in produzione seguendoli con rilasci continui. Uso agenti AI sviluppati su misura per ogni progetto: architettura, scelte, strategie e verifiche restano mie.
Ruoli di interesse
Project ManagerSEO SpecialistDigital marketingSviluppo full-stackDev + SEODocenza e formazione
In sede, ibrido o da remoto, anche dall'estero.
Competenze
PHPTypeScriptPythonLaravelReactFastAPIElectronHTMXSQLWordPressSEO & analyticsUX & Conversionagenti AI
Lingue
Italiano (madrelingua) Inglese (B1)
Esperienza
Lidomatic
Ideazione, sviluppo e vendita2024 - oggi
Ecosistema gestionale completo per stabilimenti balneari: app, prenotazione online, CRM delle chiavi di licenza, assistenza clienti. In produzione in 2 stabilimenti, 1.595 test automatici. TypeScript, React, Electron, Cloudflare.
CRM FAMA
Sviluppo full-stack2025 - oggi
CRM per l'orientamento universitario su più enti formativi: lead, immatricolazioni, provvigioni, automazioni, inbox social, estensione Chrome. Oltre 90 release documentate (alla v96). PHP, Laravel, Alpine.js, MySQL.
polodidatticofama.it
Sviluppo sito e strategia SEO2025 - oggi
Sito, contenuti e piano editoriale di un polo di orientamento universitario, con dashboard analytics sviluppata su misura. Da quando è partito il lavoro editoriale il traffico organico è passato da 74.000 a 322.000 impression al mese e le query in prima pagina da 379 a 5.551 (luglio 2025 contro luglio 2026). WordPress, GA4, Search Console, Python.
Software Magazzino
Progettazione e sviluppo · Polidoro Group2026
Inventario per il settore abbigliamento con etichette QR e sincronizzazione in tempo reale tra dispositivi. Dalla v1.0.0 in 6 settimane, 502 test. Python, FastAPI, HTMX.
Coding Giants
Docente di programmazioneset 2025 - set 2026
Docenza settimanale a classi dai 6 ai 18 anni, con i quiz e i timer didattici sviluppati da me.
Tesi: "Comunicare la responsabilità sociale attraverso il web: il caso aziendale De Cecco come modello applicativo".
Quattro certificazioni professionali MIUR
SEO, Inbound Marketing, AI2025
SEO Manager & SEO Specialist, SEO Copywriter, Inbound Marketing, AI per il Digital Marketing.
Web Designer, Programma GOL
Corso di formazione2023
Contatti
Il modo più diretto è scrivermi da qui: si compila il modulo e il messaggio mi arriva in casella, senza passare dal tuo programma di posta. Rispondo entro 48 ore.
Cosa succede dopo
Se la richiesta riguarda un software, la prima cosa che chiedo non è cosa deve fare il programma, ma quale problema c'è adesso: quasi sempre la risposta cambia quello che va sviluppato. È il punto da cui parte tutto il resto, e l'ho raccontato per intero in come lavoro.
Dove mi trovo e fin dove arrivo
Sono a Lanciano, in provincia di Chieti. Da remoto lavoro su tutta Italia, e anche dall'estero. In sede o ibrido copro l'Abruzzo, le Marche e il Molise.
Sito, contenuti e strategia SEO per un polo di orientamento universitario. Il primo intervento, il 27 gennaio 2026, è stato installare GA4 e inviare la sitemap a Search Console lo stesso giorno: prima si mette il metro, poi si lavora. Tutto quello che viene dopo è misurato da lì.
Il Polo Fama mi ha chiesto di ristrutturare completamente il loro sito web. Ho iniziato il censimento delle pagine per sapere cosa c'era già, le ho ordinate in dieci cluster tematici, e da febbraio ad agosto 2026 ho pubblicato diciannove articoli nuovi. Ho scelto di scrivere gli articoli in HTML, così che sia io stessa a decidere come inserire i dati strutturati invece che lasciarli generare al costruttore di pagine. Nel frattempo il sito ha smesso di essere soltanto delle pagine web da leggere, ma è diventato un ecosistema interattivo, dove è possibile trovare svariati test di orientamento, un simulatore delle rette universitarie, un collegamento diretto al CRM FAMA per chi compila un modulo o si iscrive alla newsletter e tantissimi altri strumenti utili che potete visionare all'indirizzo polodidatticofama.it.
dati reali da Search Console, ricerca web · stesso mese, un anno di distanza
Il confronto qui sopra mette luglio 2025 contro luglio 2026, e l'ho scelto perché è quello che mi conviene meno. Luglio 2025 era stato il mese migliore di quell'anno, quindi il paragone parte dal punto più alto e la crescita che ne esce è quattro volte più alta. Se avessi scelto aprile, che nel 2025 era andato male, la stessa identica crescita sarebbe sembrata otto volte superiore. Stesso lavoro, numero doppio, cambiando solo il mese di partenza: è il motivo per cui un moltiplicatore da solo non vuol dire niente se non si sa da dove parte.
Poi due cose che nei casi studio di solito non si scrivono. La prima: il sito oggi compare molto più in alto, la posizione media è passata da 13,4 a 6,8, cioè dalla seconda pagina dei risultati alla prima. Nello stesso periodo, però, la quota di chi clicca quando lo vede è scesa, da 1,63% a 1,42%.
Le cause plausibili sono almeno tre, e con i dati a disposizione non si separano. La pagina dei risultati è più affollata di un anno fa: sopra i link organici possono esserci annunci sponsorizzati e riquadri generati dall'AI, e in entrambi i casi chi cerca trova una risposta prima di arrivare al sito. C'è poi un effetto di composizione, perché crescendo il sito è comparso su molte più ricerche informative, dove si legge e non si clicca. E c'è un artefatto di misura: una posizione media che migliora può nascondere una coda di comparse in nona e decima posizione, dove il click è vicino allo zero per natura. Chi dice di sapere quale delle tre pesi di più tira a indovinare. Quello che si può fare è dichiararlo e continuare a misurare.
La seconda: una parte della crescita è calendario e non merito. Il mese più grosso dell'anno è marzo, e marzo cade dentro la finestra in cui i docenti presentano le domande per le graduatorie. Quella domanda sarebbe esistita comunque, con me o senza di me.
Quello che il calendario non spiega, però, è tutto il resto dell'anno. Le pagine del sito si dividono in due gruppi: quelle che vivono di scadenze, come bandi, graduatorie e abilitazioni, e quelle che non ne hanno, come quanto costa una laurea o quale corso scegliere. Se la crescita fosse stata solo stagione, sarebbe cresciuto soprattutto il primo gruppo. È successo il contrario: le pagine senza scadenza sono cresciute di 5,1 volte, quelle con la scadenza di 4,8.
Due articoli, due meccaniche diverse
Il 24 febbraio 2026, un giorno dopo l'apertura delle domande GPS, ho pubblicato una guida sulle certificazioni informatiche che danno punteggio. In cinque giorni: 29.823 impression, 976 click, posizione media 5,8. Il merito qui non è il volume, che la scadenza avrebbe portato comunque a qualcuno. È che quel giorno la pagina era già online.
Il 24 luglio 2026 ho pubblicato un articolo sulla riforma della professione di biologo, ed è successo qualcosa di diverso. Quell'articolo è entrato in Google Discover, dove nessuno sta cercando niente e il contenuto viene proposto mentre si scorre: 1.997 click in quattro giorni, con un click-through rate dell'8,9%, sei volte quello della ricerca. È successo una volta sola in sedici mesi di dati, quindi non lo chiamo un canale presidiato. La parte interessante viene dopo: in ricerca quell'articolo, invece di spegnersi, ha continuato a guadagnare posizioni per tre settimane. Il primo pezzo intercetta una scadenza, il secondo costruisce una posizione.
Come decido cosa scrivere
Non da una lista di titoli, da un calendario di pubblici. Ogni mese ne ha uno: chi cerca quanto costa prima di iscriversi, chi deve abilitarsi all'insegnamento, chi lavora e torna a studiare a quarant'anni. I dieci cluster servono a questo, e il censimento delle 340 pagine serve a sapere cosa c'è già prima di aggiungere qualcosa.
C'è anche una regola sulle fonti, ed è la parte del lavoro che si vede meno. Il 3 agosto 2026 ho passato una giornata a verificare i dati che stavano per finire negli articoli, e ne ho buttati quattro: dati occupazionali di un consorzio a cui nessuno dei tre atenei aderisce, una ricerca americana del 2009 citata come attuale, un regolamento che non esiste, un percorso attribuito all'ateneo sbagliato. Non se ne sarebbe accorto nessuno. È il motivo per cui i numeri degli articoli hanno tutti una data accanto.
Lo strumento con cui seguo il piano
Il piano non vive in un foglio di calcolo. Ho sviluppato Marketing Hub, un'applicazione in Flask con database SQLite: ogni articolo attraversa sette stadi, da idea a monitoraggio, e accanto a ciascuno ci sono i suoi dati di rendimento, letti da Search Console e GA4. Nelle interfacce native quelle due cose vivono in prodotti diversi e non si incrociano. Qui il rendimento di una query e lo stato di lavorazione dell'articolo che la insegue compaiono nella stessa schermata.