diff --git a/.gsd/milestones/M009/M009-ROADMAP.md b/.gsd/milestones/M009/M009-ROADMAP.md
index 0c0785f..1f74de6 100644
--- a/.gsd/milestones/M009/M009-ROADMAP.md
+++ b/.gsd/milestones/M009/M009-ROADMAP.md
@@ -6,6 +6,6 @@ The homepage is Chrysopedia's front door. Right now it's a search box — functi
## Slice Overview
| ID | Slice | Risk | Depends | Done | After this |
|----|-------|------|---------|------|------------|
-| S01 | Homepage Hero & Value Proposition | medium | — | ⬜ | Homepage shows tagline, value description, how-it-works steps, Start Exploring CTA, and popular topic quick-links above the fold |
+| S01 | Homepage Hero & Value Proposition | medium | — | ✅ | Homepage shows tagline, value description, how-it-works steps, Start Exploring CTA, and popular topic quick-links above the fold |
| S02 | About Page | low | — | ⬜ | About page at /about explains what Chrysopedia is, how content is extracted, and who maintains it. Link visible in footer. |
| S03 | Featured Content & Content Teasers | low | S01 | ⬜ | Homepage shows a featured technique spotlight and Recently Added section with enriched cards |
diff --git a/.gsd/milestones/M009/slices/S01/S01-SUMMARY.md b/.gsd/milestones/M009/slices/S01/S01-SUMMARY.md
new file mode 100644
index 0000000..86c3383
--- /dev/null
+++ b/.gsd/milestones/M009/slices/S01/S01-SUMMARY.md
@@ -0,0 +1,81 @@
+---
+id: S01
+parent: M009
+milestone: M009
+provides:
+ - Homepage hero section with tagline, value prop, how-it-works, CTA — S03 builds on this layout for featured content
+requires:
+ []
+affects:
+ - S03
+key_files:
+ - frontend/src/pages/Home.tsx
+ - frontend/src/App.css
+key_decisions:
+ - Used cyan accent numbered circles for how-it-works steps to match existing design language
+ - Used uppercase secondary-text heading for Popular Topics to differentiate from primary content hierarchy
+ - Popular topics pills link to /search?q={topic}&scope=topics rather than a dedicated topic detail page
+patterns_established:
+ - Homepage content sections use BEM naming under .home- prefix (home-hero__title, home-how-it-works__step, home-popular-topics)
+ - Optional data-driven sections (popular topics) silently hide on API error — no error UI for non-critical homepage enrichment
+observability_surfaces:
+ - none
+drill_down_paths:
+ - .gsd/milestones/M009/slices/S01/tasks/T01-SUMMARY.md
+ - .gsd/milestones/M009/slices/S01/tasks/T02-SUMMARY.md
+duration: ""
+verification_result: passed
+completed_at: 2026-03-31T05:38:05.139Z
+blocker_discovered: false
+---
+
+# S01: Homepage Hero & Value Proposition
+
+**Homepage now shows tagline, value proposition, 3-step how-it-works grid, Start Exploring CTA, and popular topic quick-links — all above the fold.**
+
+## What Happened
+
+The homepage previously had an empty h1 and only a subtitle with search bar. Two tasks transformed it into a proper landing experience:
+
+**T01** added the hero tagline "Production Knowledge, Distilled", a value proposition paragraph explaining what Chrysopedia does, a 3-column how-it-works grid (Creators Share Techniques → AI Extracts Key Moments → You Find Answers Fast) with cyan accent numbered circles, and a prominent "Start Exploring" CTA button linking to /topics. All styling uses existing CSS custom properties. Responsive stacking at 640px.
+
+**T02** added a Popular Topics section that fetches from the existing topics API, flattens all sub_topics across categories, sorts by technique_count descending, takes the top 8, and renders them as clickable pill links navigating to /search?q={topic}&scope=topics. Section is hidden when no data or API error — graceful degradation. CSS uses the existing pill token system with bordered hover state.
+
+Both tasks touched only Home.tsx and App.css. No new dependencies, no API changes, no backend work required.
+
+## Verification
+
+Frontend build passes with zero errors (46 modules transformed, 52KB CSS, 224KB JS). Verified all planned elements present in source: h1 tagline, value-prop paragraph, how-it-works grid with 3 steps, CTA link to /topics, popularTopics state/fetch/render, pill links with search scope. CSS classes confirmed present for all new components including responsive rules.
+
+## Requirements Advanced
+
+None.
+
+## Requirements Validated
+
+None.
+
+## New Requirements Surfaced
+
+None.
+
+## Requirements Invalidated or Re-scoped
+
+None.
+
+## Deviations
+
+T02 removed an unused TopicCategory type import that caused TS6133 — minor cleanup, no functional impact.
+
+## Known Limitations
+
+Popular topics section fetches the full topics list and filters client-side. Fine for current dataset size but would benefit from a dedicated API endpoint if topic count grows significantly.
+
+## Follow-ups
+
+None.
+
+## Files Created/Modified
+
+- `frontend/src/pages/Home.tsx` — Added hero tagline, value proposition, how-it-works grid, CTA button, and popular topics pill section with API fetch
+- `frontend/src/App.css` — Added styles for value-prop, how-it-works grid, CTA button, popular topics pills, and responsive breakpoints
diff --git a/.gsd/milestones/M009/slices/S01/S01-UAT.md b/.gsd/milestones/M009/slices/S01/S01-UAT.md
new file mode 100644
index 0000000..b1d993a
--- /dev/null
+++ b/.gsd/milestones/M009/slices/S01/S01-UAT.md
@@ -0,0 +1,45 @@
+# S01: Homepage Hero & Value Proposition — UAT
+
+**Milestone:** M009
+**Written:** 2026-03-31T05:38:05.139Z
+
+## UAT: Homepage Hero & Value Proposition
+
+### Preconditions
+- Chrysopedia stack running (web UI accessible at configured URL)
+- At least one topic with sub-topics exists in the database (for popular topics to render)
+
+### Test 1: Hero Content Visible
+1. Navigate to the homepage (/)
+2. **Expected:** Page shows heading "Production Knowledge, Distilled"
+3. **Expected:** Below the heading, a paragraph explains what Chrysopedia does — mentions extracting techniques from creator tutorials
+4. **Expected:** Search bar remains visible and prominent
+
+### Test 2: How-It-Works Grid
+1. On the homepage, locate the how-it-works section
+2. **Expected:** Three steps displayed in a row (desktop): (1) Creators Share Techniques, (2) AI Extracts Key Moments, (3) You Find Answers Fast
+3. **Expected:** Each step has a numbered circle with cyan accent color and a short description
+4. Resize browser to <640px width
+5. **Expected:** Steps stack vertically
+
+### Test 3: Start Exploring CTA
+1. On the homepage, locate the "Start Exploring" button
+2. Click the button
+3. **Expected:** Navigates to /topics page
+
+### Test 4: Popular Topics Pills
+1. Navigate back to homepage (/)
+2. **Expected:** A "Popular Topics" section appears with up to 8 pill/chip links
+3. **Expected:** Pills are ordered by technique count (most popular first)
+4. Click any topic pill
+5. **Expected:** Navigates to /search?q={topic_name}&scope=topics with relevant results
+
+### Test 5: Popular Topics — Empty State
+1. If no topics exist in the database (or API is down), navigate to homepage
+2. **Expected:** Popular Topics section is completely hidden — no heading, no empty container, no error message
+
+### Test 6: Visual Hierarchy
+1. On desktop (>768px), load the homepage
+2. **Expected:** Hero title and search bar are visible without scrolling
+3. **Expected:** How-it-works section and CTA are below but reachable with minimal scroll
+4. **Expected:** Popular topics pills visually complement but don't compete with the search bar
diff --git a/.gsd/milestones/M009/slices/S01/tasks/T02-VERIFY.json b/.gsd/milestones/M009/slices/S01/tasks/T02-VERIFY.json
new file mode 100644
index 0000000..7677895
--- /dev/null
+++ b/.gsd/milestones/M009/slices/S01/tasks/T02-VERIFY.json
@@ -0,0 +1,16 @@
+{
+ "schemaVersion": 1,
+ "taskId": "T02",
+ "unitId": "M009/S01/T02",
+ "timestamp": 1774935430315,
+ "passed": true,
+ "discoverySource": "task-plan",
+ "checks": [
+ {
+ "command": "cd frontend",
+ "exitCode": 0,
+ "durationMs": 6,
+ "verdict": "pass"
+ }
+ ]
+}
diff --git a/.gsd/milestones/M009/slices/S02/S02-PLAN.md b/.gsd/milestones/M009/slices/S02/S02-PLAN.md
index f0303b2..e91d8ad 100644
--- a/.gsd/milestones/M009/slices/S02/S02-PLAN.md
+++ b/.gsd/milestones/M009/slices/S02/S02-PLAN.md
@@ -1,6 +1,10 @@
# S02: About Page
-**Goal:** Project credibility — users can learn who made this and why
+**Goal:** About page at /about explains what Chrysopedia is, how content is extracted, and who maintains it. Footer link navigates to it.
**Demo:** After this: About page at /about explains what Chrysopedia is, how content is extracted, and who maintains it. Link visible in footer.
## Tasks
+- [x] **T01: Added /about page with three content sections (what, how, who) and an About link in the footer** — Create the About.tsx page component with three content sections (what Chrysopedia is, how content is extracted, who maintains it), add a /about route in App.tsx, add an About link in AppFooter.tsx, and add .about-* styles in App.css following existing BEM and CSS custom property patterns.
+ - Estimate: 30m
+ - Files: frontend/src/pages/About.tsx, frontend/src/App.tsx, frontend/src/components/AppFooter.tsx, frontend/src/App.css
+ - Verify: cd frontend && npx tsc --noEmit && npm run build
diff --git a/.gsd/milestones/M009/slices/S02/S02-RESEARCH.md b/.gsd/milestones/M009/slices/S02/S02-RESEARCH.md
new file mode 100644
index 0000000..f13f3fa
--- /dev/null
+++ b/.gsd/milestones/M009/slices/S02/S02-RESEARCH.md
@@ -0,0 +1,40 @@
+# S02 Research — About Page
+
+## Summary
+
+Static informational page at `/about` explaining what Chrysopedia is, how content is extracted, and who maintains it. No backend work. Three changes: new page component, new route in App.tsx, footer link.
+
+## Recommendation
+
+Follow existing page patterns exactly. This is the simplest possible slice — a single static React component with CSS, wired into the router and linked from the footer.
+
+## Implementation Landscape
+
+### Files to Create
+- `frontend/src/pages/About.tsx` — static page component
+
+### Files to Modify
+- `frontend/src/App.tsx` — add `} />`
+- `frontend/src/components/AppFooter.tsx` — add "About" link (use react-router-dom `Link`, not ``)
+- `frontend/src/App.css` — add `.about-*` styles
+
+### Existing Patterns to Follow
+- **Page structure:** Wrap in a container div with page-specific class (e.g. `
+ );
+}
diff --git a/frontend/tsconfig.app.tsbuildinfo b/frontend/tsconfig.app.tsbuildinfo
index 7db0d54..0bc3fdb 100644
--- a/frontend/tsconfig.app.tsbuildinfo
+++ b/frontend/tsconfig.app.tsbuildinfo
@@ -1 +1 @@
-{"root":["./src/App.tsx","./src/main.tsx","./src/vite-env.d.ts","./src/api/public-client.ts","./src/components/AdminDropdown.tsx","./src/components/AppFooter.tsx","./src/components/CategoryIcons.tsx","./src/components/CopyLinkButton.tsx","./src/components/CreatorAvatar.tsx","./src/components/ReportIssueModal.tsx","./src/pages/AdminPipeline.tsx","./src/pages/AdminReports.tsx","./src/pages/CreatorDetail.tsx","./src/pages/CreatorsBrowse.tsx","./src/pages/Home.tsx","./src/pages/SearchResults.tsx","./src/pages/TechniquePage.tsx","./src/pages/TopicsBrowse.tsx"],"version":"5.6.3"}
\ No newline at end of file
+{"root":["./src/App.tsx","./src/main.tsx","./src/vite-env.d.ts","./src/api/public-client.ts","./src/components/AdminDropdown.tsx","./src/components/AppFooter.tsx","./src/components/CategoryIcons.tsx","./src/components/CopyLinkButton.tsx","./src/components/CreatorAvatar.tsx","./src/components/ReportIssueModal.tsx","./src/pages/About.tsx","./src/pages/AdminPipeline.tsx","./src/pages/AdminReports.tsx","./src/pages/CreatorDetail.tsx","./src/pages/CreatorsBrowse.tsx","./src/pages/Home.tsx","./src/pages/SearchResults.tsx","./src/pages/TechniquePage.tsx","./src/pages/TopicsBrowse.tsx"],"version":"5.6.3"}
\ No newline at end of file