Project Structure
content/
volume-1/
q001-*.mdx
q002-*.mdx
volume-2/
volume-3/
volume-4/
volume-5/
volume-6/
volume-7/
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/
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-7/. Volume 6 bridges system design, platform engineering, leadership signals, and mock interview readiness through Q320. Volume 7 starts the dedicated leadership, behavioural, and mock interview track from Q321.
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.
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.