Anvil Career
Back to Blog
DEVELOPMENT TUTORIAL

Next.js App Router vs Pages Router: What Your Choice Signals to Startup Recruiters in 2026

8 min read

A hiring manager opens two Next.js portfolios. Candidate A's project uses the Pages Router: getServerSideProps, getStaticProps, a pages/ directory, and a _app.tsx file wrapping everything in a single layout. Candidate B's project uses the App Router: Server Components fetching data without useEffect, loading.tsx files for Suspense boundaries, nested layouts in a layout.tsx hierarchy, and server actions for form submissions. The hiring manager has seen Candidate A's exact architecture 50 times this hiring cycle — because every Next.js tutorial from 2021-2023 teaches the Pages Router. They have seen Candidate B's architecture maybe 5 times — because building with the App Router requires reading the official documentation rather than following a tutorial. Candidate B gets the interview call. The technological difference between the two routers is significant. The recruiter signal difference is larger.

WHY THIS MATTERS FOR PLACEMENT PORTFOLIOS

The App Router (stable since Next.js 14) is not just a new API — it represents a fundamental shift in how React applications handle data fetching and rendering. The Pages Router treats the server as a data provider: you fetch data in getServerSideProps, pass it as props, and render on the client. The App Router treats the server as a rendering engine: components execute on the server, fetch their own data, and send HTML to the client. This shift from "data-fetching-then-rendering" to "render-while-fetching" is the core architectural evolution in modern React, and understanding it signals that you have kept up with the ecosystem beyond 2022 tutorials. Recruiters at product companies recognize this signal. Tutorials do not teach it.

The Features That Impress Interviewers — And How to Use Them

You do not need to use every App Router feature. You need to use the three features that interviewers actually ask about, and you need to be able to explain why you used them.

Server Components (default in App Router): the most important feature to get right. A Server Component fetches its own data and renders on the server — no useEffect, no useState for loading/error/data states, no client-side waterfall. The interviewer will ask: "How does your application fetch data?" The answer you want to give: "I use Server Components for data fetching because they eliminate the client-side loading spinner. The data is fetched on the server during the request, and the HTML arrives already populated. This improves Time to First Contentful Paint because the user never sees a loading state for data that exists at request time." This explanation demonstrates that you understand not just how to use Server Components, but why they exist and what problem they solve. That is the level of understanding that interviewers hire for.

Streaming with Suspense (loading.tsx): the feature that proves you understand progressive rendering. Create a loading.tsx file next to any page.tsx. Next.js automatically wraps the page in a Suspense boundary and shows the loading UI while the page's async work completes. The interviewer will ask: "How do you handle loading states?" The Pages Router answer is "I set an isLoading state in useEffect and conditionally render a spinner." The App Router answer is "I use loading.tsx files which are Suspense boundaries — Next.js streams the page shell immediately and fills in the content as it becomes available, without the client managing any loading state." The second answer demonstrates that you understand the platform's capabilities rather than reinventing loading state management. Write at least one loading.tsx file in your project. The recruiter sees the file and knows you understand streaming. The interviewer asks about it and you have a specific implementation to discuss.

Server Actions (for mutations): the feature that replaces API routes for form submissions and data mutations. Define an async function with "use server" at the top of the file, call it directly from a form's action prop or a button's onClick. No API route, no fetch call, no manual error handling boilerplate. The interviewer will ask: "How do you handle form submissions?" The Pages Router answer describes an API route pattern. The App Router answer describes a server action: "I define a server action function, pass it to the form's action prop, and Next.js handles the serialization, CSRF protection, and progressive enhancement. If JavaScript is disabled, the form still works as a traditional HTML form submission." This answer demonstrates awareness of progressive enhancement, security, and platform features — three concepts that most entry-level candidates never encounter.

What to Avoid in an App Router Portfolio

Using the App Router with Pages Router patterns is worse than using the Pages Router correctly. The most common mistake: adding "use client" to every component because you are accustomed to useState and useEffect for everything. A project where every component is a Client Component signals that you did not understand the App Router's purpose — you just renamed your files from .js to .tsx and continued writing Pages Router code. The rule: only add "use client" when you need interactivity (event handlers, useState, useEffect, browser APIs). For data display, forms that use Server Actions, and layout components, keep them as Server Components (the default). A project with a healthy mix of Server and Client Components, where the Client Component boundary is pushed as far down the tree as possible, signals genuine architectural understanding.

THE APP ROUTER INVESTMENT

Building a portfolio project with the App Router takes 10-20% longer than with the Pages Router because you need to learn the new paradigm. The return is disproportionate: the recruiter recognizes App Router adoption as a signal that you read official documentation rather than following 2022 tutorials, and the interviewer conversation about Server Components and Suspense gives you an opportunity to demonstrate architectural reasoning that Pages Router portfolios cannot provide. The 10-20% time investment produces a 100-200% improvement in recruiter perception for product-company roles. There are few higher-ROI decisions in portfolio building.