Project: a landing page
Build a sourced Astro landing page, review it locally, and deploy the reviewed commit through GitHub and Vercel.
Start with real source material. Finish with a reviewed GitHub commit and a working Vercel URL.

| Step | Lesson | Evidence |
|---|---|---|
| 1 | Prepare assets and a brief | Public-safe source inventory and approved brief |
| 2 | Build the knowledge base | Sourced content and explicit gaps |
| 3 | Write design.md | Approved visual and responsive rules |
| 4 | Approve the implementation plan | Routes, files, milestones, checks, non-goals |
| 5 | Build in milestones | Running Astro site and reviewable commits |
| 6 | Review and fix locally | Browser, content, link, and accessibility evidence |
| 7 | Deploy through GitHub and Vercel | Reviewed source and live URL |
| 8 | Finish only the launch layers needed | Required launch extras, or a deliberate deferral |
For a live class, use the strict 120-minute runbook.
Prepare assets and a brief
Gather publishable source material, record where it came from, and approve a narrow landing-page outcome.
lessonBuild the knowledge base
Convert approved source material into a compact, cited content file that the site can safely use.
lessonWrite design.md
Turn real brand inputs and chosen references into reviewable visual, responsive, and accessibility rules.
lessonApprove the implementation plan
Convert approved content and design into routes, files, milestones, checks, integrations, and non-goals before code.
lessonBuild the Astro site in milestones
Scaffold Astro and implement the approved landing page in small, running, reviewable milestones.
lessonReview and fix locally
Test the actual landing page at useful viewport, keyboard, content, link, and build boundaries and fix only evidenced issues.
lessonDeploy through GitHub and Vercel
Push the reviewed landing-page commit to GitHub, import it into Vercel, and verify the production result.
lessonFinish only the launch layers needed
Add domains, metadata, forms, analytics, and search tooling only when the approved brief names the need.