This site is my personal portfolio — an index of the things I build, the tools I write, and the services I run. It started as an over-featured AI blog scaffold, and was rebuilt into a fully static portfolio.
Stack
- Framework: Astro 6, SSR + static output
- Hosting: Cloudflare Workers (global CDN, served at the edge)
- Content: Markdown-driven,
git pushto publish — no admin panel, no database
Three sections
The homepage has three parts, each driven by a content collection:
- Projects — with detail pages; the README renders to HTML at build time
- Tools — static web utilities, one click straight through
- Services — self-hosted services, cards link out
Why Astro
Content becomes static HTML at build time: full first paint, indexable by search engines, no client-render XSS surface. This is what a content site should be — keep the dynamic where interaction truly needs it, and make everything else static.
Bilingual
Both the cards and the blog support Chinese/English switching. Cards resolve _zh / _en suffixed fields automatically; blog posts pair name.md (Chinese) with name-en.md (English), showing the version for the current language.
Let AI do what it’s good at, and leave the structure to people. This site is one take on that idea.