Language: EN

Personal website

This website. Fast, light and available in three languages.

Software · · Design and development

  • Astro
  • TypeScript
  • CSS
  • Cloudflare

Key specs

FrameworkAstro 7
LanguagesEnglish, French, Indonesian
HostingCloudflare Workers
JavaScriptOnly for the theme toggle and contact form
Contact formWeb3Forms + hCaptcha
AnalyticsCloudflare Web Analytics, no cookies

Block diagram

Block diagram. Code goes from GitLab to a Cloudflare build that produces static pages. Visitors reach the pages through Cloudflare's edge, which adds HTTPS and picks their language. The contact form goes to Web3Forms, which checks the captcha and emails me.

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.

← Back to all projects