Aggiornato: 2026-05-26
Questo sito è stato realizzato da Matteo Cervelli con un mix di competenze personali e AI. Avevo un sito su WordPress, poi l’ho ricostruito a inizio 2025 come sito statico per “tenere il controllo”. Nel 2026 sono migrato su Astro per essere completamente self-hosted e imparare il moderno ecosistema JavaScript.
Volevo qualcosa di leggero, veloce e completamente nelle mie mani.
Generatore del sito
matteocervelli.com è un sito statico. È costruito con Astro 6 come SSG — Static Site Generator — con output bilingue (italiano e inglese). I contenuti vivono in file Markdown e MDX sotto src/content/, con piena inferenza TypeScript tramite la Content Layer API di Astro.
Hosting e deploy
Il sito è self-hosted su un server dedicato Hetzner (AX42), instradato attraverso Cloudflare per DNS e CDN. La build Astro viene impacchettata come immagine Docker e distribuita tramite Forgejo CI/CD. Forgejo è il mio forge Git self-hosted — gestisce tutte le build e i deploy; GitHub è solo un mirror pubblico.
Il container in produzione genera l’output statico dist/ e lo serve sulla porta 4321.
API e gateway
I form di newsletter e lead magnet sono form frontend statici che inviano POST a percorsi /api/* sullo stesso dominio. Quei percorsi vengono instradati dall’infrastruttura verso Mercurius — un servizio gateway self-hosted che gestisco insieme al sito. Mercurius si occupa delle iscrizioni, della consegna delle email e dei flussi di conferma. Il sito stesso non ha segreti e nessuna logica server-side.
Flusso dei contenuti
La passione per il Markdown viene da Obsidian, su cui ho migrato tutta la mia gestione qualche anno fa. Scrivo tutto in Obsidian — in multilingua — e sincronizzo con il repository del sito. Per chi veniva da un CMS chiuso, avere tutto in file di testo è ancora incredibilmente liberante.
Strumenti AI
Sviluppo con Claude Code e Codex, sia dal terminale sia insieme a VS Code o Vim. Hanno cambiato il mio modo di lavorare: riesco a muovermi velocemente sul frontend e sull’infrastruttura anche negli ecosistemi che sto ancora imparando. Tutto ciò che viene generato dall’AI viene letto, capito e fatto mio prima di andare in produzione.
Per sapere di più su come utilizzo l’AI sul sito, leggi la mia policy sull’uso dell’AI.
Colori e tipografia
La palette di colori:
- MC Purple: #AF00BF
- MC Peach Light: #FFE8D1
- MC Black: #303030
I font:
Altri strumenti
- Google Workspace — email, Drive, documentazione
- Umami Analytics — analytics self-hosted e privacy-first
- Canva — grafica
- Unsplash — immagini stock
- Stripe — pagamenti
- Fiscozen — contabilità per partite IVA italiane (affiliato)
Nota finale: Un grandissimo Grazie a Steph Ango, sia per il lavoro su Obsidian, sia per la grafica e la logica del suo blog da cui il mio prende molta ispirazione.