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.txt and 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.