Personal website
This website. Fast, light and available in three languages.
Key specs
| Framework | Astro 7 |
|---|---|
| Languages | English, French, Indonesian |
| Hosting | Cloudflare Workers |
| JavaScript | Only for the theme toggle and contact form |
| Contact form | Web3Forms + hCaptcha |
| Analytics | Cloudflare Web Analytics, no cookies |
Block diagram
Overview
I wanted a home on the web that is quick to load, easy to keep up to date, and readable by my friends and colleagues in France, Indonesia and elsewhere. Every page is built ahead of time into plain HTML, so there is no server to maintain.
Challenges
- Three languages, one site. Each page exists in English, French and Indonesian. Visitors land in their browser’s language, and the language picker jumps to the same page in another language.
- Security without a backend. A strict Content Security Policy blocks any script that I did not allow, which meant listing every outside service by hand.
- Going live. The first deploys to Cloudflare failed on a duplicate redirect, and the domain still pointed to my registrar’s parking page.
What I learned
How DNS, redirects and edge workers fit together, and that a small static site can do almost everything a “real” web app does.