Summary
jabinwan's personal site goes live: a bilingual (Chinese/English) personal site deeply customized from the Refined-X (Astro + Starlight) template. The static site runs on Cloudflare Pages; a lightweight visit counter is served by a Cloudflare Worker.
The site is live. This is the first post — a short record of how it was built.
Stack
This site started from Refined-X, an agent-friendly personal publishing template built on Astro + Starlight:
- One corpus, many surfaces: the same Markdown/YAML generates a reader-facing site,
llms.txtand Markdown mirrors for LLMs, plus JSON APIs and an OpenAPI description for programs; - Static-first: no backend required by default, zero hosting cost.
Bilingual customization
The template only ships a single UI language out of the box. This site adds a two-route retrofit: Chinese pages live at the root (e.g. /writing/), English pages under the /en/ prefix (e.g. /en/writing/), with a language toggle in the header. It works via a “dual-pass build” — each locale is built into its own static tree and then merged. Chinese and English versions of the same article share slug and date, so they map one-to-one.
Deployment
Everything runs on Cloudflare:
- Cloudflare Pages hosts the static site with automatic builds on every push to GitHub;
- Cloudflare Workers serves a lightweight visit-counter API backed by KV.
What’s next
Expect ongoing writing and project notes here. Get in touch via the contacts on the about page.