Skip to content
Mattia Callegher
menu ▾

How this site is built

The source is on GitHub.

01

Stack

  • Next.js 15, static export — served as plain files
  • React 19, TypeScript, Tailwind CSS 4
  • Framer Motion, playground only
  • English and Italian without an i18n library: one static route tree per language, TypeScript dictionaries, a tiny script for detection and saved preference
02

Hosting

  • A small VPS I manage myself, Caddy in Docker, Cloudflare DNS
  • Built and deployed by GitHub Actions on every push
03

Privacy

  • No analytics, cookies, or tracking scripts on my side. Traffic passes through Cloudflare, which keeps its own basic logs
  • Works without JavaScript, except the playground

Built with help from Claude Code, reviewed line by line