Project Structure
content/
volume-1/
q001-*.mdx
q002-*.mdx
volume-2/
volume-3/
volume-4/
volume-5/
volume-6/
volume-7/
volume-8/
volume-9/
src/
app/
batch/
cheat-sheet/
docs/
practice/
questions/
volume-1/
volume-2/
volume-3/
volume-4/
volume-5/
volume-6/
volume-7/
components/
lib/
cheat-sheets/
mock-interviews/
pdf/
scripts/
docs/
portfolio-assets/
Content
Handbook chapters live in content/. Each chapter uses frontmatter for route metadata and MDX for the body.
The current handbook content spans content/volume-1/ through content/volume-9/. Volume 8 covers advanced interview simulations through Q375. Volume 9 covers the frontend execution lab and is complete through Q450.
App
The Next.js App Router lives in src/app/. Route pages should stay server-rendered unless they need browser interactivity.
SEO files are also App Router metadata routes:
src/app/robots.ts
src/app/sitemap.ts
src/lib/site.ts
Set NEXT_PUBLIC_SITE_URL=https://learning-studio.krishnadevashish.com in Vercel so canonical and sitemap URLs use the custom Learning Studio subdomain.
Shared Code
Shared metadata and helpers live in src/lib/. Reusable UI components live in src/components/.
Local reading progress is handled in the browser with localStorage. The shared progress storage helpers live in src/lib/readingProgress.ts; the reader widgets live in src/components/ReadingProgressTracker.tsx, src/components/ProgressOverview.tsx, and src/components/ProgressQuestionList.tsx.
Practice-ground snippets are also local to the browser. The versioned storage helpers live in src/lib/savedSnippets.ts, the first saved-snippets QA checklist lives in docs/SAVED_SNIPPETS_QA.md, and the Q450 closure checklist lives in docs/VOLUME_9_FINAL_QA.md.
Progress is local to the user’s browser. A page is marked complete only after it satisfies both the minimum active reading time and scroll-depth threshold.
Generated Artifacts
PDFs live in pdf/. Scripts that generate them live in scripts/.
Documentation
Project planning and operating notes live in docs/. The root README should stay a high-level project introduction.
Portfolio handoff screenshots and copy notes live in docs/portfolio-assets/.
The next implementation backlog lives in docs/NEXT_FIXES.md.
Future visible navigation groups should be added only when real routes and content exist. Planning-only groups such as Backend or Python should stay in docs until they are ready to ship.