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 push to 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.