Case Study: Portfolio v2 Rebuild — From Deleted v1 to AEO-Optimized Astro Site
Result (Summary)
Rebuilt a deleted portfolio into a production Astro 5 site with AEO schema in 2 days — 15 pages built, 100% Lighthouse accessibility, and AI-citable structured data live.
The Problem
Portfolio v1 (Astro + Product Studio) was deleted 2026-09-08. No backup content. Needed a fast rebuild that would:
- Rank on Google for “Chinnakrit portfolio”
- Be citeable by AI answer engines (ChatGPT, Perplexity)
- Support EN/TH bilingual routing
What I Built
Stack: Astro 5 + Tailwind 3 + Svelte 5 islands + swup + pagefind Fork base: saicaca/fuwari → Besty0728/fuwari (customized, removed 12 dead components) Deploy: Vercel (auto-deploy on push to main) Domain: www.chinnakrit.dev
AEO Implementation
| Technique | Implementation |
|---|---|
| Organization + Person Schema | JSON-LD in Layout.astro — sameAs links to GitHub |
| FAQPage Schema | 5 Q&A pairs on About page (EN + TH) |
| llms.txt | public/llms.txt + llms-full.txt for AI crawlers |
| Content structure | Inverted pyramid — answer first, detail after |
| i18n | EN at /, TH at /th/ with hreflang tags |
Measured Results
- Build time: 3.5s, 15 pages generated
- AI discoverable: ChatGPT already indexes chinnakrit.dev (confirmed via search)
- Schema validated: JSON-LD passes Google Rich Results Test structure
- Zero external dependencies (no GA, no ads, no tracking)
Key Decisions
- ** chose Astro over Next.js** for static portfolio — faster build, simpler deploy
- Removed all dead components from Fuwari fork (GA, AdSense, Giscus, cookie banner) — cleaner codebase
- AEO-first content writing — every page answers one question in first 40 words
- Bilingual from start — not an afterthought; i18n wired into layout + content collections
Challenges
- v1 content lost — had to rewrite from scratch (forced clean design)
- Biome lint had 133 diagnostics — fixed critical ones, build still passes
- Works collection empty — needs real project write-ups (ongoing)
What I Learned
- AEO schema alone doesn’t drive traffic — needs content depth
- AI citation requires consistent entity facts across page + schema + sameAs links
- Static site (Astro) + Vercel = fastest iteration cycle for portfolio updates
Tech Stack
Astro 5, Tailwind CSS, Svelte 5, TypeScript, Vercel, Schema.org JSON-LDLinks
Lessons (FAQ)
Why rebuild instead of restoring v1? v1 was deleted permanently — no backup. Rebuild forced a cleaner architecture.
Does AEO actually work? ChatGPT already indexes the site after schema + content update. Citation share tracking ongoing.
Would I do it differently? Start with content write-ups first (works/), then technical setup. Content > code for AEO.