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

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.