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