Full Stack Developer
Next.js questions
173 questions on Next.js for full stack developers, easiest first.
Easy 50
- Where to keep a secret keyeasy
- useState in an App Router pageeasy
- Renaming a secret to NEXT_PUBLIC_easy
- Making a route publiceasy
- What a layout doeseasy
- Route for a product IDeasy
- Folders in parentheseseasy
- Purpose of use clienteasy
- Linking between pageseasy
- Showing a 404 for a missing posteasy
- What loading.tsx doeseasy
- Correct useRouter importeasy
- Default component typeeasy
- Creating an API endpointeasy
- Folder with an underscoreeasy
- What the root layout needseasy
- Two routers in one projecteasy
- Highlighting the active linkeasy
- Fetching data in a pageeasy
- What use server markseasy
- Submitting a form to the servereasy
- Reading cookies in a Server Componenteasy
- Fetching two things at onceeasy
- Disabling the submit buttoneasy
- Revalidating a page every houreasy
- How Server Actions are calledeasy
- Default caching of fetcheasy
- What use cache doeseasy
- Why stream a slow sectioneasy
- Reading a JSON bodyeasy
- Reading the query stringeasy
- Caching one fetch for 10 minuteseasy
- Always rendering on requesteasy
- Required props for next/imageeasy
- Allowing an image hosteasy
- Benefit of next/font/googleeasy
- Setting the page titleeasy
- Loading a chat widget scripteasy
- Local environment fileeasy
- Small Docker imageeasy
- What output export cannot doeasy
- Default bundler in Next.js 16easy
- Generating a sitemapeasy
- Reading next build outputeasy
- Using fs on the edgeeasy
- Social share imageeasy
- Permanent redirect from configeasy
- Image with fill is not visibleeasy
- Measuring speed in dev modeeasy
- Blur-up for a local imageeasy
Medium 71
- Server Components and the databasemedium
- Hiding the button is not authmedium
- Old title after savingmedium
- Search shows results for old inputmedium
- Changed env var, old value in browsermedium
- Relative fetch on the servermedium
- Catch-all versus optional catch-allmedium
- Reading params in Next.js 15+medium
- When to use template.tsxmedium
- error.tsx must be a Client Componentmedium
- Error in a layout not caughtmedium
- Server code pulled into the clientmedium
- What import 'server-only' doesmedium
- Passing a function as a propmedium
- Server content inside a client wrappermedium
- Showing two panels at oncemedium
- Photo opens as a modalmedium
- Slot does not match on refreshmedium
- When Link prefetchesmedium
- What router.refresh() doesmedium
- useSearchParams breaks the buildmedium
- route.ts next to page.tsxmedium
- Prebuilding blog postsmedium
- Unknown slug with dynamicParams falsemedium
- Error in the root layoutmedium
- Request interception file in Next.js 16medium
- Same DB query in layout and pagemedium
- Same fetch called twicemedium
- What useActionState returnsmedium
- Instant like countmedium
- Where to check permissionsmedium
- Large file upload failsmedium
- Form before JavaScript loadsmedium
- Revalidating by tagmedium
- One call makes the page dynamicmedium
- Work after the responsemedium
- GET route handler cachingmedium
- First visitor after revalidate timemedium
- Setting how long use cache lastsmedium
- Tagging cached datamedium
- Previewing CMS draftsmedium
- Hidden data waterfallmedium
- Two different revalidate timesmedium
- How long React cache() lastsmedium
- Order of revalidate and redirectmedium
- Search form with client navigationmedium
- Title from database datamedium
- Relative OG image URLmedium
- next/image with fill downloads too muchmedium
- Using next/font with CSS variablesmedium
- Proxy running on every filemedium
- Is proxy enough for auth?medium
- Hiding a backend URLmedium
- Hero image loads latemedium
- Starting tracing oncemedium
- Native module breaks the buildmedium
- Slow dev from icon librarymedium
- Fewer manual memosmedium
- Image bill keeps growingmedium
- Can crawlers see streamed content?medium
- Static shell with dynamic holesmedium
- Library component without use clientmedium
- Component that touches windowmedium
- Not adding to browser historymedium
- Route params in a deep componentmedium
- Adding security headers to all pagesmedium
- Setting a cookie from a pagemedium
- Routing for English and Arabicmedium
- Pending state on programmatic navigationmedium
- Active tab in a layoutmedium
- Next.js Server Action without a checkmedium
Hard 52
- Hydration mismatch with timehard
- Module variable holds the current userhard
- 404 page returns status 200hard
- Nonce-based CSP trade-offhard
- Errors only right after a deployhard
- Metadata export ignoredhard
- Which loading state showshard
- Intercepting route path rulehard
- Passing a promise to the clienthard
- React context in the App Routerhard
- Shape of catch-all paramshard
- Scroll position after navigationhard
- Do client components render on the server?hard
- Async Client Componenthard
- Setting a cookie in a route handlerhard
- Which not-found.tsx is usedhard
- Where use client is neededhard
- getServerSideProps in the app folderhard
- Turning off prefetchhard
- redirect() never happenshard
- Reading cookies inside use cachehard
- Seeing your own edit at oncehard
- Cached data shown to the wrong userhard
- Build error with Cache Componentshard
- Values captured by an inline actionhard
- Exporting a constant from an actions filehard
- Deleting data in a GET handlerhard
- Two sections, two boundarieshard
- Making a random value per requesthard
- Prebuilt plus fresh pageshard
- What an action may returnhard
- Returning to a dynamic listhard
- Replacing unstable_cachehard
- Trusting form data in an actionhard
- Revalidating a dynamic routehard
- Proxy runtime in Next.js 16hard
- Blocking secrets from reaching the clienthard
- Safe data for client componentshard
- CSRF protection for Server Actionshard
- ISR across several containershard
- Using an external image CDNhard
- Choosing a runtimehard
- Large next/font downloadshard
- Sharing cache in Kuberneteshard
- Streaming an AI answerhard
- Lint step after upgradinghard
- Upgrade breaks params accesshard
- Catching broken links at buildhard
- Unstyled site in Dockerhard
- Server env change not picked uphard
- Long report times outhard
- Pages Router fallback: blockinghard