Next.js Interview Preparation

Next.js interviews test whether you understand rendering strategies, routing, and full-stack React — the framework most companies use for production React apps.

What Interviewers Look For

  • SSR vs SSG vs CSR vs ISR — when and why
  • App Router vs Pages Router awareness
  • Data fetching patterns (server vs client)
  • File-based routing and layouts
  • How your Next.js project is structured

Files in This Section

FilePurpose
topics-not-to-miss.mdMust-know concepts checklist
interview-questions.md30+ questions with full answers
rendering-patterns.mdSSR, SSG, ISR, CSR deep dive
project-style-questions.md10 scenario questions
revision-sheet.mdOne-page cram before interview
mock-interview.md45-minute practice flow

Study Order

  1. topics-not-to-miss.md — identify gaps
  2. rendering-patterns.md — master rendering decisions
  3. interview-questions.md — 5 questions/day
  4. project-style-questions.md — scenario practice
  5. mock-interview.md — practice with a friend
  6. revision-sheet.md — day before interview

Time Estimate

  • Minimum viable prep: 3–5 days (if you know React)
  • Solid prep: 1–2 weeks (with a Next.js project)

Project Connection

Be ready to explain: which routes use SSR/SSG, why you chose App Router, how you fetch data, and your deployment setup (Vercel or other).

Interactive

Rendering Patterns: CSR vs SSR vs SSG vs ISR

Step through all four strategies and watch WHERE the work happens — build, server, or browser — and who ever sees a stale page.

user requests /dashboardserver returns empty HTML shell + JS bundlebrowser downloads and runs the JSReact renders in the browserdata fetched from the APIpage finally shows content

Build time

Server / CDN

static file server
example.com/dashboardnot interactive
(blank)

Client-Side Rendering: the server does almost nothing per-request.

1 / 5

'use client' Boundary Visualizer

Drop a 'use client' directive on any component and watch the client bundle flood down the tree — with the shipped-JS bill updating live.

Click a component to add or remove a 'use client' directive.

shipped JS 0 kbeverything renders on the server

A client component's imports become client too — but server components passed as children/props through a client boundary stay on the server. That escape hatch is the follow-up interviewers probe.

Study materials