Next.js changed its core mental model with the App Router and React Server Components, and plenty of resumes predate the shift. These questions establish whether a candidate understands the current framework β rendering boundaries, caching, and data flow β with notes on what strong answers cover.
What a strong answer covers
Server components render on the server with zero client bundle cost and direct data access; client components hydrate for interactivity, marked with 'use client'. The design instinct: push boundaries as low as possible so interactive islands sit inside server-rendered trees. Knowing that children can pass server content through client components is the nuance test.
What a strong answer covers
Static generation for marketing and docs, dynamic rendering for personalized dashboards, streaming with Suspense for slow-data pages showing shells fast, and incremental static regeneration for large catalogs updated on interval or on demand. Mapping each mode to a business page, not just defining them, is the pass.
What a strong answer covers
Fetch-level caching with revalidate options, the full route cache for static output, the client router cache, and revalidatePath/revalidateTag for on-demand invalidation. Honest war stories β stale data after a deploy or a mutation β plus the fix demonstrate real App Router mileage; reciting docs headings does not.
What a strong answer covers
Server actions as RPC-style mutations callable from forms and components with progressive-enhancement benefits; validation and auth still mandatory since they are public endpoints in disguise. Route handlers remain for webhooks, third-party API surfaces, and non-React consumers. Security framing is the senior marker.
What a strong answer covers
LCP: image optimization via next/image with priority on the hero, font loading strategy, server response times, render-blocking chains. INP: less client JavaScript, smaller hydration surfaces, breaking up long tasks, deferring non-critical work. Field-data-first methodology (CrUX, RUM) over lab-only scores signals production experience.
What a strong answer covers
Session verification in server components, server actions, and route handlers close to the data; middleware for coarse redirects with the explicit caveat that middleware alone is not an auth boundary. Cookie handling across server contexts, plus data-access-layer centralization of checks, is the mature architecture.
What a strong answer covers
Pages for legacy stability or team familiarity, with incremental migration route by route β both routers coexist. The candidate should describe what changes: data fetching from getServerSideProps to async components, layout system, and the caching model. A rewrite-everything answer misses the framework's own migration path.
What a strong answer covers
On-demand optimization, responsive srcsets, lazy loading by default, layout-shift prevention via required dimensions. Trade-offs: optimization compute or a paid image service at scale, remote-pattern configuration, and cases for skipping it. Naming priority for above-the-fold images ties back to LCP.
What a strong answer covers
Server state via props and cache-deduplicated fetches, URL as state for shareable UI, client-side stores or context confined to client component subtrees, and libraries like React Query for client-server sync where mutations are heavy. The instinct to keep state server-first and minimal on the client is the modern pattern.
What a strong answer covers
Route-level splitting for free, dynamic imports for heavy client components (charts, editors), bundle analysis to catch bloat, and dependency choices scrutinized for client cost. Awareness that every 'use client' boundary pulls its import graph into the bundle shows they understand the cost model.
What a strong answer covers
Unit tests for logic, component testing for client components, and honest acknowledgment that async server-component testing has rough edges β often covered better by integration/E2E with Playwright against a running app. Testing server actions as functions with mocked session context is a practical pattern worth hearing.
What a strong answer covers
Edge runtime's subset of Node APIs, no native modules, size limits, and latency wins for geographically distributed personalization or middleware. Wrong when you need full Node compatibility, long CPU work, or database connections without an edge-compatible driver or pooling story. Balanced cost-benefit rather than edge-everything enthusiasm.
Skip the interviews entirely β get matched with pre-vetted Next.js developers in 48 hours, $0 until you hire.
Need a custom question set?
Our free interview question generator builds a tailored list for any role, seniority, and focus area.
Try the interview question generator βOpen with the server-versus-client component question and the caching question. Pages-era candidates describe getServerSideProps and getStaticProps as the present tense; App Router practitioners talk boundaries, streaming, and revalidation. Neither is disqualifying β but you should know which you are hiring.
Yes β Next.js competence sits on React competence. Pair this set with two or three questions from our React list (hooks rules, memoization judgment, effects discipline); a candidate weak there will produce tangled client components no framework can save.
A two-page app: one statically generated listing page with ISR and one interactive detail page with a server-action mutation and cache revalidation. It touches rendering modes, boundaries, and invalidation β the three things these interviews most need to verify.
Hire directly
Hire vetted Next.js developers in the USA βOther interview guides
Vetted talent ready for US teams. No recruitment fees. Zero risk.
πΊπΈ Trusted by companies across the United States