Boarding pass · Next.js Beginner
Next.js · Beginner interview
An AI mock interview for developers new to Next.js (0–2 years). Practise the App Router, routing and layouts, server vs client components, and basic data fetching — out loud, with a readiness score.
- Voice interview
- Live feedback
- Browser-only
- No installation required
Your report · sample
AI Readiness Score
Finish the mock and get this report — scored on content and English, with concrete tips and a model answer for every question, plus a study plan.
Your flight path
Five steps to interview-ready.
From a quick warm-up to a personalised study plan — here's the whole loop, and what you get at each gate.
Step 01
Preparation
Skim the topics and warm up — you're briefed before takeoff.
Step 02
AI Interview
A realistic AI interviewer asks tailored questions — answer by voice or text.
Step 03
Instant Score
Finish and get a 0–100 readiness score across content and English.
Step 04
AI Feedback
Concrete tips and a rewritten model answer for every response.
Step 05
Study Plan
A personalised plan targets your weakest areas — so the next run scores higher.
Preview the AI demo
See one answer scored, end to end.
The whole loop on sample data — question, your answer, instant feedback and a study plan. Hover to pause.
Interviewer · Question 1
“Tell me about yourself.”
Who it's for
- React developers learning Next.js
- Frontend devs building their first Next app
- Anyone targeting junior Next.js roles
- Self-taught devs prepping for interviews
What you'll practice
- File-based routing and layouts in the App Router
- Server vs Client Components
- Rendering modes (SSR/SSG/CSR)
- Fetching data and handling loading/errors
Topics covered
What this level expects.
Fundamentals
- What Next.js is
- App vs Pages Router
- File-based routing
Routing
- Dynamic routes
- Link & navigation
- Layouts
Rendering
- Server vs Client Components
- SSR/SSG/CSR
- Metadata API
Data
- Fetching in components
- loading & error files
- Env vars
Practice questions
12 questions, with model answers.
Read them, then run the live mock to answer out loud and get scored. Tap any question to reveal a model answer.
01What is Next.js and why use it over plain React?Fundamentals
Next.js is a React framework that adds the pieces a plain React SPA lacks: file-based routing, server-side rendering and static generation, server components, data fetching conventions, API/route handlers, image and font optimization, and a production build pipeline. You use it when you want better performance and SEO than a client-only app and don't want to assemble routing, SSR, and bundling yourself.
02What's the difference between the App Router and the Pages Router?Fundamentals
The Pages Router (pages/) is the original system: file-based routes with getServerSideProps/getStaticProps for data. The App Router (app/) is the newer model built on React Server Components, with nested layouts, server components by default, streaming, and colocated loading/error files. New projects use the App Router; the Pages Router is still supported for existing apps.
03What is file-based routing in Next.js?Fundamentals
Routes are defined by the folder structure rather than a config. In the App Router, each folder under app/ is a URL segment and a page.tsx in it makes that segment routable; special files like layout.tsx, loading.tsx, and error.tsx add shared UI and states. So app/blog/page.tsx serves /blog with no router setup.
04How do you create a dynamic route in the App Router?Routing
You name a folder with square brackets, like app/blog/[slug]/page.tsx, which matches /blog/anything. The segment value arrives via the params prop (a promise you await in newer versions). You can also use [...slug] for catch-all routes and [[...slug]] for optional catch-alls.
// app/blog/[slug]/page.tsx
export default async function Page({ params }) {
const { slug } = await params;
return <h1>{slug}</h1>;
}05How do you navigate between pages in Next.js?Routing
Use the Link component for declarative navigation — it does client-side transitions and prefetches the route. For programmatic navigation in a client component, use the useRouter hook from next/navigation and call router.push(). Plain anchor tags work but force a full reload, so prefer Link.
import Link from "next/link"; <Link href="/blog/hello">Read</Link>
06What is a layout in the App Router?Routing
A layout.tsx wraps the pages in its folder and nested folders, providing shared UI like a header or sidebar that persists across navigations without re-rendering. The root layout (app/layout.tsx) is required and defines the html and body. Layouts nest, so you can have a section layout inside the root one.
07What's the difference between Server and Client Components?Rendering
In the App Router, components are Server Components by default: they render on the server, can fetch data and access server resources directly, and ship no JavaScript to the browser. A Client Component, marked with 'use client' at the top, runs in the browser and can use state, effects, and event handlers. You keep most of the tree on the server and opt into client components only where you need interactivity.
08What's the difference between SSR, SSG, and CSR, and what does Next do?Rendering
SSR renders HTML on the server per request (fresh, slightly slower); SSG renders at build time and serves static HTML (fast, cacheable); CSR renders in the browser after loading JS. In the App Router, Next statically renders routes by default and switches to dynamic (per-request) rendering when you use dynamic data or APIs, with ISR letting static pages revalidate periodically. You choose mostly through how you fetch data, not explicit flags.
09How do you set page titles and metadata?Rendering
Export a metadata object (or a generateMetadata function for dynamic values) from a layout or page, and Next renders the appropriate head tags. This replaces manually managing the document head and supports titles, descriptions, Open Graph, and more, merging across nested layouts.
export const metadata = { title: "Blog", description: "..." };10How do you fetch data in a Server Component?Data
Just make the component async and await your data directly — call fetch or your database in the component body, with no useEffect or client state. Because it runs on the server, the data never ships as client JS and there's no loading flash for the initial render. Next also augments fetch with caching and revalidation.
export default async function Page() {
const posts = await fetch(api).then(r => r.json());
return <List posts={posts} />;
}11What do loading.tsx and error.tsx do?Data
loading.tsx provides an instant loading UI for a route segment while its server component streams in — Next wraps the segment in a Suspense boundary automatically. error.tsx is a client component that catches rendering errors in that segment and shows a fallback with a retry, acting as an error boundary. They let you handle loading and error states per route with files instead of manual boilerplate.
12How do environment variables work in Next.js?Data
Variables in .env are available server-side via process.env. To expose one to the browser you must prefix it with NEXT_PUBLIC_, which inlines it into the client bundle at build time — so never put secrets there. Server-only secrets stay unprefixed and are never sent to the client.
Preparation tips
Walk in ready.
- Build a small App-Router app with a dynamic route
- Know when you actually need 'use client'
- Practise fetching data directly in a server component
- Understand SSR vs SSG in one sentence each
Ready for the real thing?
Run a 6-question Next.js mock interview, answer out loud, and get a readiness score with tips and model answers.
More beginner interviews