# Project State & Enhancement Backlog Living list of what's done and what's next for blog.hoelee.com. Work through these **one by one** โ€” don't batch unrelated changes. Check off items as they land. **Status key:** โœ… done ยท ๐Ÿ”ต in progress ยท โฌœ not started > **How to resume the project:** start at the top-most โฌœ item in the **Execution Plan** (ยง2) below and work downward. Each step is self-contained, has a "done when" criterion, and references the governing doc. Don't jump ahead โ€” earlier steps unlock later ones. --- ## 1. Done (foundation) - โœ… Astro 5 static + Markdown, Gitea Actions CI/CD โ†’ nginx โ†’ Cloudflare (deployed) - โœ… Design system: hoelee.com brand palette, Inter + JetBrains Mono, light/dark, sticky nav, code copy button - โœ… Brand "Mr Hoelee" (replaced "hoelee.dev") - โœ… Author card + `Person`/`ProfilePage` JSON-LD (E-E-A-T), article meta, reading time, related posts - โœ… Full SEO: canonical, Open Graph (+dims), twitter:card, favicon (all sizes), RSS + sitemap - โœ… Category pages (`/categories/`, `/categories/[category]/`) - โœ… Locale scheme: English flat in `posts/`, Chinese in `posts/zh/` (lang derived from folder) - โœ… Language switcher in nav โ€” links to the **same post** in the other language (auto-matches by `zh/` prefix) - โœ… Locale-aware nav labels (EN/ZH) - โœ… Dark mode default (light opt-in via toggle) - โœ… Case study "How I Host This Blog" - โœ… Chinese translation of the case study (`posts/zh/how-i-host-this-blog.md`) - โœ… hello-world intro post - โœ… Case study "How I Built the DigiKedai Telegram AI Bot" + Chinese twin (`posts/zh/how-i-built-the-digikedai-telegram-bot/`) - โœ… Business framing corrected (website design & development = primary; email hosting = secondary) - โœ… Knowledge guides in `docs/` + README index + `hoelee-blog` skill - โœ… Both repos public (Gitea + GitHub) with title/description/homepage/topics + `v1.0.0` release - โœ… **Live re-audit of the Sept research recorded (ยง2 Phase E + ยง4), 2026-09-29** โ€” 53 posts ร— 2 languages, 127 sitemap URLs, 133/133 internal links 200 - โœ… **B3 structure batch, 2026-10-16 (third batch from the external design review)** โ€” all numbers measured in a real browser (CDP), not by eye: - **Found and fixed a real bug: site search never worked.** `/pagefind/pagefind.js` is an **ES module** (`export { search, debouncedSearch, โ€ฆ }`) that defines **no `window.Pagefind`**, but `Search.astro` loaded it with a classic `