<!DOCTYPE html><html data-dpl-id="dpl_8XpHoUqA69wbKpEXMTopKJG9vSkL" class="geist_mono_98cac566-module__bcNCwW__className geistsans_d5a4f12f-module__0YjCsW__className geist_mono_98cac566-module__bcNCwW__variable geistsans_d5a4f12f-module__0YjCsW__variable" lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/_next/static/immutable/media/logo-github-light.3dl3lqjq1azpp.svg"/><link rel="preload" as="image" href="/_next/static/immutable/media/logo-github-dark.1k-70sin_m3qn.svg"/><link rel="preload" as="image" href="/_next/static/immutable/media/logo-twitter-x-light.0dvkch_c5dvys.svg"/><link rel="preload" as="image" href="/_next/static/immutable/media/logo-twitter-x-dark.1-i769nzu94hl.svg"/><link rel="preload" as="image" href="/_next/static/immutable/media/logo-bluesky-light.2may7hm2y7g6v.svg"/><link rel="preload" as="image" href="/_next/static/immutable/media/logo-bluesky-dark.39tbulfg2p-1z.svg"/><link rel="stylesheet" href="/_next/static/immutable/chunks/2etu-eo_a7a99.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/immutable/chunks/3zlwhcx-a_s0h.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/immutable/chunks/3oe7kkt-ckh2k.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/immutable/chunks/3hcatbgun-7ra.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/immutable/chunks/1jpqmfbk-7fan.js"/><script src="/_next/static/immutable/chunks/0gzybr1chkt0v.js" async=""></script><script src="/_next/static/immutable/chunks/2ss3qriheaadr.js" async=""></script><script src="/_next/static/immutable/chunks/1qccouy73_7us.js" async=""></script><script src="/_next/static/immutable/chunks/1r02ks-yb1298.js" async=""></script><script src="/_next/static/immutable/chunks/turbopack-1uwgc2602p264.js" async=""></script><script src="/_next/static/immutable/chunks/3o1b2g318vnd5.js" async="" crossorigin=""></script><script src="/_next/static/immutable/chunks/3-xbnqwdof97w.js" async="" crossorigin=""></script><script src="/_next/static/immutable/chunks/2-a1hmzk-75lr.js" async="" crossorigin=""></script><script src="/_next/static/immutable/chunks/3h_--a7n6mhg2.js" async="" crossorigin=""></script><script src="/_next/static/immutable/chunks/35je9r863h9cv.js" async="" crossorigin=""></script><script src="/_next/static/immutable/chunks/2pnkq_r618ks5.js" async="" crossorigin=""></script><script src="/_next/static/immutable/chunks/16yu5hnhikfuz.js" async="" crossorigin=""></script><script src="/_next/static/immutable/chunks/36wnellv-yn9q.js" async="" crossorigin=""></script><script src="/_next/static/immutable/chunks/3guzb37x90yip.js" async="" crossorigin=""></script><script src="/_next/static/immutable/chunks/41mpz_qh0bqa2.js" async="" crossorigin=""></script><script src="/_next/static/immutable/chunks/18ghicl887xer.js" async="" crossorigin=""></script><script src="/_next/static/immutable/chunks/1uzi8jlkt-gh8.js" async="" crossorigin=""></script><script src="/_next/static/immutable/chunks/435c4wla8qiy-.js" async="" crossorigin=""></script><script src="/_next/static/immutable/chunks/2_iknkx9ax7s1.js" async="" crossorigin=""></script><script src="/_next/static/immutable/chunks/33h268ieyla48.js" async="" crossorigin=""></script><script src="/_next/static/immutable/chunks/2rrj9zsrpzi4o.js" async="" crossorigin=""></script><script src="/_next/static/immutable/chunks/3_xgjnhjj5nm_.js" async="" crossorigin=""></script><script src="/_next/static/immutable/chunks/2k_16qb116v9d.js" async="" crossorigin=""></script><script src="/_next/static/immutable/chunks/34czdxd89m8hc.js" async="" crossorigin=""></script><meta name="next-size-adjust" content=""/><title>Next.js Docs | Next.js</title><meta name="description" content="Welcome to the Next.js Documentation."/><link rel="canonical" href="https://nextjs.org/docs"/><meta property="og:title" content="Next.js Docs | Next.js"/><meta property="og:description" content="Welcome to the Next.js Documentation."/><meta property="og:image" content="https://nextjs.org/api/docs-og?title=Next.js%20Docs&amp;sig=10b5e00dde2672ad"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Next.js Docs"/><meta name="twitter:description" content="Welcome to the Next.js Documentation."/><meta name="twitter:image" content="https://nextjs.org/api/docs-og?title=Next.js%20Docs&amp;sig=10b5e00dde2672ad"/><link rel="icon" href="/favicon.ico?favicon.38folom4sz_yx.ico" sizes="48x48" type="image/x-icon"/><script id="theme-script">((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f?.[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","zeit-theme","system",null,["light","dark"],{"light":"light-theme","dark":"dark-theme"},true,true)</script><script src="/_next/static/immutable/chunks/0c0hxoamwjsbw.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><!--&--><!--$--><!--/$--><!--$?--><template id="B:0"></template><!--/$--><!--$--><!--$?--><template id="B:2"></template><!--/$--><!--/$--><header class="bg-background-100 flex translate-z-0 z-1000 flex-col justify-around items-center w-full h-full ring-1 py-4 ring-gray-alpha-400 px-6 sticky top-0"><a data-testid="geistcn/skip-nav-link" class="fixed -m-px overflow-hidden whitespace-nowrap border-0 top-16 left-12 z-[1000] flex items-center outline-none text-[var(--geist-link-color)] px-1 py-0 bg-[var(--geist-background)] shadow-[0_0_0_2px_var(--geist-background),0_0_0_4px_var(--geist-link-color)] rounded-[var(--geist-radius)] opacity-0 pointer-events-none focus:opacity-100 focus:[pointer-events:_all]" href="#geist-skip-nav" tabindex="0">Skip to content</a><nav class="navbar-module__cV3TuW__nav"><div class="navbar-module__cV3TuW__mobileTop"><div class="flex flex-row items-center justify-start gap-1 flex-initial"><a rel="noopener noreferrer" target="_blank" data-testid="navbar/vercel-logo" href="https://vercel.com/home?utm_source=next-site&amp;utm_medium=banner&amp;utm_campaign=docs" aria-label="Go to Vercel homepage" title="Go to Vercel homepage"><img alt="Vercel" data-slot="geist-logo" loading="eager" width="25" height="22" decoding="async" data-nimg="1" class="geist-hide-on-dark" style="color:transparent" src="/_next/static/immutable/media/vercel-light.3_gxxexgi1nmy.svg"/><img alt="Vercel" data-slot="geist-logo" loading="eager" width="25" height="22" decoding="async" data-nimg="1" class="geist-hide-on-light" style="color:transparent" src="/_next/static/immutable/media/vercel-dark.1f3cgy23m5_jy.svg"/></a><svg height="32" viewBox="0 0 32 32" width="32"><path d="M22 5L9 28" stroke="var(--accents-2)" stroke-linecap="round" stroke-linejoin="round"></path></svg><a class="navbar-module__cV3TuW__mobileLogo" title="Go to the homepage" data-zone="same" href="/"><img alt="NextjsLogotype" data-slot="geist-logo" loading="eager" width="89" height="18" decoding="async" data-nimg="1" class="geist-hide-on-dark" style="color:transparent" src="/_next/static/immutable/media/nextjs-logotype-light.00-_80jv8_dct.svg"/><img alt="NextjsLogotype" data-slot="geist-logo" loading="eager" width="89" height="18" decoding="async" data-nimg="1" class="geist-hide-on-light" style="color:transparent" src="/_next/static/immutable/media/nextjs-logotype-dark.3h4a2z2v_dkod.svg"/></a></div><div class="navbar-module__cV3TuW__mobileTopRight"><button class="navbar-module__cV3TuW__search" data-variant="large" type="button">Search documentation...<kbd>⌘K</kbd><script type="text/javascript">{var s=document.currentScript,n=s&&s.previousElementSibling;if(n)n.textContent=/^Mac/.test(navigator.platform)?"⌘K":"CtrlK"}</script></button><button class="navbar-module__cV3TuW__search" data-variant="medium" type="button">Search...<kbd>⌘K</kbd><script type="text/javascript">{var s=document.currentScript,n=s&&s.previousElementSibling;if(n)n.textContent=/^Mac/.test(navigator.platform)?"⌘K":"CtrlK"}</script></button><button aria-label="Search documentation" class="navbar-module__cV3TuW__search" data-variant="small" type="button"><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="M1.5 6.5a5 5 0 1 1 10 0 5 5 0 0 1-10 0m5-6.5a6.5 6.5 0 1 0 4.04 11.6l3.43 3.43.53.53 1.06-1.06-.53-.53-3.43-3.43A6.5 6.5 0 0 0 6.5 0" clip-rule="evenodd"></path></svg></button><button aria-label="open menu" class="navbar-module__cV3TuW__menuButton" type="button"><div class="menu-toggle-module__wBGbpa__wrap "></div></button></div></div><div class="navbar-module__cV3TuW__links"><div class="flex flex-row items-center justify-start gap-1 flex-initial"><a rel="noopener noreferrer" target="_blank" data-testid="navbar/vercel-logo" href="https://vercel.com/home?utm_source=next-site&amp;utm_medium=banner&amp;utm_campaign=docs" aria-label="Go to Vercel homepage" title="Go to Vercel homepage"><img alt="Vercel" data-slot="geist-logo" loading="eager" width="25" height="22" decoding="async" data-nimg="1" class="geist-hide-on-dark" style="color:transparent" src="/_next/static/immutable/media/vercel-light.3_gxxexgi1nmy.svg"/><img alt="Vercel" data-slot="geist-logo" loading="eager" width="25" height="22" decoding="async" data-nimg="1" class="geist-hide-on-light" style="color:transparent" src="/_next/static/immutable/media/vercel-dark.1f3cgy23m5_jy.svg"/></a><svg height="32" viewBox="0 0 32 32" width="32"><path d="M22 5L9 28" stroke="var(--accents-2)" stroke-linecap="round" stroke-linejoin="round"></path></svg><a aria-label="Go to the homepage" class="navbar-module__cV3TuW__logo" title="Go to the homepage" data-state="closed" style="-webkit-touch-callout:none" data-zone="same" href="/"><img alt="NextjsLogotype" data-slot="geist-logo" loading="eager" width="89" height="18" decoding="async" data-nimg="1" class="geist-hide-on-dark" style="color:transparent" src="/_next/static/immutable/media/nextjs-logotype-light.00-_80jv8_dct.svg"/><img alt="NextjsLogotype" data-slot="geist-logo" loading="eager" width="89" height="18" decoding="async" data-nimg="1" class="geist-hide-on-light" style="color:transparent" src="/_next/static/immutable/media/nextjs-logotype-dark.3h4a2z2v_dkod.svg"/></a></div><a class="" data-zone="same" href="/showcase">Showcase</a><a class="navbar-module__cV3TuW__selected" title="Documentation" data-zone="same" href="/docs">Docs</a><a class="" data-zone="same" href="/blog">Blog</a><a rel="noopener noreferrer" target="_blank" href="https://vercel.com/templates/next.js?utm_source=next-site&amp;utm_medium=navbar&amp;utm_campaign=next_site_nav_templates">Templates<svg aria-hidden="true" class="navbar-module__cV3TuW__externalArrow" height="7" viewBox="0 0 6 6" width="7"><path d="M1.25215 5.54731L0.622742 4.9179L3.78169 1.75597H1.3834L1.38936 0.890915H5.27615V4.78069H4.40513L4.41109 2.38538L1.25215 5.54731Z" fill="var(--accents-3)"></path></svg></a><a rel="noopener noreferrer" target="_blank" href="https://vercel.com/contact/sales/nextjs?utm_source=next-site&amp;utm_medium=navbar&amp;utm_campaign=next_site_nav_enterprise">Enterprise<svg aria-hidden="true" class="navbar-module__cV3TuW__externalArrow" height="7" viewBox="0 0 6 6" width="7"><path d="M1.25215 5.54731L0.622742 4.9179L3.78169 1.75597H1.3834L1.38936 0.890915H5.27615V4.78069H4.40513L4.41109 2.38538L1.25215 5.54731Z" fill="var(--accents-3)"></path></svg></a></div><div class="navbar-module__cV3TuW__headerButtons"><button class="navbar-module__cV3TuW__search" data-variant="large" type="button">Search documentation...<kbd>⌘K</kbd><script type="text/javascript">{var s=document.currentScript,n=s&&s.previousElementSibling;if(n)n.textContent=/^Mac/.test(navigator.platform)?"⌘K":"CtrlK"}</script></button><button class="navbar-module__cV3TuW__search" data-variant="medium" type="button">Search...<kbd>⌘K</kbd><script type="text/javascript">{var s=document.currentScript,n=s&&s.previousElementSibling;if(n)n.textContent=/^Mac/.test(navigator.platform)?"⌘K":"CtrlK"}</script></button><button aria-label="Search documentation" class="navbar-module__cV3TuW__search" data-variant="small" type="button"><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="M1.5 6.5a5 5 0 1 1 10 0 5 5 0 0 1-10 0m5-6.5a6.5 6.5 0 1 0 4.04 11.6l3.43 3.43.53.53 1.06-1.06-.53-.53-3.43-3.43A6.5 6.5 0 0 0 6.5 0" clip-rule="evenodd"></path></svg></button><button type="submit" tabindex="0" data-react-aria-pressable="true" aria-haspopup="dialog" aria-expanded="false" aria-controls="radix-_R_6spaivb_" style="width:var(--navbar-secondary-button-width);--geist-icon-size:16px" data-state="closed" class="outline-none m-0 p-0 border-0 align-baseline no-underline group/trigger relative cursor-pointer select-none transform translate-z-0 flex text-[var(--themed-fg,_var(--ds-background-100))] bg-[var(--themed-bg,_var(--ds-gray-1000))] font-medium !px-(--geist-gap-half) max-w-full items-center justify-center transition-[border-color, background,color,transform,box-shadow] duration-[time:150ms] ease-in-out data-[focus]:shadow-[var(--ds-focus-ring)] [&amp;_svg]:shrink-0 disabled:cursor-not-allowed aria-disabled:cursor-not-allowed disabled:text-[var(--ds-gray-700)] disabled:bg-[var(--ds-gray-100)] aria-disabled:text-[var(--ds-gray-700)] aria-disabled:bg-[var(--ds-gray-100)] disabled:![--themed-border:_var(--ds-gray-400)] [--x-padding:6px] [--height:32px] !pl-[var(--x-padding)] !pr-[var(--x-padding)] rounded-md [--themed-bg:_var(--ds-background-100)] shadow-[0_0_0_1px_var(--themed-border,_transparent)] [--themed-hover-bg:_var(--ds-gray-alpha-200)] [--themed-fg:_var(--ds-gray-1000)] [--themed-border:_var(--ds-gray-400)] data-[focus]:shadow-[0_0_0_1px_var(--themed-border,_transparent),0_0_0_2px_var(--ds-background-100),0_0_0_4px_var(--ds-focus-color)] data-[focus]:transition-none text-(length:--geist-form-small-font) [--spinner-size:16px] h-[var(--height)] data-hover:bg-[var(--ds-gray-100)] dark-theme:data-hover:bg-[var(--ds-gray-200)] data-hover:text-[var(--themed-fg)] data-hover:disabled:bg-[var(--ds-gray-100)]" data-geist-button="" data-prefix="false" data-suffix="false" data-version="v1"><span class="truncate inline-block px-1.5">Feedback</span></button><a role="link" type="submit" tabindex="0" data-react-aria-pressable="true" class="outline-none m-0 p-0 border-0 align-baseline no-underline group/trigger relative cursor-pointer select-none transform translate-z-0 flex text-[var(--themed-fg,_var(--ds-background-100))] bg-[var(--themed-bg,_var(--ds-gray-1000))] font-medium !px-(--geist-gap-half) max-w-full items-center justify-center transition-[border-color, background,color,transform,box-shadow] duration-[time:150ms] ease-in-out data-[focus]:transition-none data-[focus]:shadow-[var(--ds-focus-ring)] [&amp;_svg]:shrink-0 disabled:cursor-not-allowed aria-disabled:cursor-not-allowed disabled:text-[var(--ds-gray-700)] disabled:bg-[var(--ds-gray-100)] aria-disabled:text-[var(--ds-gray-700)] aria-disabled:bg-[var(--ds-gray-100)] disabled:![--themed-border:_var(--ds-gray-400)] [--x-padding:6px] [--height:32px] !pl-[var(--x-padding)] !pr-[var(--x-padding)] geist-new-themed geist-new-default geist-new-default-fill rounded-md text-(length:--geist-form-small-font) [--spinner-size:16px] h-[var(--height)] data-hover:bg-[var(--themed-hover-bg,_hsl(0,_0%,_22%))] dark-theme:data-hover:bg-[var(--themed-hover-bg,_hsl(0,_0%,_80%))] data-hover:[--themed-border:var(--themed-hover-bg,_var(--ds-gray-200))] data-hover:disabled:bg-[var(--ds-gray-100)]" data-geist-button="" data-prefix="false" data-suffix="false" data-version="v1" style="--geist-icon-size:16px" href="/learn"><span class="truncate inline-block px-1.5">Learn</span></a></div></nav></header><!--$--><!--/$--><main><!--&--><div class="sticky top-16 bg-background-200 z-30 border-b border-gray-200 px-4 py-3 md:hidden"><div class="flex flex-col justify-between"><button class="flex items-center gap-1 py-1" type="button"><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="m5.5 1.94.53.53 4.82 4.82a1 1 0 0 1 0 1.42l-4.82 4.82-.53.53L4.44 13l.53-.53L9.44 8 4.97 3.53 4.44 3z" clip-rule="evenodd"></path></svg> <span>Menu</span></button></div></div><div class="px-6"><div class="relative mx-auto max-w-(--ds-page-width) py-10 md:flex md:flex-row"><div class="sticky top-[121px] hidden h-[calc(100vh-121px)] w-[284px] md:flex md:shrink-0 md:flex-col md:justify-between"><div class="pb-px"><button type="button" role="combobox" aria-controls="radix-_R_2miubaaivb_" aria-expanded="false" aria-autocomplete="none" dir="ltr" data-state="closed" aria-label="Open directory select" class="hover:bg-background-200 data-[state=open]:bg-background-100 pointer-events-auto! h-[60px] w-full rounded-md p-2 dark-theme:hover:bg-gray-200"><span style="pointer-events:none"><div class="grid grid-cols-[auto_1fr_auto] items-center gap-2"><div class="w-8 h-8 rounded-md border flex items-center justify-center border-blue-400 bg-blue-100 text-blue-700"><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" d="m8.35.34 6.25 3.25.4.2v8.42l-.4.2-6.25 3.26-.35.18-.35-.18-6.25-3.25-.4-.21V3.8l.4-.21L7.65.34 8 .15zM2.5 11.3l4.75 2.46V7.81L2.5 5.44zM8.75 7.8v5.95l4.75-2.46V5.44zM3.42 4.22 8 6.52l4.58-2.3L8 1.85z"></path></svg></div><div class="text-left"><p class="text-[14px] leading-[20px] font-medium">Using App Router</p><p class="text-label-12 text-gray-900">Features available in /app</p></div><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor" aria-hidden="true"><path fill="currentColor" fill-rule="evenodd" d="M8.7 2.4a1 1 0 0 0-1.4 0L4.46 5.22l-.53.53L5 6.81l.53-.53L8 3.81l2.47 2.47.53.53 1.06-1.06-.53-.53zM5.54 9.72 5 9.19l-1.06 1.06.53.53 2.82 2.82a1 1 0 0 0 1.42 0l2.82-2.82.53-.53L11 9.19l-.53.53L8 12.19z" clip-rule="evenodd"></path></svg></div></span></button><select aria-hidden="true" tabindex="-1" style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal"></select><button type="button" role="combobox" aria-controls="radix-_R_4miubaaivb_" aria-expanded="false" aria-autocomplete="none" dir="ltr" data-state="closed" aria-label="Open version select" class="hover:bg-background-200 data-[state=open]:bg-background-100 pointer-events-auto! h-[60px] w-full rounded-md p-2 dark-theme:hover:bg-gray-200"><span style="pointer-events:none"><div class="grid grid-cols-[auto_1fr_auto] items-center gap-2"><div class="w-8 h-8 rounded-md border flex items-center justify-center bg-blue-100 border-blue-400 text-blue-700"><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="M1.5 1.5h4.84c.67 0 1.3.26 1.77.73L13.88 8 8 13.88 2.23 8.1a2.5 2.5 0 0 1-.73-1.77zM16 8l-1.06-1.06-5.77-5.77A4 4 0 0 0 6.34 0H0v6.34a4 4 0 0 0 1.17 2.83l5.77 5.77L8 16l1.06-1.06 5.88-5.88zM4.5 5.25a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5" clip-rule="evenodd"></path></svg></div><div class="text-left"><p class="text-[14px] leading-[20px] font-medium">Latest Version</p><p class="text-label-12 text-gray-900">16.2.10</p></div><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor" aria-hidden="true"><path fill="currentColor" fill-rule="evenodd" d="M8.7 2.4a1 1 0 0 0-1.4 0L4.46 5.22l-.53.53L5 6.81l.53-.53L8 3.81l2.47 2.47.53.53 1.06-1.06-.53-.53zM5.54 9.72 5 9.19l-1.06 1.06.53.53 2.82 2.82a1 1 0 0 0 1.42 0l2.82-2.82.53-.53L11 9.19l-.53.53L8 12.19z" clip-rule="evenodd"></path></svg></div></span></button><select aria-hidden="true" tabindex="-1" style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal"></select></div><div class="overflow-hidden relative"><nav class="styled-scrollbar flex h-[calc(100vh-260px)] flex-col overflow-y-scroll pb-4 pr-2 dark-theme:text-white"><div aria-hidden="true" class="absolute top-0 left-0 z-10 w-full h-3 bg-linear-to-b pointer-events-none from-gray-0"></div><div aria-hidden="true" class="absolute bottom-0 left-0 z-10 w-full h-3 bg-linear-to-t pointer-events-none from-gray-0"></div><ul class="last-of-type:pb-3"><li class="my-1.5 ml-[3px]" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-1000 font-medium" href="/docs/app/getting-started"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Getting Started</span></div></a><div data-is-collapsed="false" class="overflow-hidden grid" style="opacity:1;grid-template-rows:1fr"><div class="relative overflow-hidden"><ul class="px-0.5 last-of-type:mb-0 mb-8"><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/getting-started/installation"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Installation</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/getting-started/project-structure"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Project Structure</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/getting-started/layouts-and-pages"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Layouts and Pages</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/getting-started/linking-and-navigating"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Linking and Navigating</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/getting-started/server-and-client-components"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Server and Client Components</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/getting-started/fetching-data"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Fetching Data</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/getting-started/mutating-data"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Mutating Data</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/getting-started/caching"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Caching</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/getting-started/revalidating"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Revalidating</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/getting-started/error-handling"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Error Handling</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/getting-started/css"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">CSS</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/getting-started/images"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Image Optimization</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/getting-started/fonts"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Font Optimization</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/getting-started/metadata-and-og-images"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Metadata and OG images</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/getting-started/route-handlers"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Route Handlers</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/getting-started/proxy"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Proxy</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/getting-started/deploying"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Deploying</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/getting-started/upgrading"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Upgrading</span></div></a></li></ul><div aria-hidden="true" class="from-gray-0 pointer-events-none absolute bottom-0 left-0 z-10 h-[6px] w-full bg-linear-to-t"></div></div></div></li></ul><ul class="last-of-type:pb-3"><li class="my-1.5 ml-[3px]" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-1000 font-medium" href="/docs/app/guides"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Guides</span></div><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="m5.5 1.94.53.53 4.82 4.82a1 1 0 0 1 0 1.42l-4.82 4.82-.53.53L4.44 13l.53-.53L9.44 8 4.97 3.53 4.44 3z" clip-rule="evenodd"></path></svg></a><div data-is-collapsed="true" class="overflow-hidden grid" style="opacity:0;grid-template-rows:0fr"><div class="relative overflow-hidden"><ul class="px-0.5 last-of-type:mb-0 mb-8"><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/ai-agents"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">AI Coding Agents</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/analytics"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Analytics</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/authentication"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Authentication</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/backend-for-frontend"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Backend for Frontend</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/caching-without-cache-components"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Caching (Previous Model)</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/cdn-caching"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">CDN Caching</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/ci-build-caching"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">CI Build Caching</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/content-security-policy"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Content Security Policy</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/css-in-js"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">CSS-in-JS</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/custom-server"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Custom Server</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/data-security"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Data Security</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/debugging"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Debugging</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/deploying-to-platforms"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Deploying to Platforms</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/draft-mode"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Draft Mode</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/environment-variables"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Environment Variables</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/forms"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Forms</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/how-revalidation-works"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">How Revalidation Works</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/incremental-static-regeneration"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">ISR</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/instrumentation"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Instrumentation</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/internationalization"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Internationalization</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/json-ld"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">JSON-LD</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/lazy-loading"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Lazy Loading</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/local-development"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Development Environment</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/mcp"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Next.js MCP Server</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/mdx"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">MDX</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/memory-usage"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Memory Usage</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/migrating"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Migrating</span></div><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="m5.5 1.94.53.53 4.82 4.82a1 1 0 0 1 0 1.42l-4.82 4.82-.53.53L4.44 13l.53-.53L9.44 8 4.97 3.53 4.44 3z" clip-rule="evenodd"></path></svg></a><div data-is-collapsed="true" class="overflow-hidden grid" style="opacity:0;grid-template-rows:0fr"><div class="relative overflow-hidden"><ul class="px-0.5 last-of-type:mb-0 border-l border-gray-200 pl-3 dark-theme:border-gray-300 pr-0 ml-4"><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/migrating/app-router-migration"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">App Router</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/migrating/from-create-react-app"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Create React App</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/migrating/from-vite"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Vite</span></div></a></li></ul><div aria-hidden="true" class="from-gray-0 pointer-events-none absolute bottom-0 left-0 z-10 h-[6px] w-full bg-linear-to-t"></div></div></div></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/migrating-to-cache-components"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Migrating to Cache Components</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/multi-tenant"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Multi-tenant</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/multi-zones"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Multi-zones</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/open-telemetry"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">OpenTelemetry</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/package-bundling"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Package Bundling</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/ppr-platform-guide"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">PPR Platform Guide</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/prefetching"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Prefetching</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/preserving-ui-state"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Preserving UI state</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/preventing-flash-before-hydration"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Preventing Flash</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/production-checklist"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Production</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/progressive-web-apps"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">PWAs</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/public-static-pages"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Public pages</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/redirecting"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Redirecting</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/rendering-philosophy"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Rendering Philosophy</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/sass"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Sass</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/scripts"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Scripts</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/self-hosting"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Self-Hosting</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/server-actions"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Server Actions</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/single-page-applications"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">SPAs</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/static-exports"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Static Exports</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/streaming"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Streaming</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/tailwind-v3-css"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Tailwind CSS v3</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/testing"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Testing</span></div><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="m5.5 1.94.53.53 4.82 4.82a1 1 0 0 1 0 1.42l-4.82 4.82-.53.53L4.44 13l.53-.53L9.44 8 4.97 3.53 4.44 3z" clip-rule="evenodd"></path></svg></a><div data-is-collapsed="true" class="overflow-hidden grid" style="opacity:0;grid-template-rows:0fr"><div class="relative overflow-hidden"><ul class="px-0.5 last-of-type:mb-0 border-l border-gray-200 pl-3 dark-theme:border-gray-300 pr-0 ml-4"><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/testing/cypress"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Cypress</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/testing/jest"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Jest</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/testing/playwright"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Playwright</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/testing/vitest"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Vitest</span></div></a></li></ul><div aria-hidden="true" class="from-gray-0 pointer-events-none absolute bottom-0 left-0 z-10 h-[6px] w-full bg-linear-to-t"></div></div></div></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/third-party-libraries"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Third Party Libraries</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/upgrading"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Upgrading</span></div><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="m5.5 1.94.53.53 4.82 4.82a1 1 0 0 1 0 1.42l-4.82 4.82-.53.53L4.44 13l.53-.53L9.44 8 4.97 3.53 4.44 3z" clip-rule="evenodd"></path></svg></a><div data-is-collapsed="true" class="overflow-hidden grid" style="opacity:0;grid-template-rows:0fr"><div class="relative overflow-hidden"><ul class="px-0.5 last-of-type:mb-0 border-l border-gray-200 pl-3 dark-theme:border-gray-300 pr-0 ml-4"><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/upgrading/codemods"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Codemods</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/upgrading/version-14"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Version 14</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/upgrading/version-15"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Version 15</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/upgrading/version-16"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Version 16</span></div></a></li></ul><div aria-hidden="true" class="from-gray-0 pointer-events-none absolute bottom-0 left-0 z-10 h-[6px] w-full bg-linear-to-t"></div></div></div></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/videos"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Videos</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/guides/view-transitions"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">View transitions</span></div></a></li></ul><div aria-hidden="true" class="from-gray-0 pointer-events-none absolute bottom-0 left-0 z-10 h-[6px] w-full bg-linear-to-t"></div></div></div></li></ul><ul class="last-of-type:pb-3"><li class="my-1.5 ml-[3px]" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-1000 font-medium" href="/docs/app/api-reference"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">API Reference</span></div></a><div data-is-collapsed="false" class="overflow-hidden grid" style="opacity:1;grid-template-rows:1fr"><div class="relative overflow-hidden"><ul class="px-0.5 last-of-type:mb-0 mb-8"><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/directives"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Directives</span></div><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="m5.5 1.94.53.53 4.82 4.82a1 1 0 0 1 0 1.42l-4.82 4.82-.53.53L4.44 13l.53-.53L9.44 8 4.97 3.53 4.44 3z" clip-rule="evenodd"></path></svg></a><div data-is-collapsed="true" class="overflow-hidden grid" style="opacity:0;grid-template-rows:0fr"><div class="relative overflow-hidden"><ul class="px-0.5 last-of-type:mb-0 border-l border-gray-200 pl-3 dark-theme:border-gray-300 pr-0 ml-4"><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/directives/use-cache"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">use cache</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/directives/use-cache-private"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">use cache: private</span><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="M9 7.67V2.5H7v5.17l-.5.45L4.38 10h7.24L9.5 8.12zM5.5 2.5H4V1h8v1.5h-1.5V7l3.57 3.18A2.76 2.76 0 0 1 12.24 15H3.76a2.76 2.76 0 0 1-1.83-4.82L5.5 7zm-3 9.74q0-.41.24-.74h10.52a1.26 1.26 0 0 1-1.02 2H3.76c-.7 0-1.26-.56-1.26-1.26" clip-rule="evenodd"></path></svg></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/directives/use-cache-remote"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">use cache: remote</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/directives/use-client"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">use client</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/directives/use-server"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">use server</span></div></a></li></ul><div aria-hidden="true" class="from-gray-0 pointer-events-none absolute bottom-0 left-0 z-10 h-[6px] w-full bg-linear-to-t"></div></div></div></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/components"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Components</span></div><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="m5.5 1.94.53.53 4.82 4.82a1 1 0 0 1 0 1.42l-4.82 4.82-.53.53L4.44 13l.53-.53L9.44 8 4.97 3.53 4.44 3z" clip-rule="evenodd"></path></svg></a><div data-is-collapsed="true" class="overflow-hidden grid" style="opacity:0;grid-template-rows:0fr"><div class="relative overflow-hidden"><ul class="px-0.5 last-of-type:mb-0 border-l border-gray-200 pl-3 dark-theme:border-gray-300 pr-0 ml-4"><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/components/font"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Font</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/components/form"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Form Component</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/components/image"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Image Component</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/components/link"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Link Component</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/components/script"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Script Component</span></div></a></li></ul><div aria-hidden="true" class="from-gray-0 pointer-events-none absolute bottom-0 left-0 z-10 h-[6px] w-full bg-linear-to-t"></div></div></div></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/file-conventions"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">File-system conventions</span></div><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="m5.5 1.94.53.53 4.82 4.82a1 1 0 0 1 0 1.42l-4.82 4.82-.53.53L4.44 13l.53-.53L9.44 8 4.97 3.53 4.44 3z" clip-rule="evenodd"></path></svg></a><div data-is-collapsed="true" class="overflow-hidden grid" style="opacity:0;grid-template-rows:0fr"><div class="relative overflow-hidden"><ul class="px-0.5 last-of-type:mb-0 border-l border-gray-200 pl-3 dark-theme:border-gray-300 pr-0 ml-4"><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/file-conventions/default"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">default.js</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/file-conventions/dynamic-routes"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Dynamic Segments</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/file-conventions/error"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">error.js</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/file-conventions/forbidden"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">forbidden.js</span><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="M9 7.67V2.5H7v5.17l-.5.45L4.38 10h7.24L9.5 8.12zM5.5 2.5H4V1h8v1.5h-1.5V7l3.57 3.18A2.76 2.76 0 0 1 12.24 15H3.76a2.76 2.76 0 0 1-1.83-4.82L5.5 7zm-3 9.74q0-.41.24-.74h10.52a1.26 1.26 0 0 1-1.02 2H3.76c-.7 0-1.26-.56-1.26-1.26" clip-rule="evenodd"></path></svg></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/file-conventions/instrumentation"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">instrumentation.js</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/file-conventions/instrumentation-client"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">instrumentation-client.js</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/file-conventions/intercepting-routes"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Intercepting Routes</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/file-conventions/layout"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">layout.js</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/file-conventions/loading"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">loading.js</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/file-conventions/mdx-components"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">mdx-components.js</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/file-conventions/not-found"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">not-found.js</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/file-conventions/page"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">page.js</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/file-conventions/parallel-routes"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Parallel Routes</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/file-conventions/proxy"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">proxy.js</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/file-conventions/public-folder"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">public</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/file-conventions/route"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">route.js</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/file-conventions/route-groups"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Route Groups</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/file-conventions/src-folder"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">src</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/file-conventions/template"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">template.js</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/file-conventions/unauthorized"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">unauthorized.js</span><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="M9 7.67V2.5H7v5.17l-.5.45L4.38 10h7.24L9.5 8.12zM5.5 2.5H4V1h8v1.5h-1.5V7l3.57 3.18A2.76 2.76 0 0 1 12.24 15H3.76a2.76 2.76 0 0 1-1.83-4.82L5.5 7zm-3 9.74q0-.41.24-.74h10.52a1.26 1.26 0 0 1-1.02 2H3.76c-.7 0-1.26-.56-1.26-1.26" clip-rule="evenodd"></path></svg></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/file-conventions/metadata"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Metadata Files</span></div><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="m5.5 1.94.53.53 4.82 4.82a1 1 0 0 1 0 1.42l-4.82 4.82-.53.53L4.44 13l.53-.53L9.44 8 4.97 3.53 4.44 3z" clip-rule="evenodd"></path></svg></a><div data-is-collapsed="true" class="overflow-hidden grid" style="opacity:0;grid-template-rows:0fr"><div class="relative overflow-hidden"><ul class="px-0.5 last-of-type:mb-0 border-l border-gray-200 pl-3 dark-theme:border-gray-300 pr-0 ml-6"><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/file-conventions/metadata/app-icons"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">favicon, icon, and apple-icon</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/file-conventions/metadata/manifest"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">manifest.json</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/file-conventions/metadata/opengraph-image"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">opengraph-image and twitter-image</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/file-conventions/metadata/robots"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">robots.txt</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/file-conventions/metadata/sitemap"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">sitemap.xml</span></div></a></li></ul><div aria-hidden="true" class="from-gray-0 pointer-events-none absolute bottom-0 left-0 z-10 h-[6px] w-full bg-linear-to-t"></div></div></div></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/file-conventions/route-segment-config"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Route Segment Config</span></div><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="m5.5 1.94.53.53 4.82 4.82a1 1 0 0 1 0 1.42l-4.82 4.82-.53.53L4.44 13l.53-.53L9.44 8 4.97 3.53 4.44 3z" clip-rule="evenodd"></path></svg></a><div data-is-collapsed="true" class="overflow-hidden grid" style="opacity:0;grid-template-rows:0fr"><div class="relative overflow-hidden"><ul class="px-0.5 last-of-type:mb-0 border-l border-gray-200 pl-3 dark-theme:border-gray-300 pr-0 ml-6"><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/file-conventions/route-segment-config/dynamicParams"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">dynamicParams</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/file-conventions/route-segment-config/maxDuration"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">maxDuration</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/file-conventions/route-segment-config/preferredRegion"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">preferredRegion</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/file-conventions/route-segment-config/runtime"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">runtime</span></div></a></li></ul><div aria-hidden="true" class="from-gray-0 pointer-events-none absolute bottom-0 left-0 z-10 h-[6px] w-full bg-linear-to-t"></div></div></div></li></ul><div aria-hidden="true" class="from-gray-0 pointer-events-none absolute bottom-0 left-0 z-10 h-[6px] w-full bg-linear-to-t"></div></div></div></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Functions</span></div><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="m5.5 1.94.53.53 4.82 4.82a1 1 0 0 1 0 1.42l-4.82 4.82-.53.53L4.44 13l.53-.53L9.44 8 4.97 3.53 4.44 3z" clip-rule="evenodd"></path></svg></a><div data-is-collapsed="true" class="overflow-hidden grid" style="opacity:0;grid-template-rows:0fr"><div class="relative overflow-hidden"><ul class="px-0.5 last-of-type:mb-0 border-l border-gray-200 pl-3 dark-theme:border-gray-300 pr-0 ml-4"><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/after"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">after</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/cacheLife"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">cacheLife</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/cacheTag"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">cacheTag</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/catchError"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">unstable_catchError</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/connection"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">connection</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/cookies"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">cookies</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/draft-mode"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">draftMode</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/fetch"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">fetch</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/forbidden"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">forbidden</span><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="M9 7.67V2.5H7v5.17l-.5.45L4.38 10h7.24L9.5 8.12zM5.5 2.5H4V1h8v1.5h-1.5V7l3.57 3.18A2.76 2.76 0 0 1 12.24 15H3.76a2.76 2.76 0 0 1-1.83-4.82L5.5 7zm-3 9.74q0-.41.24-.74h10.52a1.26 1.26 0 0 1-1.02 2H3.76c-.7 0-1.26-.56-1.26-1.26" clip-rule="evenodd"></path></svg></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/generate-image-metadata"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">generateImageMetadata</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/generate-metadata"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">generateMetadata</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/generate-sitemaps"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">generateSitemaps</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/generate-static-params"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">generateStaticParams</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/generate-viewport"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">generateViewport</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/headers"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">headers</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/image-response"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">ImageResponse</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/next-request"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">NextRequest</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/next-response"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">NextResponse</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/not-found"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">notFound</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/permanentRedirect"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">permanentRedirect</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/redirect"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">redirect</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/refresh"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">refresh</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/revalidatePath"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">revalidatePath</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/revalidateTag"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">revalidateTag</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/unauthorized"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">unauthorized</span><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="M9 7.67V2.5H7v5.17l-.5.45L4.38 10h7.24L9.5 8.12zM5.5 2.5H4V1h8v1.5h-1.5V7l3.57 3.18A2.76 2.76 0 0 1 12.24 15H3.76a2.76 2.76 0 0 1-1.83-4.82L5.5 7zm-3 9.74q0-.41.24-.74h10.52a1.26 1.26 0 0 1-1.02 2H3.76c-.7 0-1.26-.56-1.26-1.26" clip-rule="evenodd"></path></svg></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/unstable_cache"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">unstable_cache</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/unstable_noStore"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">unstable_noStore</span><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="M1.5 3.5h13v2h-13zM1 7H0V2h16v5h-1v5.5a2.5 2.5 0 0 1-2.5 2.5h-9A2.5 2.5 0 0 1 1 12.5zm1.5 0v5.5a1 1 0 0 0 1 1h9a1 1 0 0 0 1-1V7zM6 9.5h4V11H6z" clip-rule="evenodd"></path></svg></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/unstable_rethrow"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">unstable_rethrow</span><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="M9 7.67V2.5H7v5.17l-.5.45L4.38 10h7.24L9.5 8.12zM5.5 2.5H4V1h8v1.5h-1.5V7l3.57 3.18A2.76 2.76 0 0 1 12.24 15H3.76a2.76 2.76 0 0 1-1.83-4.82L5.5 7zm-3 9.74q0-.41.24-.74h10.52a1.26 1.26 0 0 1-1.02 2H3.76c-.7 0-1.26-.56-1.26-1.26" clip-rule="evenodd"></path></svg></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/updateTag"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">updateTag</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/use-link-status"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">useLinkStatus</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/use-params"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">useParams</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/use-pathname"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">usePathname</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/use-report-web-vitals"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">useReportWebVitals</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/use-router"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">useRouter</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/use-search-params"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">useSearchParams</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/use-selected-layout-segment"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">useSelectedLayoutSegment</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/use-selected-layout-segments"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">useSelectedLayoutSegments</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/functions/userAgent"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">userAgent</span></div></a></li></ul><div aria-hidden="true" class="from-gray-0 pointer-events-none absolute bottom-0 left-0 z-10 h-[6px] w-full bg-linear-to-t"></div></div></div></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Configuration</span></div><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="m5.5 1.94.53.53 4.82 4.82a1 1 0 0 1 0 1.42l-4.82 4.82-.53.53L4.44 13l.53-.53L9.44 8 4.97 3.53 4.44 3z" clip-rule="evenodd"></path></svg></a><div data-is-collapsed="true" class="overflow-hidden grid" style="opacity:0;grid-template-rows:0fr"><div class="relative overflow-hidden"><ul class="px-0.5 last-of-type:mb-0 border-l border-gray-200 pl-3 dark-theme:border-gray-300 pr-0 ml-4"><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">next.config.js</span></div><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="m5.5 1.94.53.53 4.82 4.82a1 1 0 0 1 0 1.42l-4.82 4.82-.53.53L4.44 13l.53-.53L9.44 8 4.97 3.53 4.44 3z" clip-rule="evenodd"></path></svg></a><div data-is-collapsed="true" class="overflow-hidden grid" style="opacity:0;grid-template-rows:0fr"><div class="relative overflow-hidden"><ul class="px-0.5 last-of-type:mb-0 border-l border-gray-200 pl-3 dark-theme:border-gray-300 pr-0 ml-6"><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/adapterPath"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">adapterPath</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/allowedDevOrigins"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">allowedDevOrigins</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/appDir"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">appDir</span><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="M1.5 3.5h13v2h-13zM1 7H0V2h16v5h-1v5.5a2.5 2.5 0 0 1-2.5 2.5h-9A2.5 2.5 0 0 1 1 12.5zm1.5 0v5.5a1 1 0 0 0 1 1h9a1 1 0 0 0 1-1V7zM6 9.5h4V11H6z" clip-rule="evenodd"></path></svg></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/assetPrefix"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">assetPrefix</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/authInterrupts"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">authInterrupts</span><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="m7.5 6.6-.44.43-2.75 2.75A4.7 4.7 0 0 0 8 11.5c2.61 0 4.5-1.91 4.5-4V4.98a2.5 2.5 0 0 0-5 .02v1.59M13.87 4A4 4 0 0 0 6 5v.97L.06 11.9l1.06 1.06 2.12-2.12A6.2 6.2 0 0 0 8 13v2h1.5v-2.17c2.59-.61 4.5-2.77 4.5-5.33V7l2-3zM10 6a1 1 0 1 0 0-2 1 1 0 0 0 0 2" clip-rule="evenodd"></path></svg></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/basePath"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">basePath</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/cacheComponents"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">cacheComponents</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/cacheHandlers"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">cacheHandlers</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/cacheLife"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">cacheLife</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/compress"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">compress</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/crossOrigin"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">crossOrigin</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/cssChunking"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">cssChunking</span><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="M9 7.67V2.5H7v5.17l-.5.45L4.38 10h7.24L9.5 8.12zM5.5 2.5H4V1h8v1.5h-1.5V7l3.57 3.18A2.76 2.76 0 0 1 12.24 15H3.76a2.76 2.76 0 0 1-1.83-4.82L5.5 7zm-3 9.74q0-.41.24-.74h10.52a1.26 1.26 0 0 1-1.02 2H3.76c-.7 0-1.26-.56-1.26-1.26" clip-rule="evenodd"></path></svg></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/deploymentId"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">deploymentId</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/devIndicators"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">devIndicators</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/distDir"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">distDir</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/env"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">env</span><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="M1.5 3.5h13v2h-13zM1 7H0V2h16v5h-1v5.5a2.5 2.5 0 0 1-2.5 2.5h-9A2.5 2.5 0 0 1 1 12.5zm1.5 0v5.5a1 1 0 0 0 1 1h9a1 1 0 0 0 1-1V7zM6 9.5h4V11H6z" clip-rule="evenodd"></path></svg></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/expireTime"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">expireTime</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/exportPathMap"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">exportPathMap</span><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="M1.5 3.5h13v2h-13zM1 7H0V2h16v5h-1v5.5a2.5 2.5 0 0 1-2.5 2.5h-9A2.5 2.5 0 0 1 1 12.5zm1.5 0v5.5a1 1 0 0 0 1 1h9a1 1 0 0 0 1-1V7zM6 9.5h4V11H6z" clip-rule="evenodd"></path></svg></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/generateBuildId"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">generateBuildId</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/generateEtags"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">generateEtags</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/headers"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">headers</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/htmlLimitedBots"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">htmlLimitedBots</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/httpAgentOptions"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">httpAgentOptions</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/images"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">images</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/incrementalCacheHandlerPath"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">cacheHandler</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/inlineCss"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">inlineCss</span><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="M9 7.67V2.5H7v5.17l-.5.45L4.38 10h7.24L9.5 8.12zM5.5 2.5H4V1h8v1.5h-1.5V7l3.57 3.18A2.76 2.76 0 0 1 12.24 15H3.76a2.76 2.76 0 0 1-1.83-4.82L5.5 7zm-3 9.74q0-.41.24-.74h10.52a1.26 1.26 0 0 1-1.02 2H3.76c-.7 0-1.26-.56-1.26-1.26" clip-rule="evenodd"></path></svg></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/logging"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">logging</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/mdxRs"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">mdxRs</span><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="M9 7.67V2.5H7v5.17l-.5.45L4.38 10h7.24L9.5 8.12zM5.5 2.5H4V1h8v1.5h-1.5V7l3.57 3.18A2.76 2.76 0 0 1 12.24 15H3.76a2.76 2.76 0 0 1-1.83-4.82L5.5 7zm-3 9.74q0-.41.24-.74h10.52a1.26 1.26 0 0 1-1.02 2H3.76c-.7 0-1.26-.56-1.26-1.26" clip-rule="evenodd"></path></svg></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/onDemandEntries"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">onDemandEntries</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/optimizePackageImports"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">optimizePackageImports</span><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="M9 7.67V2.5H7v5.17l-.5.45L4.38 10h7.24L9.5 8.12zM5.5 2.5H4V1h8v1.5h-1.5V7l3.57 3.18A2.76 2.76 0 0 1 12.24 15H3.76a2.76 2.76 0 0 1-1.83-4.82L5.5 7zm-3 9.74q0-.41.24-.74h10.52a1.26 1.26 0 0 1-1.02 2H3.76c-.7 0-1.26-.56-1.26-1.26" clip-rule="evenodd"></path></svg></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/output"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">output</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/pageExtensions"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">pageExtensions</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/poweredByHeader"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">poweredByHeader</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/productionBrowserSourceMaps"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">productionBrowserSourceMaps</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/proxyClientMaxBodySize"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">proxyClientMaxBodySize</span><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="M9 7.67V2.5H7v5.17l-.5.45L4.38 10h7.24L9.5 8.12zM5.5 2.5H4V1h8v1.5h-1.5V7l3.57 3.18A2.76 2.76 0 0 1 12.24 15H3.76a2.76 2.76 0 0 1-1.83-4.82L5.5 7zm-3 9.74q0-.41.24-.74h10.52a1.26 1.26 0 0 1-1.02 2H3.76c-.7 0-1.26-.56-1.26-1.26" clip-rule="evenodd"></path></svg></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/reactCompiler"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">reactCompiler</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/reactMaxHeadersLength"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">reactMaxHeadersLength</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/reactStrictMode"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">reactStrictMode</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/redirects"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">redirects</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/rewrites"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">rewrites</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/sassOptions"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">sassOptions</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/serverActions"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">serverActions</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/serverComponentsHmrCache"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">serverComponentsHmrCache</span><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="M9 7.67V2.5H7v5.17l-.5.45L4.38 10h7.24L9.5 8.12zM5.5 2.5H4V1h8v1.5h-1.5V7l3.57 3.18A2.76 2.76 0 0 1 12.24 15H3.76a2.76 2.76 0 0 1-1.83-4.82L5.5 7zm-3 9.74q0-.41.24-.74h10.52a1.26 1.26 0 0 1-1.02 2H3.76c-.7 0-1.26-.56-1.26-1.26" clip-rule="evenodd"></path></svg></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/serverExternalPackages"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">serverExternalPackages</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/staleTimes"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">staleTimes</span><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="M9 7.67V2.5H7v5.17l-.5.45L4.38 10h7.24L9.5 8.12zM5.5 2.5H4V1h8v1.5h-1.5V7l3.57 3.18A2.76 2.76 0 0 1 12.24 15H3.76a2.76 2.76 0 0 1-1.83-4.82L5.5 7zm-3 9.74q0-.41.24-.74h10.52a1.26 1.26 0 0 1-1.02 2H3.76c-.7 0-1.26-.56-1.26-1.26" clip-rule="evenodd"></path></svg></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/staticGeneration"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">staticGeneration*</span><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="M9 7.67V2.5H7v5.17l-.5.45L4.38 10h7.24L9.5 8.12zM5.5 2.5H4V1h8v1.5h-1.5V7l3.57 3.18A2.76 2.76 0 0 1 12.24 15H3.76a2.76 2.76 0 0 1-1.83-4.82L5.5 7zm-3 9.74q0-.41.24-.74h10.52a1.26 1.26 0 0 1-1.02 2H3.76c-.7 0-1.26-.56-1.26-1.26" clip-rule="evenodd"></path></svg></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/taint"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">taint</span><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="M9 7.67V2.5H7v5.17l-.5.45L4.38 10h7.24L9.5 8.12zM5.5 2.5H4V1h8v1.5h-1.5V7l3.57 3.18A2.76 2.76 0 0 1 12.24 15H3.76a2.76 2.76 0 0 1-1.83-4.82L5.5 7zm-3 9.74q0-.41.24-.74h10.52a1.26 1.26 0 0 1-1.02 2H3.76c-.7 0-1.26-.56-1.26-1.26" clip-rule="evenodd"></path></svg></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/trailingSlash"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">trailingSlash</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/transpilePackages"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">transpilePackages</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/turbopack"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">turbopack</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/turbopackFileSystemCache"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">turbopackFileSystemCache</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/turbopackIgnoreIssue"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">turbopack.ignoreIssue</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/turbopackLocalPostcssConfig"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">turbopackLocalPostcssConfig</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/typedRoutes"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">typedRoutes</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/typescript"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">typescript</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/urlImports"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">urlImports</span><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="M9 7.67V2.5H7v5.17l-.5.45L4.38 10h7.24L9.5 8.12zM5.5 2.5H4V1h8v1.5h-1.5V7l3.57 3.18A2.76 2.76 0 0 1 12.24 15H3.76a2.76 2.76 0 0 1-1.83-4.82L5.5 7zm-3 9.74q0-.41.24-.74h10.52a1.26 1.26 0 0 1-1.02 2H3.76c-.7 0-1.26-.56-1.26-1.26" clip-rule="evenodd"></path></svg></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/useLightningcss"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">useLightningcss</span><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="M9 7.67V2.5H7v5.17l-.5.45L4.38 10h7.24L9.5 8.12zM5.5 2.5H4V1h8v1.5h-1.5V7l3.57 3.18A2.76 2.76 0 0 1 12.24 15H3.76a2.76 2.76 0 0 1-1.83-4.82L5.5 7zm-3 9.74q0-.41.24-.74h10.52a1.26 1.26 0 0 1-1.02 2H3.76c-.7 0-1.26-.56-1.26-1.26" clip-rule="evenodd"></path></svg></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/viewTransition"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">viewTransition</span><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="M9 7.67V2.5H7v5.17l-.5.45L4.38 10h7.24L9.5 8.12zM5.5 2.5H4V1h8v1.5h-1.5V7l3.57 3.18A2.76 2.76 0 0 1 12.24 15H3.76a2.76 2.76 0 0 1-1.83-4.82L5.5 7zm-3 9.74q0-.41.24-.74h10.52a1.26 1.26 0 0 1-1.02 2H3.76c-.7 0-1.26-.56-1.26-1.26" clip-rule="evenodd"></path></svg></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/webpack"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">webpack</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/next-config-js/webVitalsAttribution"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">webVitalsAttribution</span><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="M9 7.67V2.5H7v5.17l-.5.45L4.38 10h7.24L9.5 8.12zM5.5 2.5H4V1h8v1.5h-1.5V7l3.57 3.18A2.76 2.76 0 0 1 12.24 15H3.76a2.76 2.76 0 0 1-1.83-4.82L5.5 7zm-3 9.74q0-.41.24-.74h10.52a1.26 1.26 0 0 1-1.02 2H3.76c-.7 0-1.26-.56-1.26-1.26" clip-rule="evenodd"></path></svg></div></a></li></ul><div aria-hidden="true" class="from-gray-0 pointer-events-none absolute bottom-0 left-0 z-10 h-[6px] w-full bg-linear-to-t"></div></div></div></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/typescript"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">TypeScript</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/config/eslint"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">ESLint</span></div></a></li></ul><div aria-hidden="true" class="from-gray-0 pointer-events-none absolute bottom-0 left-0 z-10 h-[6px] w-full bg-linear-to-t"></div></div></div></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/cli"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">CLI</span></div><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="m5.5 1.94.53.53 4.82 4.82a1 1 0 0 1 0 1.42l-4.82 4.82-.53.53L4.44 13l.53-.53L9.44 8 4.97 3.53 4.44 3z" clip-rule="evenodd"></path></svg></a><div data-is-collapsed="true" class="overflow-hidden grid" style="opacity:0;grid-template-rows:0fr"><div class="relative overflow-hidden"><ul class="px-0.5 last-of-type:mb-0 border-l border-gray-200 pl-3 dark-theme:border-gray-300 pr-0 ml-4"><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/cli/create-next-app"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">create-next-app</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/cli/next"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">next CLI</span></div></a></li></ul><div aria-hidden="true" class="from-gray-0 pointer-events-none absolute bottom-0 left-0 z-10 h-[6px] w-full bg-linear-to-t"></div></div></div></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/adapters"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Adapters</span></div><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="m5.5 1.94.53.53 4.82 4.82a1 1 0 0 1 0 1.42l-4.82 4.82-.53.53L4.44 13l.53-.53L9.44 8 4.97 3.53 4.44 3z" clip-rule="evenodd"></path></svg></a><div data-is-collapsed="true" class="overflow-hidden grid" style="opacity:0;grid-template-rows:0fr"><div class="relative overflow-hidden"><ul class="px-0.5 last-of-type:mb-0 border-l border-gray-200 pl-3 dark-theme:border-gray-300 pr-0 ml-4"><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/adapters/configuration"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Configuration</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/adapters/creating-an-adapter"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Creating an Adapter</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/adapters/api-reference"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">API Reference</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/adapters/testing-adapters"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Testing Adapters</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/adapters/routing-with-next-routing"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Routing with @next/routing</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/adapters/implementing-ppr-in-an-adapter"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Implementing PPR in an Adapter</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/adapters/runtime-integration"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Runtime Integration</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/adapters/invoking-entrypoints"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Invoking Entrypoints</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/adapters/output-types"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Output Types</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/adapters/routing-information"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Routing Information</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/adapters/use-cases"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Use Cases</span></div></a></li></ul><div aria-hidden="true" class="from-gray-0 pointer-events-none absolute bottom-0 left-0 z-10 h-[6px] w-full bg-linear-to-t"></div></div></div></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/edge"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Edge Runtime</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/app/api-reference/turbopack"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Turbopack</span></div></a></li></ul><div aria-hidden="true" class="from-gray-0 pointer-events-none absolute bottom-0 left-0 z-10 h-[6px] w-full bg-linear-to-t"></div></div></div></li></ul><ul class="last-of-type:pb-3"><li class="my-1.5 ml-[3px]" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-1000 font-medium" href="/docs/app/glossary"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Glossary</span></div></a></li></ul><ul class="last-of-type:pb-3"><li class="my-1.5 ml-[3px]" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-1000 font-medium" href="/docs/architecture"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Architecture</span></div></a><div data-is-collapsed="false" class="overflow-hidden grid" style="opacity:1;grid-template-rows:1fr"><div class="relative overflow-hidden"><ul class="px-0.5 last-of-type:mb-0 mb-8"><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/architecture/accessibility"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Accessibility</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/architecture/fast-refresh"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Fast Refresh</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/architecture/nextjs-compiler"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Next.js Compiler</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/architecture/supported-browsers"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Supported Browsers</span></div></a></li></ul><div aria-hidden="true" class="from-gray-0 pointer-events-none absolute bottom-0 left-0 z-10 h-[6px] w-full bg-linear-to-t"></div></div></div></li></ul><ul class="last-of-type:pb-3"><li class="my-1.5 ml-[3px]" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-1000 font-medium" href="/docs/community"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Community</span></div></a><div data-is-collapsed="false" class="overflow-hidden grid" style="opacity:1;grid-template-rows:1fr"><div class="relative overflow-hidden"><ul class="px-0.5 last-of-type:mb-0 mb-8"><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/community/contribution-guide"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Contribution Guide</span></div></a></li><li class="my-1.5" data-active="false"><a class="hover:text-gray-1000 relative flex w-full cursor-pointer items-center justify-between rounded-md py-1 pl-2 text-left text-sm text-gray-900" href="/docs/community/rspack"><div class="flex items-center gap-2 overflow-hidden"><span class="truncate text-pretty">Rspack</span><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="M9 7.67V2.5H7v5.17l-.5.45L4.38 10h7.24L9.5 8.12zM5.5 2.5H4V1h8v1.5h-1.5V7l3.57 3.18A2.76 2.76 0 0 1 12.24 15H3.76a2.76 2.76 0 0 1-1.83-4.82L5.5 7zm-3 9.74q0-.41.24-.74h10.52a1.26 1.26 0 0 1-1.02 2H3.76c-.7 0-1.26-.56-1.26-1.26" clip-rule="evenodd"></path></svg></div></a></li></ul><div aria-hidden="true" class="from-gray-0 pointer-events-none absolute bottom-0 left-0 z-10 h-[6px] w-full bg-linear-to-t"></div></div></div></li></ul></nav></div></div><div data-testid="geistcn/skip-nav-content" id="geist-skip-nav" style="grid-row:1 / 1" tabindex="-1"></div><!--&--><!--&--><script type="application/ld+json">{"@context":"https://schema.org","author":{"@type":"Organization","name":"Vercel"},"headline":"Next.js Docs","description":"Welcome to the Next.js Documentation.","url":"https://nextjs.org/docs","image":"https://nextjs.org/api/docs-og?title=Next.js Docs&amp;sig=10b5e00dde2672ad","@type":"TechArticle"}</script><nav class="order-last hidden w-56 shrink-0 lg:block mx-auto"><div class="sticky top-[126px] h-[calc(100vh-121px)]"><div class="text-gray-1000 mb-1 mt-[7px] text-sm font-medium">On this page</div><div class="relative" data-table-of-contents=""><div aria-hidden="true" class="from-gray-0 z-1 absolute left-0 top-0 h-3 w-full bg-linear-to-b"></div><div aria-hidden="true" class="from-gray-0 absolute bottom-0 left-0 z-10 h-3 w-full bg-linear-to-t"></div><ul class="styled-scrollbar max-h-[70vh] space-y-2.5 overflow-y-auto py-2 text-sm"><li class=""><a class="block leading-[1.6] transition-colors text-gray-900 hover:text-gray-1000" href="#what-is-nextjs">What is Next.js?</a></li><li class=""><a class="block leading-[1.6] transition-colors text-gray-900 hover:text-gray-1000" href="#how-to-use-the-docs">How to use the docs</a></li><li class=""><a class="block leading-[1.6] transition-colors text-gray-900 hover:text-gray-1000" href="#app-router-and-pages-router">App Router and Pages Router</a></li><li class=""><a class="block leading-[1.6] transition-colors pl-3 text-gray-900 hover:text-gray-1000" href="#react-version-handling">React version handling</a></li><li class=""><a class="block leading-[1.6] transition-colors text-gray-900 hover:text-gray-1000" href="#pre-requisite-knowledge">Pre-requisite knowledge</a></li><li class=""><a class="block leading-[1.6] transition-colors text-gray-900 hover:text-gray-1000" href="#accessibility">Accessibility</a></li><li class=""><a class="block leading-[1.6] transition-colors text-gray-900 hover:text-gray-1000" href="#join-our-community">Join our Community</a></li><li class=""><a class="block leading-[1.6] transition-colors text-gray-900 hover:text-gray-1000" href="#next-steps">Next Steps</a></li></ul></div><div class="mt-3 space-y-2 border-t border-gray-200 pt-5 text-sm text-gray-900 dark-theme:border-gray-300"></div><a class="hover:text-gray-1000 mb-3 flex items-center gap-x-1.5 text-sm text-gray-900 transition-opacity" href="https://github.com/vercel/next.js/edit/canary/docs/index.mdx">Edit this page on GitHub <svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="M11.5 9.75v1.5q-.02.23-.25.25h-6.5a.25.25 0 0 1-.25-.25v-6.5c0-.14.11-.25.25-.25H7V3H4.75C3.78 3 3 3.78 3 4.75v6.5c0 .97.78 1.75 1.75 1.75h6.5c.97 0 1.75-.78 1.75-1.75V9h-1.5zM8.5 3h3.75c.41 0 .75.34.75.75V7.5h-1.5V5.56L8.53 8.53 8 9.06 6.94 8l.53-.53 2.97-2.97H8.5z" clip-rule="evenodd"></path></svg></a><button class="hover:text-gray-1000 flex items-center gap-x-1.5 text-sm text-gray-900 transition-opacity opacity-0" type="button">Scroll to top <svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="M7.25 10.75v.75h1.5V6.56l1.47 1.47.53.53 1.06-1.06-.53-.53-2.75-2.75a.75.75 0 0 0-1.06 0L4.72 6.97l-.53.53 1.06 1.06.53-.53 1.47-1.47zM14.5 8a6.5 6.5 0 1 1-13 0 6.5 6.5 0 0 1 13 0M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16" clip-rule="evenodd"></path></svg></button></div></nav><article class="mt-4 w-full min-w-0 px-1 md:px-12 md:pr-6" style="min-height:calc(100vh + 103px)" data-docs-container=""><div class="prose"><span class="sr-only">For an index of <!-- -->Next.js documentation<!-- -->, see<!-- --> <a href="/docs/llms.txt">/docs/llms.txt</a>.</span><div data-docs="true"><h1 class="wrap-break-word hyphens-auto">Next.js Docs</h1><p>Welcome to the Next.js documentation!</p>
<h2 id="what-is-nextjs" data-docs-heading="">What is Next.js?<a aria-label="Link to this section" data-heading-link="" href="#what-is-nextjs"><span><svg viewBox="0 0 16 16" height="0.7em" width="0.7em"><g stroke-width="1.2" fill="none" stroke="currentColor"><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="M8.995,7.005 L8.995,7.005c1.374,1.374,1.374,3.601,0,4.975l-1.99,1.99c-1.374,1.374-3.601,1.374-4.975,0l0,0c-1.374-1.374-1.374-3.601,0-4.975 l1.748-1.698"></path><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="M7.005,8.995 L7.005,8.995c-1.374-1.374-1.374-3.601,0-4.975l1.99-1.99c1.374-1.374,3.601-1.374,4.975,0l0,0c1.374,1.374,1.374,3.601,0,4.975 l-1.748,1.698"></path></g></svg></span></a></h2>
<p>Next.js is a React framework for building full-stack web applications. You use React Components to build user interfaces, and Next.js for additional features and optimizations.</p>
<p>It also automatically configures lower-level tools like bundlers and compilers. You can instead focus on building your product and shipping quickly.</p>
<p>Whether you&#x27;re an individual developer or part of a larger team, Next.js can help you build interactive, dynamic, and fast React applications.</p>
<h2 id="how-to-use-the-docs" data-docs-heading="">How to use the docs<a aria-label="Link to this section" data-heading-link="" href="#how-to-use-the-docs"><span><svg viewBox="0 0 16 16" height="0.7em" width="0.7em"><g stroke-width="1.2" fill="none" stroke="currentColor"><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="M8.995,7.005 L8.995,7.005c1.374,1.374,1.374,3.601,0,4.975l-1.99,1.99c-1.374,1.374-3.601,1.374-4.975,0l0,0c-1.374-1.374-1.374-3.601,0-4.975 l1.748-1.698"></path><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="M7.005,8.995 L7.005,8.995c-1.374-1.374-1.374-3.601,0-4.975l1.99-1.99c1.374-1.374,3.601-1.374,4.975,0l0,0c1.374,1.374,1.374,3.601,0,4.975 l-1.748,1.698"></path></g></svg></span></a></h2>
<p>The docs are organized into 3 sections:</p>
<ul>
<li><a href="/docs/app/getting-started">Getting Started</a>: Step-by-step tutorials to help you create a new application and learn the core Next.js features.</li>
<li><a href="/docs/app/guides">Guides</a>: Tutorials on specific use cases, choose what&#x27;s relevant to you.</li>
<li><a href="/docs/app/api-reference">API Reference</a>: Detailed technical reference for every feature.</li>
</ul>
<p>Use the sidebar to navigate through the sections, or search (<code>Ctrl+K</code> or <code>Cmd+K</code>) to quickly find a page.</p>
<h2 id="app-router-and-pages-router" data-docs-heading="">App Router and Pages Router<a aria-label="Link to this section" data-heading-link="" href="#app-router-and-pages-router"><span><svg viewBox="0 0 16 16" height="0.7em" width="0.7em"><g stroke-width="1.2" fill="none" stroke="currentColor"><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="M8.995,7.005 L8.995,7.005c1.374,1.374,1.374,3.601,0,4.975l-1.99,1.99c-1.374,1.374-3.601,1.374-4.975,0l0,0c-1.374-1.374-1.374-3.601,0-4.975 l1.748-1.698"></path><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="M7.005,8.995 L7.005,8.995c-1.374-1.374-1.374-3.601,0-4.975l1.99-1.99c1.374-1.374,3.601-1.374,4.975,0l0,0c1.374,1.374,1.374,3.601,0,4.975 l-1.748,1.698"></path></g></svg></span></a></h2>
<p>Next.js has two different routers:</p>
<ul>
<li><strong>App Router</strong>: The newer router that supports new React features like Server Components.</li>
<li><strong>Pages Router</strong>: The original router, still supported and being improved.</li>
</ul>
<p>At the top of the sidebar, you&#x27;ll notice a dropdown menu that allows you to switch between the <a href="/docs/app">App Router</a> and the <a href="/docs/pages">Pages Router</a> docs.</p>
<h3 id="react-version-handling" data-docs-heading="">React version handling<a aria-label="Link to this section" data-heading-link="" href="#react-version-handling"><span><svg viewBox="0 0 16 16" height="0.7em" width="0.7em"><g stroke-width="1.2" fill="none" stroke="currentColor"><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="M8.995,7.005 L8.995,7.005c1.374,1.374,1.374,3.601,0,4.975l-1.99,1.99c-1.374,1.374-3.601,1.374-4.975,0l0,0c-1.374-1.374-1.374-3.601,0-4.975 l1.748-1.698"></path><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="M7.005,8.995 L7.005,8.995c-1.374-1.374-1.374-3.601,0-4.975l1.99-1.99c1.374-1.374,3.601-1.374,4.975,0l0,0c1.374,1.374,1.374,3.601,0,4.975 l-1.748,1.698"></path></g></svg></span></a></h3>
<p>The App Router and Pages Router handle React versions differently:</p>
<ul>
<li>
<p><strong>App Router</strong>: Uses <a href="https://react.dev/blog/2023/05/03/react-canaries" rel="noopener noreferrer nofollow" target="_blank">React canary releases<span class="inline-flex not-prose"><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="M6.75 4H6v1.5h3.44L5.47 9.47l-.53.53L6 11.06l.53-.53 3.97-3.97V10H12V5a1 1 0 0 0-1-1z" clip-rule="evenodd"></path></svg></span></a> built-in, which include all the stable React 19 changes, as well as newer features being validated in frameworks, prior to a new React release.</p>
</li>
<li>
<p><strong>Pages Router</strong>: Uses the React version installed in your project&#x27;s <code>package.json</code>.</p>
</li>
</ul>
<p>This approach ensures new React features work reliably in the App Router while maintaining backwards compatibility for existing Pages Router applications.</p>
<h2 id="pre-requisite-knowledge" data-docs-heading="">Pre-requisite knowledge<a aria-label="Link to this section" data-heading-link="" href="#pre-requisite-knowledge"><span><svg viewBox="0 0 16 16" height="0.7em" width="0.7em"><g stroke-width="1.2" fill="none" stroke="currentColor"><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="M8.995,7.005 L8.995,7.005c1.374,1.374,1.374,3.601,0,4.975l-1.99,1.99c-1.374,1.374-3.601,1.374-4.975,0l0,0c-1.374-1.374-1.374-3.601,0-4.975 l1.748-1.698"></path><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="M7.005,8.995 L7.005,8.995c-1.374-1.374-1.374-3.601,0-4.975l1.99-1.99c1.374-1.374,3.601-1.374,4.975,0l0,0c1.374,1.374,1.374,3.601,0,4.975 l-1.748,1.698"></path></g></svg></span></a></h2>
<p>Our documentation assumes some familiarity with web development. Before getting started, it&#x27;ll help if you&#x27;re comfortable with:</p>
<ul>
<li>HTML</li>
<li>CSS</li>
<li>JavaScript</li>
<li>React</li>
</ul>
<p>If you&#x27;re new to React or need a refresher, we recommend starting with our <a href="/learn/react-foundations">React Foundations course</a>, and the <a href="/learn/dashboard-app">Next.js Foundations course</a> that has you building an application as you learn.</p>
<h2 id="accessibility" data-docs-heading="">Accessibility<a aria-label="Link to this section" data-heading-link="" href="#accessibility"><span><svg viewBox="0 0 16 16" height="0.7em" width="0.7em"><g stroke-width="1.2" fill="none" stroke="currentColor"><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="M8.995,7.005 L8.995,7.005c1.374,1.374,1.374,3.601,0,4.975l-1.99,1.99c-1.374,1.374-3.601,1.374-4.975,0l0,0c-1.374-1.374-1.374-3.601,0-4.975 l1.748-1.698"></path><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="M7.005,8.995 L7.005,8.995c-1.374-1.374-1.374-3.601,0-4.975l1.99-1.99c1.374-1.374,3.601-1.374,4.975,0l0,0c1.374,1.374,1.374,3.601,0,4.975 l-1.748,1.698"></path></g></svg></span></a></h2>
<p>For the best experience when using a screen reader, we recommend using Firefox and NVDA, or Safari and VoiceOver.</p>
<h2 id="join-our-community" data-docs-heading="">Join our Community<a aria-label="Link to this section" data-heading-link="" href="#join-our-community"><span><svg viewBox="0 0 16 16" height="0.7em" width="0.7em"><g stroke-width="1.2" fill="none" stroke="currentColor"><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="M8.995,7.005 L8.995,7.005c1.374,1.374,1.374,3.601,0,4.975l-1.99,1.99c-1.374,1.374-3.601,1.374-4.975,0l0,0c-1.374-1.374-1.374-3.601,0-4.975 l1.748-1.698"></path><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="M7.005,8.995 L7.005,8.995c-1.374-1.374-1.374-3.601,0-4.975l1.99-1.99c1.374-1.374,3.601-1.374,4.975,0l0,0c1.374,1.374,1.374,3.601,0,4.975 l-1.748,1.698"></path></g></svg></span></a></h2>
<p>If you have questions about anything related to Next.js, you&#x27;re always welcome to ask our community on <a href="https://github.com/vercel/next.js/discussions" rel="noopener noreferrer" target="_blank">GitHub Discussions<span class="inline-flex not-prose"><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="M6.75 4H6v1.5h3.44L5.47 9.47l-.53.53L6 11.06l.53-.53 3.97-3.97V10H12V5a1 1 0 0 0-1-1z" clip-rule="evenodd"></path></svg></span></a>, <a href="https://discord.com/invite/bUG2bvbtHy" rel="noopener noreferrer nofollow" target="_blank">Discord<span class="inline-flex not-prose"><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="M6.75 4H6v1.5h3.44L5.47 9.47l-.53.53L6 11.06l.53-.53 3.97-3.97V10H12V5a1 1 0 0 0-1-1z" clip-rule="evenodd"></path></svg></span></a>, <a href="https://x.com/nextjs" rel="noopener noreferrer nofollow" target="_blank">X (Twitter)<span class="inline-flex not-prose"><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="M6.75 4H6v1.5h3.44L5.47 9.47l-.53.53L6 11.06l.53-.53 3.97-3.97V10H12V5a1 1 0 0 0-1-1z" clip-rule="evenodd"></path></svg></span></a>, and <a href="https://www.reddit.com/r/nextjs" rel="noopener noreferrer nofollow" target="_blank">Reddit<span class="inline-flex not-prose"><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="M6.75 4H6v1.5h3.44L5.47 9.47l-.53.53L6 11.06l.53-.53 3.97-3.97V10H12V5a1 1 0 0 0-1-1z" clip-rule="evenodd"></path></svg></span></a>.</p></div><div class="mt-16"><h2 class="text-3xl font-bold" id="next-steps" data-docs-heading="">Next Steps</h2><div class="mt-2 text-gray-900">Create your first application and learn the core Next.js features.</div><div class="mt-8 grid grid-cols-1 gap-8 sm:grid-cols-2"><a class="not-prose bg-gray-0 shadow-(--ds-shadow-border) group block space-y-2 rounded-md p-6 pt-5 transition-shadow duration-300 hover:shadow-(--ds-shadow-border-large)" href="/docs/app/getting-started"><div class="flex flex-wrap items-center gap-0.5 text-xs"></div><h3 class="group-hover:text-gray-1000 truncate text-lg font-medium leading-snug">Getting Started</h3><div class="line-clamp-3 text-sm font-normal text-gray-900">Learn how to create full-stack web applications with the Next.js App Router.</div></a></div></div></div><nav aria-label="pagination" class="relative flex justify-between flex-wrap items-start w-full [&amp;_a]:no-underline my-12 border-t border-gray-200 pt-8"><a aria-label="Go to previous page: Rspack" class="group p-1 rounded-md pr-2 pl-7" href="/docs/community/rspack"><span class="text-copy-13 !text-[var(--ds-gray-900)] mb-0.5 transition-colors duration-200 ease-in-out group-hover:!text-[var(--geist-foreground)]">Previous</span><div class="relative flex [&amp;&gt;span]:max-w-[20em] [&amp;&gt;span]:inline-block [&amp;&gt;span]:truncate [&amp;&gt;span]:break-words focus-visible:outline-none focus-visible:shadow-[var(--ds-focus-ring)]"><span class="text-[16px] leading-[24px] font-medium">Rspack</span><span class="absolute mt-0.5 text-[var(--ds-gray-900)] transition-colors duration-200 ease-in-out -left-[26px] group-hover:text-[var(--geist-foreground)]"><svg viewBox="0 0 16 16" height="20" width="20" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="m10.5 14.06-.53-.53-4.82-4.82a1 1 0 0 1 0-1.42l4.82-4.82.53-.53L11.56 3l-.53.53L6.56 8l4.47 4.47.53.53z" clip-rule="evenodd"></path></svg></span></div></a><div class="absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-2 max-xl:hidden"></div><a aria-label="Go to next page: App Router" class="group p-1 rounded-md pl-2 pr-7 ml-auto" href="/docs/app"><span class="text-copy-13 !text-[var(--ds-gray-900)] mb-0.5 transition-colors duration-200 ease-in-out group-hover:!text-[var(--geist-foreground)]">Next</span><div class="relative flex [&amp;&gt;span]:max-w-[20em] [&amp;&gt;span]:inline-block [&amp;&gt;span]:truncate [&amp;&gt;span]:break-words focus-visible:outline-none focus-visible:shadow-[var(--ds-focus-ring)]"><span class="text-[16px] leading-[24px] font-medium">App Router</span><span class="absolute mt-0.5 text-[var(--ds-gray-900)] transition-colors duration-200 ease-in-out -right-[26px] group-hover:text-[var(--geist-foreground)]"><svg viewBox="0 0 16 16" height="20" width="20" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="m5.5 1.94.53.53 4.82 4.82a1 1 0 0 1 0 1.42l-4.82 4.82-.53.53L4.44 13l.53-.53L9.44 8 4.97 3.53 4.44 3z" clip-rule="evenodd"></path></svg></span></div></a></nav><div class="flex justify-center" data-feedback-inline=""><div class="shadow-[var(--ds-shadow-border-small)] transition-colors duration-200 w-fit overflow-hidden bg-[var(--ds-background-100)]" style="height:48px;width:274px;border-radius:30px"><div class="flex items-center justify-center gap-2 py-2 pl-4 pr-2"><p class="text-copy-14 text-gray-900">Was this helpful?</p><span class="flex items-center text-[var(--ds-gray-900)] gap-[1px]"><button aria-checked="false" aria-label="Select Hate it emoji" class="bg-transparent border-none radius rounded-[50%] size-8 p-0 flex items-center justify-center cursor-pointer text-[var(--ds-gray-900)] [&amp;_svg_path]:transition-all transition-[background,border-color] duration-200 hover:bg-[var(--ds-blue-300)] hover:border-[var(--ds-blue-300)] hover:[&amp;_svg_path]:fill-[var(--ds-blue-900)] aria-[checked=&#x27;true&#x27;]:bg-[var(--ds-blue-300)] aria-[checked=&#x27;true&#x27;]:border-[var(--ds-blue-300)] aria-[checked=&#x27;true&#x27;]:[&amp;_svg_path]:fill-[var(--ds-blue-900)] focus-visible:outline-hidden focus-visible:shadow-[var(--ds-focus-ring)]" role="radio" type="button"><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="var(--ds-blue-700)" fill-rule="evenodd" d="M4 9v7h1.5V9zm8 0v7h-1.5V9z" clip-rule="evenodd"></path><path fill="currentColor" fill-rule="evenodd" d="M1.5 8A6.5 6.5 0 1 1 13 12.15v2.1A7.99 7.99 0 0 0 8 0a8 8 0 0 0-5 14.25v-2.1A6.5 6.5 0 0 1 1.5 8M8 14.5q.78 0 1.5-.17v1.53a8 8 0 0 1-3 0v-1.53q.72.17 1.5.17M3.79 8.37a2.04 2.04 0 0 1 2.92 0L7.8 7.32a3.54 3.54 0 0 0-5.08 0zm6.96-.62c-.57 0-1.1.23-1.46.62L8.2 7.32a3.54 3.54 0 0 1 5.08 0L12.2 8.37a2 2 0 0 0-1.46-.62M6.25 12h3.5a1.75 1.75 0 1 0-3.5 0" clip-rule="evenodd"></path></svg></button><button aria-checked="false" aria-label="Select Not great emoji" class="bg-transparent border-none radius rounded-[50%] size-8 p-0 flex items-center justify-center cursor-pointer text-[var(--ds-gray-900)] [&amp;_svg_path]:transition-all transition-[background,border-color] duration-200 hover:bg-[var(--ds-blue-300)] hover:border-[var(--ds-blue-300)] hover:[&amp;_svg_path]:fill-[var(--ds-blue-900)] aria-[checked=&#x27;true&#x27;]:bg-[var(--ds-blue-300)] aria-[checked=&#x27;true&#x27;]:border-[var(--ds-blue-300)] aria-[checked=&#x27;true&#x27;]:[&amp;_svg_path]:fill-[var(--ds-blue-900)] focus-visible:outline-hidden focus-visible:shadow-[var(--ds-focus-ring)]" role="radio" type="button"><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0m0 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13m0 7.88c1.47 0 2.76.75 3.52 1.88l.35.52-1.04.7-.34-.52a3 3 0 0 0-4.97 0l-.35.51-1.04-.7.35-.51A4.2 4.2 0 0 1 8 9.38M5.75 5.5a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5m4.5 0a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5"></path></svg></button><button aria-checked="false" aria-label="Select It&#x27;s okay emoji" class="bg-transparent border-none radius rounded-[50%] size-8 p-0 flex items-center justify-center cursor-pointer text-[var(--ds-gray-900)] [&amp;_svg_path]:transition-all transition-[background,border-color] duration-200 hover:bg-[var(--ds-blue-300)] hover:border-[var(--ds-blue-300)] hover:[&amp;_svg_path]:fill-[var(--ds-blue-900)] aria-[checked=&#x27;true&#x27;]:bg-[var(--ds-blue-300)] aria-[checked=&#x27;true&#x27;]:border-[var(--ds-blue-300)] aria-[checked=&#x27;true&#x27;]:[&amp;_svg_path]:fill-[var(--ds-blue-900)] focus-visible:outline-hidden focus-visible:shadow-[var(--ds-focus-ring)]" role="radio" type="button"><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0m0 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13m3.87 8.83-.35.52a4.24 4.24 0 0 1-7.04 0l-.35-.51 1.04-.7.35.52a3 3 0 0 0 4.97 0l.34-.53zM5.75 5.5a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5m4.5 0a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5"></path></svg></button><button aria-checked="false" aria-label="Select Love it! emoji" class="bg-transparent border-none radius rounded-[50%] size-8 p-0 flex items-center justify-center cursor-pointer text-[var(--ds-gray-900)] [&amp;_svg_path]:transition-all transition-[background,border-color] duration-200 hover:bg-[var(--ds-blue-300)] hover:border-[var(--ds-blue-300)] hover:[&amp;_svg_path]:fill-[var(--ds-blue-900)] aria-[checked=&#x27;true&#x27;]:bg-[var(--ds-blue-300)] aria-[checked=&#x27;true&#x27;]:border-[var(--ds-blue-300)] aria-[checked=&#x27;true&#x27;]:[&amp;_svg_path]:fill-[var(--ds-blue-900)] focus-visible:outline-hidden focus-visible:shadow-[var(--ds-focus-ring)]" role="radio" type="button"><svg viewBox="0 0 16 16" height="16" width="16" data-slot="geist-icon" style="color:currentColor"><path fill="currentColor" fill-rule="evenodd" d="M14.5 8a6.5 6.5 0 1 1-13 0 6.5 6.5 0 0 1 13 0M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0m-11.5.97h-.62v.63c0 1.87 1.93 3.26 4.12 3.26s4.13-1.38 4.13-3.26v-.63H4.5M8 11.61c-1.4 0-2.36-.66-2.72-1.38h5.44c-.36.72-1.31 1.38-2.72 1.38" clip-rule="evenodd"></path><path fill="var(--ds-amber-800)" fill-rule="evenodd" d="M6.15 4.92 5.37 3.5 4.6 4.92l-1.6.3 1.12 1.17L3.9 8l1.47-.7 1.46.7-.2-1.6 1.11-1.18zm5.25 0-.78-1.42-.77 1.42-1.6.3 1.12 1.17L9.16 8l1.47-.7 1.46.7-.2-1.6L13 5.21z" clip-rule="evenodd"></path></svg></button></span></div><div><form class="h-full"><div class="p-2 flex flex-col gap-2"><label data-version="v1"><div class="flex max-w-full transition-all duration-150 shadow-[0_0_0_1px_var(--ds-gray-alpha-400)] overflow-hidden font-normal rounded-md [&amp;&gt;input]:h-10 text-sm [&amp;&gt;input]:px-3 has-[:focus]:!shadow-[0_0_0_1px_var(--ds-gray-alpha-600),0px_0px_0px_4px_rgba(0,0,0,0.16)] dark-theme:has-[:focus]:!shadow-[0_0_0_1px_var(--ds-gray-alpha-600),0px_0px_0px_4px_rgba(255,255,255,0.24)] hover:shadow-[0_0_0_1px_var(--ds-gray-alpha-500)] hover:[&amp;:has(input:disabled)]:shadow-[0_0_0_1px_var(--ds-gray-alpha-400)] hover:[&amp;:has(textarea:disabled)]:shadow-[0_0_0_1px_var(--ds-gray-alpha-400)] w-full" data-geist-textarea-wrapper=""><textarea autoCapitalize="off" autoComplete="off" autoCorrect="off" class="py-2.5 px-3 resize-none [&amp;[rows]]:h-[unset] appearance-none webkit-search-reset min-w-0 w-full border-none bg-[var(--ds-background-100)] text-[var(--geist-foreground)] order-1 outline-none focus:outline-none disabled:bg-[var(--ds-gray-100)] disabled:placeholder:text-[var(--accents-3)] disabled:[-webkit-text-fill-color:var(--accents-3)] disabled:opacity-100 disabled:text-[var(--ds-gray-700)] disabled:cursor-not-allowed flex max-w-full transition-all duration-150 shadow-[0_0_0_1px_var(--ds-gray-alpha-400)] overflow-hidden font-normal rounded-md [&amp;&gt;input]:h-10 text-sm [&amp;&gt;input]:px-3 has-[:focus]:!shadow-[0_0_0_1px_var(--ds-gray-alpha-600),0px_0px_0px_4px_rgba(0,0,0,0.16)] dark-theme:has-[:focus]:!shadow-[0_0_0_1px_var(--ds-gray-alpha-600),0px_0px_0px_4px_rgba(255,255,255,0.24)] hover:shadow-[0_0_0_1px_var(--ds-gray-alpha-500)] hover:[&amp;:has(input:disabled)]:shadow-[0_0_0_1px_var(--ds-gray-alpha-400)] hover:[&amp;:has(textarea:disabled)]:shadow-[0_0_0_1px_var(--ds-gray-alpha-400)] h-[100px]" spellCheck="false" placeholder="Your feedback..." id="feedback-textarea"></textarea></div></label><div class="text-label-12 text-gray-900 flex justify-end items-center gap-1 p-0"><svg fill="none" height="14" viewBox="0 0 22 14" width="22" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="M19.5 1.25H2.5C1.80964 1.25 1.25 1.80964 1.25 2.5V11.5C1.25 12.1904 1.80964 12.75 2.5 12.75H19.5C20.1904 12.75 20.75 12.1904 20.75 11.5V2.5C20.75 1.80964 20.1904 1.25 19.5 1.25ZM2.5 0C1.11929 0 0 1.11929 0 2.5V11.5C0 12.8807 1.11929 14 2.5 14H19.5C20.8807 14 22 12.8807 22 11.5V2.5C22 1.11929 20.8807 0 19.5 0H2.5ZM3 3.5H4H4.25H4.6899L4.98715 3.82428L7 6.02011L9.01285 3.82428L9.3101 3.5H9.75H10H11V4.5V10.5H9V6.79807L7.73715 8.17572L7 8.97989L6.26285 8.17572L5 6.79807V10.5H3V4.5V3.5ZM15 7V3.5H17V7H19.5L17 9.5L16 10.5L15 9.5L12.5 7H15Z" fill="var(--ds-gray-700)" fill-rule="evenodd"></path></svg>supported.</div></div><div class="flex justify-between bg-[var(--accents-1)] border-t border-[var(--accents-2)] p-3" style="justify-content:flex-end"><button type="submit" tabindex="0" data-react-aria-pressable="true" class="outline-none m-0 p-0 border-0 align-baseline no-underline group/trigger relative cursor-pointer select-none transform translate-z-0 flex text-[var(--themed-fg,_var(--ds-background-100))] bg-[var(--themed-bg,_var(--ds-gray-1000))] font-medium !px-(--geist-gap-half) max-w-full items-center justify-center transition-[border-color, background,color,transform,box-shadow] duration-[time:150ms] ease-in-out data-[focus]:transition-none data-[focus]:shadow-[var(--ds-focus-ring)] [&amp;_svg]:shrink-0 disabled:cursor-not-allowed aria-disabled:cursor-not-allowed disabled:text-[var(--ds-gray-700)] disabled:bg-[var(--ds-gray-100)] aria-disabled:text-[var(--ds-gray-700)] aria-disabled:bg-[var(--ds-gray-100)] disabled:![--themed-border:_var(--ds-gray-400)] [--x-padding:6px] [--height:32px] !pl-[var(--x-padding)] !pr-[var(--x-padding)] rounded-md text-(length:--geist-form-small-font) [--spinner-size:16px] h-[var(--height)] data-hover:bg-[var(--themed-hover-bg,_hsl(0,_0%,_22%))] dark-theme:data-hover:bg-[var(--themed-hover-bg,_hsl(0,_0%,_80%))] data-hover:[--themed-border:var(--themed-hover-bg,_var(--ds-gray-200))] data-hover:disabled:bg-[var(--ds-gray-100)]" data-geist-button="" data-prefix="false" data-suffix="false" data-version="v1" style="--geist-icon-size:16px"><span class="truncate inline-block px-1.5">Send</span></button></div></form></div></div></div></article><!--$--><!--/$--><!--/&--><!--/&--></div></div><!--/&--></main><!--$?--><template id="B:3"></template><!--/$--><!--$--><!--/$--><!--$?--><template id="B:1"></template><!--/$--><!--/&--><script>requestAnimationFrame(function(){$RT=performance.now()});</script><script src="/_next/static/immutable/chunks/1jpqmfbk-7fan.js" id="_R_" async=""></script><div hidden id="S:3"><div class="jsx-2625536880 footer-module__rV1DKq__root"><div class="mx-auto max-w-(--geist-page-width-with-margin) px-(--geist-page-margin)"><footer class="footer-module__rV1DKq__footer"><div class="footer-module__rV1DKq__grid"><div data-logo="true" class="flex flex-row items-stretch justify-between flex-initial"><a aria-label="Vercel logo" data-logo-link="" href="https://vercel.com/home?utm_source=next-site&amp;utm_medium=footer&amp;utm_campaign=next-website" rel="noopener noreferrer" target="_blank" title="Go to the Vercel website" class="flex flex-col items-stretch justify-start flex-initial"><img alt="VercelLogotype" data-slot="geist-logo" loading="eager" width="100" height="20" decoding="async" data-nimg="1" class="geist-hide-on-dark" style="color:transparent" src="/_next/static/immutable/media/vercel-logotype-light.0k7echqflwha4.svg"/><img alt="VercelLogotype" data-slot="geist-logo" loading="eager" width="100" height="20" decoding="async" data-nimg="1" class="geist-hide-on-light" style="color:transparent" src="/_next/static/immutable/media/vercel-logotype-dark.3m9ycmsc1ql8m.svg"/></a><div class="flex flex-row items-center justify-start gap-3 flex-initial footer-module__rV1DKq__socialsDesktop"><a aria-label="GitHub" href="https://github.com/vercel/next.js" rel="noopener" target="_blank" style="mix-blend-mode:luminosity"><img alt="" data-slot="geist-logo-icon" aria-hidden="true" loading="eager" width="16" height="16" decoding="async" data-nimg="1" class="geist-hide-on-dark" style="color:transparent" src="/_next/static/immutable/media/logo-github-light.3dl3lqjq1azpp.svg"/><img alt="" data-slot="geist-logo-icon" aria-hidden="true" loading="eager" width="16" height="16" decoding="async" data-nimg="1" class="geist-hide-on-light" style="color:transparent" src="/_next/static/immutable/media/logo-github-dark.1k-70sin_m3qn.svg"/></a><hr/><a aria-label="X" href="https://x.com/nextjs" rel="noopener" target="_blank" style="mix-blend-mode:luminosity"><img alt="" data-slot="geist-logo-icon" aria-hidden="true" loading="eager" width="16" height="16" decoding="async" data-nimg="1" class="geist-hide-on-dark" style="color:transparent" src="/_next/static/immutable/media/logo-twitter-x-light.0dvkch_c5dvys.svg"/><img alt="" data-slot="geist-logo-icon" aria-hidden="true" loading="eager" width="16" height="16" decoding="async" data-nimg="1" class="geist-hide-on-light" style="color:transparent" src="/_next/static/immutable/media/logo-twitter-x-dark.1-i769nzu94hl.svg"/></a><hr/><a aria-label="Bluesky" href="https://bsky.app/profile/nextjs.org" rel="noopener" target="_blank" style="mix-blend-mode:luminosity"><img alt="" data-slot="geist-logo-icon" aria-hidden="true" loading="eager" width="16" height="16" decoding="async" data-nimg="1" class="geist-hide-on-dark" style="color:transparent" src="/_next/static/immutable/media/logo-bluesky-light.2may7hm2y7g6v.svg"/><img alt="" data-slot="geist-logo-icon" aria-hidden="true" loading="eager" width="16" height="16" decoding="async" data-nimg="1" class="geist-hide-on-light" style="color:transparent" src="/_next/static/immutable/media/logo-bluesky-dark.39tbulfg2p-1z.svg"/></a></div></div><div><h4>Resources</h4><a href="/docs">Docs</a><a data-zone="same" href="/support-policy">Support Policy</a><a data-zone="same" href="/learn">Learn</a><a data-zone="same" href="/showcase">Showcase</a><a data-zone="same" href="/blog">Blog</a><a data-zone="same" href="/team">Team</a><!--$--><a href="https://vercel.com/analytics?utm_source=next-site&amp;utm_medium=footer&amp;utm_campaign=docs" rel="noopener" target="_blank">Analytics</a><!--/$--><a href="/conf" data-zone="521f3f">Next.js Conf</a><!--$--><a href="https://vercel.com/products/previews?utm_source=next-site&amp;utm_medium=footer&amp;utm_campaign=docs" rel="noopener" target="_blank">Previews</a><!--/$--><a data-zone="same" href="/evals">Evals</a></div><div><h4>More</h4><!--$--><a href="https://vercel.com/templates/next.js/nextjs-commerce?utm_source=next-site&amp;utm_medium=footer&amp;utm_campaign=docs" rel="noopener" target="_blank">Next.js Commerce</a><!--/$--><!--$--><a href="https://vercel.com/contact/sales?utm_source=next-site&amp;utm_medium=footer&amp;utm_campaign=docs" rel="noopener" target="_blank">Contact Sales</a><!--/$--><a href="https://community.vercel.com" rel="noopener noreferrer" target="_blank">Community</a><a href="https://github.com/vercel/next.js" rel="noopener noreferrer" target="_blank">GitHub</a><a href="https://github.com/vercel/next.js/releases" rel="noopener noreferrer" target="_blank">Releases</a><a data-zone="same" href="/telemetry">Telemetry</a><a data-zone="same" href="/governance">Governance</a><a data-zone="same" href="/ecosystem-working-group">Ecosystem Working Group</a></div><div><h4>About Vercel</h4><!--$--><a href="https://vercel.com/solutions/nextjs?utm_source=next-site&amp;utm_medium=footer&amp;utm_campaign=docs" rel="noopener" target="_blank">Next.js + Vercel</a><!--/$--><!--$--><a href="https://vercel.com/oss?utm_source=next-site&amp;utm_medium=footer&amp;utm_campaign=docs" rel="noopener" target="_blank">Open Source Software</a><!--/$--><a href="https://github.com/vercel" rel="noopener noreferrer" target="_blank">GitHub</a><a href="https://bsky.app/profile/vercel.com" rel="noopener noreferrer" target="_blank">Bluesky</a><a href="https://x.com/vercel" rel="noopener noreferrer" target="_blank">X</a></div><div><h4>Legal</h4><a href="https://vercel.com/legal/privacy-policy" rel="noopener" target="_blank">Privacy Policy</a><button id="fides-modal-link" type="button">Cookie Preferences</button></div><div class="footer-module__rV1DKq__newsletter"><h4>Subscribe to our newsletter</h4><p>Stay updated on new releases and features, guides, and case studies.</p><form data-input-wrapper="true" action="" encType="multipart/form-data" method="POST"><input type="hidden" name="$ACTION_REF_1"/><input type="hidden" name="$ACTION_1:0" value="{&quot;id&quot;:&quot;6043573bc32cf23a39d55aa279b10f01d29fb4c801&quot;,&quot;bound&quot;:&quot;$@1&quot;}"/><input type="hidden" name="$ACTION_1:1" value="[{&quot;success&quot;:false,&quot;error&quot;:&quot;&quot;}]"/><input type="hidden" name="$ACTION_KEY" value="ke73831be9adb2dd9cb8ae4c4cc896c66"/><input aria-label="Enter your email" data-1p-ignore="true" placeholder="you@domain.com" required="" type="email" name="email"/><button type="submit">Subscribe</button></form></div></div><div class="flex flex-row items-center justify-between flex-initial footer-module__rV1DKq__copyright"><div class="flex flex-col items-stretch justify-start gap-4 flex-initial"><p>© <!-- -->2026<!-- --> Vercel, Inc.</p><div class="flex flex-row items-center justify-start gap-3 flex-initial footer-module__rV1DKq__socials"><a aria-label="GitHub" href="https://github.com/vercel/next.js" rel="noopener" target="_blank" style="mix-blend-mode:luminosity"><img alt="" data-slot="geist-logo-icon" aria-hidden="true" loading="eager" width="16" height="16" decoding="async" data-nimg="1" class="geist-hide-on-dark" style="color:transparent" src="/_next/static/immutable/media/logo-github-light.3dl3lqjq1azpp.svg"/><img alt="" data-slot="geist-logo-icon" aria-hidden="true" loading="eager" width="16" height="16" decoding="async" data-nimg="1" class="geist-hide-on-light" style="color:transparent" src="/_next/static/immutable/media/logo-github-dark.1k-70sin_m3qn.svg"/></a><hr/><a aria-label="Twitter" href="https://x.com/nextjs" rel="noopener" target="_blank" style="mix-blend-mode:luminosity"><img alt="" data-slot="geist-logo-icon" aria-hidden="true" loading="eager" width="16" height="16" decoding="async" data-nimg="1" class="geist-hide-on-dark" style="color:transparent" src="/_next/static/immutable/media/logo-twitter-x-light.0dvkch_c5dvys.svg"/><img alt="" data-slot="geist-logo-icon" aria-hidden="true" loading="eager" width="16" height="16" decoding="async" data-nimg="1" class="geist-hide-on-light" style="color:transparent" src="/_next/static/immutable/media/logo-twitter-x-dark.1-i769nzu94hl.svg"/></a><hr/><a aria-label="Bluesky" href="https://bsky.app/profile/nextjs.org" rel="noopener" target="_blank" style="mix-blend-mode:luminosity"><img alt="" data-slot="geist-logo-icon" aria-hidden="true" loading="eager" width="16" height="16" decoding="async" data-nimg="1" class="geist-hide-on-dark" style="color:transparent" src="/_next/static/immutable/media/logo-bluesky-light.2may7hm2y7g6v.svg"/><img alt="" data-slot="geist-logo-icon" aria-hidden="true" loading="eager" width="16" height="16" decoding="async" data-nimg="1" class="geist-hide-on-light" style="color:transparent" src="/_next/static/immutable/media/logo-bluesky-dark.39tbulfg2p-1z.svg"/></a></div></div><!--$--><!--/$--></div></footer></div></div></div><script>$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:3","S:3")</script><script>$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};;$RX("B:0","BAILOUT_TO_CLIENT_SIDE_RENDERING")</script><script>$RX("B:2","BAILOUT_TO_CLIENT_SIDE_RENDERING")</script><script>$RX("B:1","BAILOUT_TO_CLIENT_SIDE_RENDERING")</script></body></html><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[84293,[\"/_next/static/immutable/chunks/3o1b2g318vnd5.js\"],\"default\"]\n3:I[593950,[\"/_next/static/immutable/chunks/3o1b2g318vnd5.js\"],\"default\"]\n4:I[477183,[\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"/_next/static/immutable/chunks/16yu5hnhikfuz.js\",\"/_next/static/immutable/chunks/36wnellv-yn9q.js\",\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"/_next/static/immutable/chunks/41mpz_qh0bqa2.js\",\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"/_next/static/immutable/chunks/33h268ieyla48.js\"],\"GeistThemeScript\"]\n5:I[623370,[\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"/_next/static/immutable/chunks/16yu5hnhikfuz.js\",\"/_next/static/immutable/chunks/36wnellv-yn9q.js\",\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"/_next/static/immutable/chunks/41mpz_qh0bqa2.js\",\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"/_next/static/immutable/chunks/33h268ieyla48.js\"],\"BotRenderCheck\"]\n6:I[261386,[\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"/_next/static/immutable/chunks/16yu5hnhikfuz.js\",\"/_next/static/immutable/chunks/36wnellv-yn9q.js\",\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"/_next/static/immutable/chunks/41mpz_qh0bqa2.js\",\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"/_next/static/immutable/chunks/33h268ieyla48.js\"],\"Analytics\"]\n7:I[415790,[\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"/_next/static/immutable/chunks/16yu5hnhikfuz.js\",\"/_next/static/immutable/chunks/36wnellv-yn9q.js\",\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"/_next/static/immutable/chunks/41mpz_qh0bqa2.js\",\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"/_next/static/immutable/chunks/33h268ieyla48.js\"],\"PrefetchCrossZoneLinksProvider\"]\n8:I[996359,[\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"/_next/static/immutable/chunks/16yu5hnhikfuz.js\",\"/_next/static/immutable/chunks/36wnellv-yn9q.js\",\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"/_next/static/immutable/chunks/41mpz_qh0bqa2.js\",\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"/_next/static/immutable/chunks/33h268ieyla48.js\"],\"Toaster\"]\n9:I[358148,[\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"/_ne"])</script><script>self.__next_f.push([1,"xt/static/immutable/chunks/16yu5hnhikfuz.js\",\"/_next/static/immutable/chunks/36wnellv-yn9q.js\",\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"/_next/static/immutable/chunks/41mpz_qh0bqa2.js\",\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"/_next/static/immutable/chunks/33h268ieyla48.js\"],\"HeaderShell\"]\na:I[173822,[\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"/_next/static/immutable/chunks/16yu5hnhikfuz.js\",\"/_next/static/immutable/chunks/36wnellv-yn9q.js\",\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"/_next/static/immutable/chunks/41mpz_qh0bqa2.js\",\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"/_next/static/immutable/chunks/33h268ieyla48.js\"],\"SkipNavLink\"]\n1b:I[370291,[],\"default\",1]\n:HL[\"/_next/static/immutable/chunks/2etu-eo_a7a99.css\",\"style\"]\n:HL[\"/_next/static/immutable/chunks/3zlwhcx-a_s0h.css\",\"style\"]\n:HL[\"/_next/static/immutable/chunks/3oe7kkt-ckh2k.css\",\"style\"]\n:HL[\"/_next/static/immutable/chunks/3hcatbgun-7ra.css\",\"style\"]\n:HL[\"/_next/static/immutable/media/797e433ab948586e.p.1v5bejj26fx9h.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/immutable/media/Geist_Variable-s.p.2v-cf9syxr5ni.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n16:X\n17:X\n18:X\n19:X\n1c:X\n1d:X\n1e:X\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"docs\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"(next-site)\",{\"children\":[\"docs\",{\"children\":[[\"slug\",\"\",\"oc\",[\"app\",\"llm-digest\",\"llms-full.txt\",\"llms.txt\",\"messages\",\"pages\"]],{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4608]},\"$undefined\",\"$undefined\",4624]},\"$undefined\",\"$undefined\",4624],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/immutable/chunks/2etu-eo_a7a99.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/immutable/chunks/3zlwhcx-a_s0h.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/immutable/chunks/3oe7kkt-ckh2k.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/immutable/chunks/3hcatbgun-7ra.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-5\",{\"src\":\"/_next/static/immutable/chunks/16yu5hnhikfuz.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-6\",{\"src\":\"/_next/static/immutable/chunks/36wnellv-yn9q.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-7\",{\"src\":\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-8\",{\"src\":\"/_next/static/immutable/chunks/41mpz_qh0bqa2.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-9\",{\"src\":\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-10\",{\"src\":\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-11\",{\"src\":\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-12\",{\"src\":\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-13\",{\"src\":\"/_next/static/immutable/chunks/33h268ieyla48.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"className\":\"geist_mono_98cac566-module__bcNCwW__className geistsans_d5a4f12f-module__0YjCsW__className geist_mono_98cac566-module__bcNCwW__variable geistsans_d5a4f12f-module__0YjCsW__variable\",\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"$L4\",null,{\"storageKey\":\"zeit-theme\"}],[\"$\",\"$L5\",null,{}]]}],[\"$\",\"body\",null,{\"children\":[[\"$\",\"$L6\",null,{}],[\"$\",\"$L7\",null,{\"children\":[[[\"$\",\"$L8\",null,{}],[\"$\",\"$L9\",null,{\"sticky\":true,\"children\":[[\"$\",\"$La\",null,{\"tabIndex\":0}],[\"$\",\"nav\",null,{\"className\":\"navbar-module__cV3TuW__nav\",\"children\":[[\"$\",\"div\",null,{\"className\":\"navbar-module__cV3TuW__mobileTop\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-row items-center justify-start gap-1 flex-initial\",\"children\":[\"$Lb\",\"$Lc\",\"$Ld\"]}],\"$Le\"]}],\"$Lf\",\"$L10\"]}]]}],null],\"$L11\"]}],\"$L12\",null]}]]}]]}],{\"children\":[\"$L13\",{\"children\":[\"$L14\",{\"children\":[\"$L15\",{},null,true,\"$16\"]},null,true,\"$17\"]},null,true,\"$18\"]},null,true,\"$19\"]},null,true,\"$17\"],\"$L1a\",true]],\"m\":\"$undefined\",\"G\":[\"$1b\",[]],\"S\":true,\"h\":\"$1c\",\"r\":\"$1d\",\"s\":\"$1e\",\"a\":\"$@1f\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"20:I[135298,[\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"/_next/static/immutable/chunks/16yu5hnhikfuz.js\",\"/_next/static/immutable/chunks/36wnellv-yn9q.js\",\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"/_next/static/immutable/chunks/41mpz_qh0bqa2.js\",\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"/_next/static/immutable/chunks/33h268ieyla48.js\"],\"VercelLogo\"]\n21:I[415790,[\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"/_next/static/immutable/chunks/16yu5hnhikfuz.js\",\"/_next/static/immutable/chunks/36wnellv-yn9q.js\",\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"/_next/static/immutable/chunks/41mpz_qh0bqa2.js\",\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"/_next/static/immutable/chunks/33h268ieyla48.js\"],\"Link\"]\n22:I[205879,[\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"/_next/static/immutable/chunks/16yu5hnhikfuz.js\",\"/_next/static/immutable/chunks/36wnellv-yn9q.js\",\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"/_next/static/immutable/chunks/41mpz_qh0bqa2.js\",\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"/_next/static/immutable/chunks/33h268ieyla48.js\",\"/_next/static/immutable/chunks/2rrj9zsrpzi4o.js\",\"/_next/static/immutable/chunks/3_xgjnhjj5nm_.js\",\"/_next/static/immutable/chunks/2k_16qb116v9d.js\",\"/_next/static/immutable/chunks/34czdxd89m8hc.js\"],\"Image\"]\n23:I[135298,[\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"/_next/static/immutable/chunks/16yu5hnhikfuz.js\",\"/_next/static/immutable/chunks/36wnellv-yn9q.js\",\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"/_next/static/immutable/chunks/41mpz_qh0bqa2.js\",\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"/_next/static/immutable/chunks/33h268ieyla48.js\"],\"Search\"]\n24:I[135298,[\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"/_next/static/immutable/chunks/16yu5hnhikfuz.js\",\"/_next/static/immutable/chunks/36wnellv-yn9q.js\",\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"/_next/static/immutable/chunks/41mpz_qh0bqa2.js\",\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"/_next/static/immutable/chunks/33h268ieyla48.js\"],\"MobileMenuToggle\"]\n25:I[135298,[\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"/"])</script><script>self.__next_f.push([1,"_next/static/immutable/chunks/16yu5hnhikfuz.js\",\"/_next/static/immutable/chunks/36wnellv-yn9q.js\",\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"/_next/static/immutable/chunks/41mpz_qh0bqa2.js\",\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"/_next/static/immutable/chunks/33h268ieyla48.js\"],\"LogoContextMenu\"]\n26:I[135298,[\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"/_next/static/immutable/chunks/16yu5hnhikfuz.js\",\"/_next/static/immutable/chunks/36wnellv-yn9q.js\",\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"/_next/static/immutable/chunks/41mpz_qh0bqa2.js\",\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"/_next/static/immutable/chunks/33h268ieyla48.js\"],\"NavLink\"]\n27:I[135298,[\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"/_next/static/immutable/chunks/16yu5hnhikfuz.js\",\"/_next/static/immutable/chunks/36wnellv-yn9q.js\",\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"/_next/static/immutable/chunks/41mpz_qh0bqa2.js\",\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"/_next/static/immutable/chunks/33h268ieyla48.js\"],\"NavExternalLink\"]\n28:I[135298,[\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"/_next/static/immutable/chunks/16yu5hnhikfuz.js\",\"/_next/static/immutable/chunks/36wnellv-yn9q.js\",\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"/_next/static/immutable/chunks/41mpz_qh0bqa2.js\",\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"/_next/static/immutable/chunks/33h268ieyla48.js\"],\"HeaderActions\"]\n29:I[689110,[\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"/_next/static/immutable/chunks/16yu5hnhikfuz.js\",\"/_next/static/immutable/chunks/36wnellv-yn9q.js\",\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"/_next/static/immutable/chunks/41mpz_qh0bqa2.js\",\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"/_next/static/immutable/chunks/33h268ieyla48.js\"],\"Provider\"]\n2a:I[660362,[\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"/_next/static/immutable/chunks/16yu5hnhikfuz.js\",\"/_next/static/immutable/chunks/36wnellv-yn9q.js\",\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"/_next/static/immutable/chunks/41mpz_qh0bqa2.js\",\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"/_next/static/immutable/chunks/33h268ieyla48.js\"]"])</script><script>self.__next_f.push([1,",\"HydrateMeLater\"]\n2b:I[490706,[\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"/_next/static/immutable/chunks/16yu5hnhikfuz.js\",\"/_next/static/immutable/chunks/36wnellv-yn9q.js\",\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"/_next/static/immutable/chunks/41mpz_qh0bqa2.js\",\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"/_next/static/immutable/chunks/33h268ieyla48.js\"],\"default\"]\n34:I[415790,[\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"/_next/static/immutable/chunks/16yu5hnhikfuz.js\",\"/_next/static/immutable/chunks/36wnellv-yn9q.js\",\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"/_next/static/immutable/chunks/41mpz_qh0bqa2.js\",\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"/_next/static/immutable/chunks/33h268ieyla48.js\"],\"PrefetchCrossZoneLinks\"]\n35:I[938799,[\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"/_next/static/immutable/chunks/16yu5hnhikfuz.js\",\"/_next/static/immutable/chunks/36wnellv-yn9q.js\",\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"/_next/static/immutable/chunks/41mpz_qh0bqa2.js\",\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"/_next/static/immutable/chunks/33h268ieyla48.js\",\"/_next/static/immutable/chunks/2rrj9zsrpzi4o.js\",\"/_next/static/immutable/chunks/3_xgjnhjj5nm_.js\"],\"DocsNavProvider\"]\n39:I[141717,[\"/_next/static/immutable/chunks/3o1b2g318vnd5.js\"],\"OutletBoundary\"]\n3a:\"$Sreact.suspense\"\n3c:I[141717,[\"/_next/static/immutable/chunks/3o1b2g318vnd5.js\"],\"ViewportBoundary\"]\n3e:I[141717,[\"/_next/static/immutable/chunks/3o1b2g318vnd5.js\"],\"MetadataBoundary\"]\nb:[\"$\",\"$L20\",null,{}]\nc:[\"$\",\"svg\",null,{\"height\":\"32\",\"viewBox\":\"0 0 32 32\",\"width\":\"32\",\"children\":[\"$\",\"path\",null,{\"d\":\"M22 5L9 28\",\"stroke\":\"var(--accents-2)\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"}]}]\nd:[\"$\",\"$L21\",null,{\"className\":\"navbar-module__cV3TuW__mobileLogo\",\"href\":\"/\",\"title\":\"Go to the homepage\",\"children\":[[\"$\",\"$L22\",null,{\"alt\":\"NextjsLogotype\",\"className\":\"geist-hide-on-dark\",\"data-slot\":\"geist-logo\",\"height\":18,\"loading\":\"eager\",\"src\":{\"src\":\"/_next/static/immutable/media/nextjs-logotype-light.00-_80jv8_dct.svg\",\"width\":278,\"height\":56,\"blurWidth\":0,\"blurHeight\":0},\"style\":\"$undefined\",\"width\":89}],[\"$\",\"$L22\",null,{\"alt\":\"NextjsLogotype\",\"className\":\"geist-hide-on-light\",\"data-slot\":\"geist-logo\",\"height\":18,\"loading\":\"eager\",\"src\":{\"src\":\"/_next/static/immutable/media/nextjs-logotype-dark.3h4a2z2v_dkod.svg\",\"width\":278,\"height\":56,\"blurWidth\":0,\"blurHeight\":0},\"style\":\"$undefined\",\"width\":89}]]}]\ne:[\"$\",\"div\",null,{\"className\":\"navbar-module__cV3TuW__mobileTopRight\",\"children\":[[\"$\",\"$L23\",null,{\"children\":[[\"$\",\"kbd\",null,{\"suppressHydrationWarning\":true,\"children\":\"⌘K\"}],[\"$\",\"script\",null,{\"type\":\"text/javascript\",\"suppressHydrationWarning\":true,\"dangerouslySetInnerHTML\":{\"__html\":\"{var s=document.currentScript,n=s\u0026\u0026s.previousElementSibling;if(n)n.textContent=/^Mac/.test(navigator.platform)?\\\"⌘K\\\":\\\"CtrlK\\\"}\"}}]]}],[\"$\",\"$L24\",null,{}]]}]\n"])</script><script>self.__next_f.push([1,"f:[\"$\",\"div\",null,{\"className\":\"navbar-module__cV3TuW__links\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-row items-center justify-start gap-1 flex-initial\",\"children\":[[\"$\",\"$L20\",null,{}],[\"$\",\"svg\",null,{\"height\":\"32\",\"viewBox\":\"0 0 32 32\",\"width\":\"32\",\"children\":[\"$\",\"path\",null,{\"d\":\"M22 5L9 28\",\"stroke\":\"var(--accents-2)\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"}]}],[\"$\",\"$L25\",null,{\"children\":[\"$\",\"$L21\",null,{\"aria-label\":\"Go to the homepage\",\"className\":\"navbar-module__cV3TuW__logo\",\"href\":\"/\",\"title\":\"Go to the homepage\",\"children\":[[\"$\",\"$L22\",null,{\"alt\":\"NextjsLogotype\",\"className\":\"geist-hide-on-dark\",\"data-slot\":\"geist-logo\",\"height\":18,\"loading\":\"eager\",\"src\":\"$d:props:children:0:props:src\",\"style\":\"$undefined\",\"width\":89}],[\"$\",\"$L22\",null,{\"alt\":\"NextjsLogotype\",\"className\":\"geist-hide-on-light\",\"data-slot\":\"geist-logo\",\"height\":18,\"loading\":\"eager\",\"src\":\"$d:props:children:1:props:src\",\"style\":\"$undefined\",\"width\":89}]]}]}]]}],[\"$\",\"$L26\",null,{\"href\":\"/showcase\",\"children\":\"Showcase\"}],[\"$\",\"$L26\",null,{\"href\":\"/docs\",\"title\":\"Documentation\",\"children\":\"Docs\"}],[\"$\",\"$L26\",null,{\"href\":\"/blog\",\"children\":\"Blog\"}],[\"$\",\"$L27\",null,{\"arrow\":true,\"campaign\":\"next_site_nav_templates\",\"href\":\"https://vercel.com/templates/next.js?utm_source=next-site\u0026utm_medium=navbar\",\"track\":\"Templates nav\",\"children\":\"Templates\"}],[\"$\",\"$L27\",null,{\"arrow\":true,\"campaign\":\"next_site_nav_enterprise\",\"href\":\"https://vercel.com/contact/sales/nextjs?utm_source=next-site\u0026utm_medium=navbar\",\"track\":\"Enterprise nav\",\"children\":\"Enterprise\"}]]}]\n"])</script><script>self.__next_f.push([1,"10:[\"$\",\"div\",null,{\"className\":\"navbar-module__cV3TuW__headerButtons\",\"children\":[[\"$\",\"$L23\",null,{\"children\":[[\"$\",\"kbd\",null,{\"suppressHydrationWarning\":true,\"children\":\"⌘K\"}],[\"$\",\"script\",null,{\"type\":\"text/javascript\",\"suppressHydrationWarning\":true,\"dangerouslySetInnerHTML\":{\"__html\":\"{var s=document.currentScript,n=s\u0026\u0026s.previousElementSibling;if(n)n.textContent=/^Mac/.test(navigator.platform)?\\\"⌘K\\\":\\\"CtrlK\\\"}\"}}]]}],[\"$\",\"$L28\",null,{}]]}]\n"])</script><script>self.__next_f.push([1,"11:[\"$\",\"$L29\",null,{\"children\":[[\"$\",\"main\",null,{\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],[\"$\",\"$L2a\",null,{\"children\":[\"$\",\"$L2b\",null,{\"className\":\"footer-module__rV1DKq__root\",\"wide\":true,\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-(--geist-page-width-with-margin) px-(--geist-page-margin)\",\"children\":[\"$\",\"footer\",null,{\"className\":\"footer-module__rV1DKq__footer\",\"children\":[[\"$\",\"div\",null,{\"className\":\"footer-module__rV1DKq__grid\",\"children\":[[\"$\",\"div\",null,{\"data-logo\":true,\"className\":\"flex flex-row items-stretch justify-between flex-initial\",\"children\":[[\"$\",\"a\",null,{\"aria-label\":\"Vercel logo\",\"data-logo-link\":\"\",\"href\":\"https://vercel.com/home?utm_source=next-site\u0026utm_medium=footer\u0026utm_campaign=next-website\",\"rel\":\"noopener noreferrer\",\"target\":\"_blank\",\"title\":\"Go to the Vercel website\",\"className\":\"flex flex-col items-stretch justify-start flex-initial\",\"children\":[[\"$\",\"$L22\",null,{\"alt\":\"VercelLogotype\",\"className\":\"geist-hide-on-dark\",\"data-slot\":\"geist-logo\",\"height\":20,\"loading\":\"eager\",\"src\":{\"src\":\"/_next/static/immutable/media/vercel-logotype-light.0k7echqflwha4.svg\",\"width\":261,\"height\":52,\"blurWidth\":0,\"blurHeight\":0},\"style\":\"$undefined\",\"width\":100}],[\"$\",\"$L22\",null,{\"alt\":\"VercelLogotype\",\"className\":\"geist-hide-on-light\",\"data-slot\":\"geist-logo\",\"height\":20,\"loading\":\"eager\",\"src\":{\"src\":\"/_next/static/immutable/media/vercel-logotype-dark.3m9ycmsc1ql8m.svg\",\"width\":261,\"height\":52,\"blurWidth\":0,\"blurHeight\":0},\"style\":\"$undefined\",\"width\":100}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-row items-center justify-start gap-3 flex-initial footer-module__rV1DKq__socialsDesktop\",\"children\":[[\"$\",\"a\",null,{\"aria-label\":\"GitHub\",\"href\":\"https://github.com/vercel/next.js\",\"rel\":\"noopener\",\"target\":\"_blank\",\"style\":{\"mixBlendMode\":\"luminosity\"},\"children\":[[\"$\",\"$L22\",null,{\"alt\":\"\",\"className\":\"geist-hide-on-dark\",\"data-slot\":\"geist-logo-icon\",\"height\":16,\"loading\":\"eager\",\"src\":{\"src\":\"/_next/static/immutable/media/logo-github-light.3dl3lqjq1azpp.svg\",\"width\":16,\"height\":16,\"blurWidth\":0,\"blurHeight\":0},\"style\":\"$undefined\",\"width\":16,\"aria-hidden\":true}],[\"$\",\"$L22\",null,{\"alt\":\"\",\"className\":\"geist-hide-on-light\",\"data-slot\":\"geist-logo-icon\",\"height\":16,\"loading\":\"eager\",\"src\":{\"src\":\"/_next/static/immutable/media/logo-github-dark.1k-70sin_m3qn.svg\",\"width\":16,\"height\":16,\"blurWidth\":0,\"blurHeight\":0},\"style\":\"$undefined\",\"width\":16,\"aria-hidden\":true}]]}],[\"$\",\"hr\",null,{}],[\"$\",\"a\",null,{\"aria-label\":\"X\",\"href\":\"https://x.com/nextjs\",\"rel\":\"noopener\",\"target\":\"_blank\",\"style\":{\"mixBlendMode\":\"luminosity\"},\"children\":[[\"$\",\"$L22\",null,{\"alt\":\"\",\"className\":\"geist-hide-on-dark\",\"data-slot\":\"geist-logo-icon\",\"height\":16,\"loading\":\"eager\",\"src\":{\"src\":\"/_next/static/immutable/media/logo-twitter-x-light.0dvkch_c5dvys.svg\",\"width\":16,\"height\":16,\"blurWidth\":0,\"blurHeight\":0},\"style\":\"$undefined\",\"width\":16,\"aria-hidden\":true}],[\"$\",\"$L22\",null,{\"alt\":\"\",\"className\":\"geist-hide-on-light\",\"data-slot\":\"geist-logo-icon\",\"height\":16,\"loading\":\"eager\",\"src\":{\"src\":\"/_next/static/immutable/media/logo-twitter-x-dark.1-i769nzu94hl.svg\",\"width\":16,\"height\":16,\"blurWidth\":0,\"blurHeight\":0},\"style\":\"$undefined\",\"width\":16,\"aria-hidden\":true}]]}],[\"$\",\"hr\",null,{}],[\"$\",\"a\",null,{\"aria-label\":\"Bluesky\",\"href\":\"https://bsky.app/profile/nextjs.org\",\"rel\":\"noopener\",\"target\":\"_blank\",\"style\":{\"mixBlendMode\":\"luminosity\"},\"children\":[[\"$\",\"$L22\",null,{\"alt\":\"\",\"className\":\"geist-hide-on-dark\",\"data-slot\":\"geist-logo-icon\",\"height\":16,\"loading\":\"eager\",\"src\":{\"src\":\"/_next/static/immutable/media/logo-bluesky-light.2may7hm2y7g6v.svg\",\"width\":16,\"height\":16,\"blurWidth\":0,\"blurHeight\":0},\"style\":\"$undefined\",\"width\":16,\"aria-hidden\":true}],[\"$\",\"$L22\",null,{\"alt\":\"\",\"className\":\"geist-hide-on-light\",\"data-slot\":\"geist-logo-icon\",\"height\":16,\"loading\":\"eager\",\"src\":{\"src\":\"/_next/static/immutable/media/logo-bluesky-dark.39tbulfg2p-1z.svg\",\"width\":16,\"height\":16,\"blurWidth\":0,\"blurHeight\":0},\"style\":\"$undefined\",\"width\":16,\"aria-hidden\":true}]]}]]}]]}],\"$L2c\",\"$L2d\",\"$L2e\",\"$L2f\",\"$L30\"]}],\"$L31\"]}]}]}]}],\"$L32\",\"$L33\"]}]\n"])</script><script>self.__next_f.push([1,"12:[\"$\",\"$L34\",null,{}]\n"])</script><script>self.__next_f.push([1,"13:[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/immutable/chunks/2rrj9zsrpzi4o.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/immutable/chunks/3_xgjnhjj5nm_.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L35\",null,{\"items\":{\"13\":[{\"title\":\"Getting Started\",\"description\":\"Learn how to create full-stack web applications with Next.js.\",\"path\":\"13/getting-started\",\"version\":\"$undefined\",\"source\":\"docs/13/01-getting-started/index.mdx\",\"children\":[{\"title\":\"Installation\",\"description\":\"Create a new Next.js application with `create-next-app`. Set up TypeScript, styles, and configure your `next.config.js` file.\",\"path\":\"13/getting-started/installation\",\"version\":\"$undefined\",\"source\":\"docs/13/01-getting-started/01-installation.mdx\",\"children\":[],\"lastModified\":\"2023-09-27\"},{\"title\":\"Project Structure\",\"description\":\"A list of folders and files conventions in a Next.js project\",\"path\":\"13/getting-started/project-structure\",\"version\":\"$undefined\",\"source\":\"docs/13/01-getting-started/02-project-structure.mdx\",\"children\":[],\"lastModified\":\"2023-09-26\"}],\"lastModified\":\"2023-08-24\"},{\"title\":\"Building Your Application\",\"description\":\"Learn how to use Next.js features to build your application.\",\"path\":\"13/app/building-your-application\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/index.mdx\",\"children\":[{\"title\":\"Routing\",\"description\":\"Learn the fundamentals of routing for front-end applications.\",\"path\":\"13/app/building-your-application/routing\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/01-routing/index.mdx\",\"children\":[{\"title\":\"Defining Routes\",\"description\":\"Learn how to create your first route in Next.js.\",\"path\":\"13/app/building-your-application/routing/defining-routes\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/01-routing/01-defining-routes.mdx\",\"children\":[],\"lastModified\":\"2023-06-12\"},{\"title\":\"Pages and Layouts\",\"description\":\"Create your first page and shared layout with the App Router.\",\"path\":\"13/app/building-your-application/routing/pages-and-layouts\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/01-routing/02-pages-and-layouts.mdx\",\"children\":[],\"lastModified\":\"2023-09-03\"},{\"title\":\"Linking and Navigating\",\"description\":\"Learn how navigation works in Next.js, and how to use the Link Component and `useRouter` hook.\",\"path\":\"13/app/building-your-application/routing/linking-and-navigating\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/01-routing/03-linking-and-navigating.mdx\",\"children\":[],\"lastModified\":\"2023-09-25\"},{\"title\":\"Route Groups\",\"description\":\"Route Groups can be used to partition your Next.js application into different sections.\",\"path\":\"13/app/building-your-application/routing/route-groups\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/01-routing/04-route-groups.mdx\",\"children\":[],\"lastModified\":\"2023-06-12\"},{\"title\":\"Dynamic Routes\",\"description\":\"Dynamic Routes can be used to programmatically generate route segments from dynamic data.\",\"path\":\"13/app/building-your-application/routing/dynamic-routes\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/01-routing/05-dynamic-routes.mdx\",\"children\":[],\"lastModified\":\"2023-08-24\"},{\"title\":\"Loading UI and Streaming\",\"description\":\"Built on top of Suspense, Loading UI allows you to create a fallback for specific route segments, and automatically stream content as it becomes ready.\",\"path\":\"13/app/building-your-application/routing/loading-ui-and-streaming\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/01-routing/06-loading-ui-and-streaming.mdx\",\"children\":[],\"lastModified\":\"2023-08-22\"},{\"title\":\"Error Handling\",\"description\":\"Handle runtime errors by automatically wrapping route segments and their nested children in a React Error Boundary.\",\"path\":\"13/app/building-your-application/routing/error-handling\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/01-routing/07-error-handling.mdx\",\"children\":[],\"lastModified\":\"2023-10-04\"},{\"title\":\"Parallel Routes\",\"description\":\"Simultaneously render one or more pages in the same view that can be navigated independently. A pattern for highly dynamic applications.\",\"path\":\"13/app/building-your-application/routing/parallel-routes\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/01-routing/08-parallel-routes.mdx\",\"children\":[],\"lastModified\":\"2023-07-31\"},{\"title\":\"Intercepting Routes\",\"description\":\"Use intercepting routes to load a new route within the current layout while masking the browser URL, useful for advanced routing patterns such as modals.\",\"path\":\"13/app/building-your-application/routing/intercepting-routes\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/01-routing/09-intercepting-routes.mdx\",\"children\":[],\"lastModified\":\"2023-08-11\"},{\"title\":\"Route Handlers\",\"description\":\"Create custom request handlers for a given route using the Web's Request and Response APIs.\",\"path\":\"13/app/building-your-application/routing/route-handlers\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/01-routing/10-route-handlers.mdx\",\"children\":[],\"lastModified\":\"2023-09-29\"},{\"title\":\"Middleware\",\"description\":\"Learn how to use Middleware to run code before a request is completed.\",\"path\":\"13/app/building-your-application/routing/middleware\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/01-routing/11-middleware.mdx\",\"children\":[],\"lastModified\":\"2023-09-29\"},{\"title\":\"Project Organization\",\"description\":\"Learn how to organize your Next.js project and colocate files.\",\"path\":\"13/app/building-your-application/routing/colocation\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/01-routing/12-colocation.mdx\",\"children\":[],\"lastModified\":\"2023-07-20\"},{\"title\":\"Internationalization\",\"description\":\"Add support for multiple languages with internationalized routing and localized content.\",\"path\":\"13/app/building-your-application/routing/internationalization\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/01-routing/13-internationalization.mdx\",\"children\":[],\"lastModified\":\"2023-09-20\"}],\"lastModified\":\"2023-08-24\"},{\"title\":\"Data Fetching\",\"description\":\"Learn how to fetch, cache, revalidate, and mutate data with Next.js.\",\"path\":\"13/app/building-your-application/data-fetching\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/02-data-fetching/index.mdx\",\"children\":[{\"title\":\"Fetching, Caching, and Revalidating\",\"description\":\"Learn how to fetch, cache, and revalidate data in your Next.js application.\",\"path\":\"13/app/building-your-application/data-fetching/fetching-caching-and-revalidating\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/02-data-fetching/01-fetching-caching-and-revalidating.mdx\",\"children\":[],\"lastModified\":\"2023-10-12\"},{\"title\":\"Data Fetching Patterns\",\"description\":\"Learn about common data fetching patterns in React and Next.js.\",\"path\":\"13/app/building-your-application/data-fetching/patterns\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/02-data-fetching/02-patterns.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"Server Actions and Mutations\",\"description\":\"Learn how to handle form submissions and data mutations with Next.js.\",\"path\":\"13/app/building-your-application/data-fetching/server-actions-and-mutations\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/02-data-fetching/02-server-actions-and-mutations.mdx\",\"children\":[],\"lastModified\":\"$undefined\"},{\"title\":\"Forms and Mutations\",\"description\":\"Learn how to handle form submissions and data mutations with Next.js.\",\"path\":\"13/app/building-your-application/data-fetching/forms-and-mutations\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/02-data-fetching/03-forms-and-mutations.mdx\",\"children\":[],\"lastModified\":\"2023-09-28\"}],\"lastModified\":\"2023-10-09\"},{\"title\":\"Rendering\",\"description\":\"Learn the differences between Next.js rendering environments, strategies, and runtimes.\",\"path\":\"13/app/building-your-application/rendering\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/03-rendering/index.mdx\",\"children\":[{\"title\":\"Server Components\",\"description\":\"Learn how you can use React Server Components to render parts of your application on the server.\",\"path\":\"13/app/building-your-application/rendering/server-components\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/03-rendering/01-server-components.mdx\",\"children\":[],\"lastModified\":\"2023-09-16\"},{\"title\":\"Client Components\",\"description\":\"Learn how to use Client Components to render parts of your application on the client.\",\"path\":\"13/app/building-your-application/rendering/client-components\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/03-rendering/02-client-components.mdx\",\"children\":[],\"lastModified\":\"2023-10-09\"},{\"title\":\"Composition Patterns\",\"description\":\"Recommended patterns for using Server and Client Components.\",\"path\":\"13/app/building-your-application/rendering/composition-patterns\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/03-rendering/03-composition-patterns.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"Edge and Node.js Runtimes\",\"description\":\"Learn about the switchable runtimes (Edge and Node.js) in Next.js.\",\"path\":\"13/app/building-your-application/rendering/edge-and-nodejs-runtimes\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/03-rendering/04-edge-and-nodejs-runtimes.mdx\",\"children\":[],\"lastModified\":\"2023-09-06\"}],\"lastModified\":\"2023-09-13\"},{\"title\":\"Caching\",\"description\":\"An overview of caching mechanisms in Next.js.\",\"path\":\"13/app/building-your-application/caching\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/04-caching/index.mdx\",\"children\":[],\"lastModified\":\"2023-09-25\"},{\"title\":\"Styling\",\"description\":\"Learn the different ways you can style your Next.js application.\",\"path\":\"13/app/building-your-application/styling\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/05-styling/index.mdx\",\"children\":[{\"title\":\"CSS Modules\",\"description\":\"Style your Next.js Application with CSS Modules.\",\"path\":\"13/app/building-your-application/styling/css-modules\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/05-styling/01-css-modules.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"Tailwind CSS\",\"description\":\"Style your Next.js Application using Tailwind CSS.\",\"path\":\"13/app/building-your-application/styling/tailwind-css\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/05-styling/02-tailwind-css.mdx\",\"children\":[],\"lastModified\":\"2023-07-31\"},{\"title\":\"CSS-in-JS\",\"description\":\"Use CSS-in-JS libraries with Next.js\",\"path\":\"13/app/building-your-application/styling/css-in-js\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/05-styling/03-css-in-js.mdx\",\"children\":[],\"lastModified\":\"2023-08-04\"},{\"title\":\"Sass\",\"description\":\"Style your Next.js application using Sass.\",\"path\":\"13/app/building-your-application/styling/sass\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/05-styling/04-sass.mdx\",\"children\":[],\"lastModified\":\"2023-07-31\"}],\"lastModified\":\"2023-07-31\"},{\"title\":\"Optimizing\",\"description\":\"Optimize your Next.js application for best performance and user experience.\",\"path\":\"13/app/building-your-application/optimizing\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/06-optimizing/index.mdx\",\"children\":[{\"title\":\"Images\",\"description\":\"Optimize your images with the built-in `next/image` component.\",\"path\":\"13/app/building-your-application/optimizing/images\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/06-optimizing/01-images.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"Fonts\",\"description\":\"Optimize your application's web fonts with the built-in `next/font` loaders.\",\"path\":\"13/app/building-your-application/optimizing/fonts\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/06-optimizing/02-fonts.mdx\",\"children\":[],\"lastModified\":\"2023-07-31\"},{\"title\":\"Scripts\",\"description\":\"Optimize 3rd party scripts with the built-in Script component.\",\"path\":\"13/app/building-your-application/optimizing/scripts\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/06-optimizing/03-scripts.mdx\",\"children\":[],\"lastModified\":\"2023-10-15\"},{\"title\":\"Metadata\",\"description\":\"Use the Metadata API to define metadata in any layout or page.\",\"path\":\"13/app/building-your-application/optimizing/metadata\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/06-optimizing/04-metadata.mdx\",\"children\":[],\"lastModified\":\"2023-10-12\"},{\"title\":\"Static Assets\",\"description\":\"Next.js allows you to serve static files, like images, in the public directory. You can learn how it works here.\",\"path\":\"13/app/building-your-application/optimizing/static-assets\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/06-optimizing/05-static-assets.mdx\",\"children\":[],\"lastModified\":\"2023-07-31\"},{\"title\":\"Lazy Loading\",\"description\":\"Lazy load imported libraries and React Components to improve your application's loading performance.\",\"path\":\"13/app/building-your-application/optimizing/lazy-loading\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/06-optimizing/06-lazy-loading.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"Analytics\",\"description\":\"Measure and track page performance using Next.js Speed Insights\",\"path\":\"13/app/building-your-application/optimizing/analytics\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/06-optimizing/07-analytics.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"OpenTelemetry\",\"description\":\"Learn how to instrument your Next.js app with OpenTelemetry.\",\"path\":\"13/app/building-your-application/optimizing/open-telemetry\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/06-optimizing/08-open-telemetry.mdx\",\"children\":[],\"lastModified\":\"2023-07-31\"},{\"title\":\"Instrumentation\",\"description\":\"Learn how to use instrumentation to run code at server startup in your Next.js app\",\"path\":\"13/app/building-your-application/optimizing/instrumentation\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/06-optimizing/09-instrumentation.mdx\",\"children\":[],\"lastModified\":\"2023-07-31\"}],\"lastModified\":\"2023-07-31\"},{\"title\":\"Configuring\",\"description\":\"Learn how to configure your Next.js application.\",\"path\":\"13/app/building-your-application/configuring\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/07-configuring/index.mdx\",\"children\":[{\"title\":\"TypeScript\",\"description\":\"Next.js provides a TypeScript-first development experience for building your React application.\",\"path\":\"13/app/building-your-application/configuring/typescript\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/07-configuring/01-typescript.mdx\",\"children\":[],\"lastModified\":\"2023-09-11\"},{\"title\":\"ESLint\",\"description\":\"Next.js provides an integrated ESLint experience by default. These conformance rules help you use Next.js in an optimal way.\",\"path\":\"13/app/building-your-application/configuring/eslint\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/07-configuring/02-eslint.mdx\",\"children\":[],\"lastModified\":\"2023-09-05\"},{\"title\":\"Environment Variables\",\"description\":\"Learn to add and access environment variables in your Next.js application.\",\"path\":\"13/app/building-your-application/configuring/environment-variables\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/07-configuring/03-environment-variables.mdx\",\"children\":[],\"lastModified\":\"2023-07-31\"},{\"title\":\"Absolute Imports and Module Path Aliases\",\"description\":\"Configure module path aliases that allow you to remap certain import paths.\",\"path\":\"13/app/building-your-application/configuring/absolute-imports-and-module-aliases\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/07-configuring/04-absolute-imports-and-module-aliases.mdx\",\"children\":[],\"lastModified\":\"2023-07-31\"},{\"title\":\"MDX\",\"description\":\"Learn how to configure MDX to write JSX in your markdown files.\",\"path\":\"13/app/building-your-application/configuring/mdx\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/07-configuring/05-mdx.mdx\",\"children\":[],\"lastModified\":\"2023-10-03\"},{\"title\":\"src Directory\",\"description\":\"Save pages under the `src` directory as an alternative to the root `pages` directory.\",\"path\":\"13/app/building-your-application/configuring/src-directory\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/07-configuring/06-src-directory.mdx\",\"children\":[],\"lastModified\":\"2023-08-02\"},{\"title\":\"Draft Mode\",\"description\":\"Next.js has draft mode to toggle between static and dynamic pages. You can learn how it works with App Router here.\",\"path\":\"13/app/building-your-application/configuring/draft-mode\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/07-configuring/11-draft-mode.mdx\",\"children\":[],\"lastModified\":\"2023-08-24\"},{\"title\":\"Content Security Policy\",\"description\":\"Learn how to set a Content Security Policy (CSP) for your Next.js application.\",\"path\":\"13/app/building-your-application/configuring/content-security-policy\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/07-configuring/15-content-security-policy.mdx\",\"children\":[],\"lastModified\":\"2023-09-26\"}],\"lastModified\":\"2023-07-31\"},{\"title\":\"Deploying\",\"description\":\"Learn how to deploy your Next.js app to production, either managed or self-hosted.\",\"path\":\"13/app/building-your-application/deploying\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/08-deploying/index.mdx\",\"children\":[{\"title\":\"Static Exports\",\"description\":\"Next.js enables starting as a static site or Single-Page Application (SPA), then later optionally upgrading to use features that require a server.\",\"path\":\"13/app/building-your-application/deploying/static-exports\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/08-deploying/01-static-exports.mdx\",\"children\":[],\"lastModified\":\"2023-09-29\"}],\"lastModified\":\"2023-07-31\"},{\"title\":\"Upgrading\",\"description\":\"Learn how to upgrade to the latest versions of Next.js.\",\"path\":\"13/app/building-your-application/upgrading\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/09-upgrading/index.mdx\",\"children\":[{\"title\":\"Codemods\",\"description\":\"Use codemods to upgrade your Next.js codebase when new features are released.\",\"path\":\"13/app/building-your-application/upgrading/codemods\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/09-upgrading/01-codemods.mdx\",\"children\":[],\"lastModified\":\"2023-07-31\"},{\"title\":\"App Router Migration\",\"description\":\"Learn how to upgrade your existing Next.js application from the Pages Router to the App Router.\",\"path\":\"13/app/building-your-application/upgrading/app-router-migration\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/09-upgrading/02-app-router-migration.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"Migrating from Vite\",\"description\":\"Learn how to migrate your existing React application from Vite to Next.js.\",\"path\":\"13/app/building-your-application/upgrading/from-vite\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/01-building-your-application/08-upgrading/03-from-vite.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"}],\"lastModified\":\"2023-07-31\"}],\"lastModified\":\"2023-06-28\"},{\"title\":\"API Reference\",\"description\":\"Next.js API Reference for the App Router.\",\"path\":\"13/app/api-reference\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/index.mdx\",\"children\":[{\"title\":\"Components\",\"description\":\"API Reference for Next.js built-in components.\",\"path\":\"13/app/api-reference/components\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/01-components/index.mdx\",\"children\":[{\"title\":\"Font\",\"description\":\"Optimizing loading web fonts with the built-in `next/font` loaders.\",\"path\":\"13/app/api-reference/components/font\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/01-components/font.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"\u003cImage\u003e\",\"description\":\"Optimize Images in your Next.js Application using the built-in `next/image` Component.\",\"path\":\"13/app/api-reference/components/image\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/01-components/image.mdx\",\"children\":[],\"lastModified\":\"2023-10-02\"},{\"title\":\"\u003cLink\u003e\",\"description\":\"Enable fast client-side navigation with the built-in `next/link` component.\",\"path\":\"13/app/api-reference/components/link\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/01-components/link.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"\u003cScript\u003e\",\"description\":\"Optimize third-party scripts in your Next.js application using the built-in `next/script` Component.\",\"path\":\"13/app/api-reference/components/script\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/01-components/script.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"}],\"lastModified\":\"2023-06-28\"},{\"title\":\"File Conventions\",\"description\":\"API Reference for Next.js Special Files.\",\"path\":\"13/app/api-reference/file-conventions\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/02-file-conventions/index.mdx\",\"children\":[{\"title\":\"default.js\",\"description\":\"API Reference for the default.js file.\",\"path\":\"13/app/api-reference/file-conventions/default\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/02-file-conventions/default.mdx\",\"children\":[],\"lastModified\":\"2023-06-08\"},{\"title\":\"error.js\",\"description\":\"API reference for the error.js special file.\",\"path\":\"13/app/api-reference/file-conventions/error\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/02-file-conventions/error.mdx\",\"children\":[],\"lastModified\":\"2023-09-25\"},{\"title\":\"layout.js\",\"description\":\"API reference for the layout.js file.\",\"path\":\"13/app/api-reference/file-conventions/layout\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/02-file-conventions/layout.mdx\",\"children\":[],\"lastModified\":\"2023-09-29\"},{\"title\":\"loading.js\",\"description\":\"API reference for the loading.js  file.\",\"path\":\"13/app/api-reference/file-conventions/loading\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/02-file-conventions/loading.mdx\",\"children\":[],\"lastModified\":\"2023-08-24\"},{\"title\":\"not-found.js\",\"description\":\"API reference for the not-found.js file.\",\"path\":\"13/app/api-reference/file-conventions/not-found\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/02-file-conventions/not-found.mdx\",\"children\":[],\"lastModified\":\"2023-08-22\"},{\"title\":\"page.js\",\"description\":\"API reference for the page.js file.\",\"path\":\"13/app/api-reference/file-conventions/page\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/02-file-conventions/page.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"route.js\",\"description\":\"API reference for the route.js special file.\",\"path\":\"13/app/api-reference/file-conventions/route\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/02-file-conventions/route.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"Route Segment Config\",\"description\":\"Learn about how to configure options for Next.js route segments.\",\"path\":\"13/app/api-reference/file-conventions/route-segment-config\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/02-file-conventions/route-segment-config.mdx\",\"children\":[],\"lastModified\":\"2023-10-12\"},{\"title\":\"template.js\",\"description\":\"API Reference for the template.js file.\",\"path\":\"13/app/api-reference/file-conventions/template\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/02-file-conventions/template.mdx\",\"children\":[],\"lastModified\":\"2023-09-04\"},{\"title\":\"Metadata Files\",\"description\":\"API documentation for the metadata file conventions.\",\"path\":\"13/app/api-reference/file-conventions/metadata\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/02-file-conventions/01-metadata/index.mdx\",\"children\":[{\"title\":\"favicon, icon, and apple-icon\",\"description\":\"API Reference for the Favicon, Icon and Apple Icon file conventions.\",\"path\":\"13/app/api-reference/file-conventions/metadata/app-icons\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/02-file-conventions/01-metadata/app-icons.mdx\",\"children\":[],\"lastModified\":\"2023-10-12\"},{\"title\":\"manifest.json\",\"description\":\"API Reference for manifest.json file.\",\"path\":\"13/app/api-reference/file-conventions/metadata/manifest\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/02-file-conventions/01-metadata/manifest.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"opengraph-image and twitter-image\",\"description\":\"API Reference for the Open Graph Image and Twitter Image file conventions.\",\"path\":\"13/app/api-reference/file-conventions/metadata/opengraph-image\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/02-file-conventions/01-metadata/opengraph-image.mdx\",\"children\":[],\"lastModified\":\"2023-10-12\"},{\"title\":\"robots.txt\",\"description\":\"API Reference for robots.txt file.\",\"path\":\"13/app/api-reference/file-conventions/metadata/robots\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/02-file-conventions/01-metadata/robots.mdx\",\"children\":[],\"lastModified\":\"2023-06-13\"},{\"title\":\"sitemap.xml\",\"description\":\"API Reference for the sitemap.xml file.\",\"path\":\"13/app/api-reference/file-conventions/metadata/sitemap\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/02-file-conventions/01-metadata/sitemap.mdx\",\"children\":[],\"lastModified\":\"2023-09-01\"}],\"lastModified\":\"2023-06-08\"}],\"lastModified\":\"2023-06-08\"},{\"title\":\"Functions\",\"description\":\"API Reference for Next.js Functions and Hooks.\",\"path\":\"13/app/api-reference/functions\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/04-functions/index.mdx\",\"children\":[{\"title\":\"cookies\",\"description\":\"API Reference for the cookies function.\",\"path\":\"13/app/api-reference/functions/cookies\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/04-functions/cookies.mdx\",\"children\":[],\"lastModified\":\"2023-09-11\"},{\"title\":\"draftMode\",\"description\":\"API Reference for the draftMode function.\",\"path\":\"13/app/api-reference/functions/draft-mode\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/04-functions/draft-mode.mdx\",\"children\":[],\"lastModified\":\"2023-08-24\"},{\"title\":\"fetch\",\"description\":\"API reference for the extended fetch function.\",\"path\":\"13/app/api-reference/functions/fetch\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/04-functions/fetch.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"generateImageMetadata\",\"description\":\"Learn how to generate multiple images in a single Metadata API special file.\",\"path\":\"13/app/api-reference/functions/generate-image-metadata\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/04-functions/generate-image-metadata.mdx\",\"children\":[],\"lastModified\":\"2023-07-05\"},{\"title\":\"generateMetadata\",\"description\":\"Learn how to add Metadata to your Next.js application for improved search engine optimization (SEO) and web shareability.\",\"path\":\"13/app/api-reference/functions/generate-metadata\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/04-functions/generate-metadata.mdx\",\"children\":[],\"lastModified\":\"2023-10-12\"},{\"title\":\"generateStaticParams\",\"description\":\"API reference for the generateStaticParams function.\",\"path\":\"13/app/api-reference/functions/generate-static-params\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/04-functions/generate-static-params.mdx\",\"children\":[],\"lastModified\":\"2023-08-24\"},{\"title\":\"headers\",\"description\":\"API reference for the headers function.\",\"path\":\"13/app/api-reference/functions/headers\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/04-functions/headers.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"ImageResponse\",\"description\":\"API Reference for the ImageResponse constructor.\",\"path\":\"13/app/api-reference/functions/image-response\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/04-functions/image-response.mdx\",\"children\":[],\"lastModified\":\"2023-07-18\"},{\"title\":\"NextRequest\",\"description\":\"API Reference for NextRequest.\",\"path\":\"13/app/api-reference/functions/next-request\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/04-functions/next-request.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"NextResponse\",\"description\":\"API Reference for NextResponse.\",\"path\":\"13/app/api-reference/functions/next-response\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/04-functions/next-response.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"notFound\",\"description\":\"API Reference for the notFound function.\",\"path\":\"13/app/api-reference/functions/not-found\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/04-functions/not-found.mdx\",\"children\":[],\"lastModified\":\"2023-07-10\"},{\"title\":\"permanentRedirect\",\"description\":\"API Reference for the permanentRedirect function.\",\"path\":\"13/app/api-reference/functions/permanentRedirect\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/04-functions/permanentRedirect.mdx\",\"children\":[],\"lastModified\":\"2023-08-29\"},{\"title\":\"redirect\",\"description\":\"API Reference for the redirect function.\",\"path\":\"13/app/api-reference/functions/redirect\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/04-functions/redirect.mdx\",\"children\":[],\"lastModified\":\"2023-10-04\"},{\"title\":\"revalidatePath\",\"description\":\"API Reference for the revalidatePath function.\",\"path\":\"13/app/api-reference/functions/revalidatePath\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/04-functions/revalidatePath.mdx\",\"children\":[],\"lastModified\":\"2023-09-29\"},{\"title\":\"revalidateTag\",\"description\":\"API Reference for the revalidateTag function.\",\"path\":\"13/app/api-reference/functions/revalidateTag\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/04-functions/revalidateTag.mdx\",\"children\":[],\"lastModified\":\"2023-09-29\"},{\"title\":\"Server Actions\",\"description\":\"API Reference for Next.js Server Actions.\",\"path\":\"13/app/api-reference/functions/server-actions\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/04-functions/server-actions.mdx\",\"children\":[],\"lastModified\":\"2023-09-28\"},{\"title\":\"useParams\",\"description\":\"API Reference for the useParams hook.\",\"path\":\"13/app/api-reference/functions/use-params\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/04-functions/use-params.mdx\",\"children\":[],\"lastModified\":\"2023-06-13\"},{\"title\":\"usePathname\",\"description\":\"API Reference for the usePathname hook.\",\"path\":\"13/app/api-reference/functions/use-pathname\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/04-functions/use-pathname.mdx\",\"children\":[],\"lastModified\":\"2023-08-24\"},{\"title\":\"useReportWebVitals\",\"description\":\"API Reference for the useReportWebVitals function.\",\"path\":\"13/app/api-reference/functions/use-report-web-vitals\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/04-functions/use-report-web-vitals.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"useRouter\",\"description\":\"API reference for the useRouter hook.\",\"path\":\"13/app/api-reference/functions/use-router\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/04-functions/use-router.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"useSearchParams\",\"description\":\"API Reference for the useSearchParams hook.\",\"path\":\"13/app/api-reference/functions/use-search-params\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/04-functions/use-search-params.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"useSelectedLayoutSegment\",\"description\":\"API Reference for the useSelectedLayoutSegment hook.\",\"path\":\"13/app/api-reference/functions/use-selected-layout-segment\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/04-functions/use-selected-layout-segment.mdx\",\"children\":[],\"lastModified\":\"2023-08-25\"},{\"title\":\"useSelectedLayoutSegments\",\"description\":\"API Reference for the useSelectedLayoutSegments hook.\",\"path\":\"13/app/api-reference/functions/use-selected-layout-segments\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/04-functions/use-selected-layout-segments.mdx\",\"children\":[],\"lastModified\":\"2023-08-30\"}],\"lastModified\":\"2023-06-28\"},{\"title\":\"next.config.js Options\",\"description\":\"Learn how to configure your application with next.config.js.\",\"path\":\"13/app/api-reference/next-config-js\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/05-next-config-js/index.mdx\",\"children\":[{\"title\":\"appDir\",\"description\":\"Enable the App Router to use layouts, streaming, and more.\",\"path\":\"13/app/api-reference/next-config-js/appDir\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/05-next-config-js/appDir.mdx\",\"children\":[],\"lastModified\":\"2023-08-24\"},{\"title\":\"assetPrefix\",\"description\":\"Learn how to use the assetPrefix config option to configure your CDN.\",\"path\":\"13/app/api-reference/next-config-js/assetPrefix\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/05-next-config-js/assetPrefix.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"basePath\",\"description\":\"Use `basePath` to deploy a Next.js application under a sub-path of a domain.\",\"path\":\"13/app/api-reference/next-config-js/basePath\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/05-next-config-js/basePath.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"compress\",\"description\":\"Next.js provides gzip compression to compress rendered content and static files, it only works with the server target. Learn more about it here.\",\"path\":\"13/app/api-reference/next-config-js/compress\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/05-next-config-js/compress.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"devIndicators\",\"description\":\"Optimized pages include an indicator to let you know if it's being statically optimized. You can opt-out of it here.\",\"path\":\"13/app/api-reference/next-config-js/devIndicators\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/05-next-config-js/devIndicators.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"distDir\",\"description\":\"Set a custom build directory to use instead of the default .next directory.\",\"path\":\"13/app/api-reference/next-config-js/distDir\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/05-next-config-js/distDir.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"env\",\"description\":\"Learn to add and access environment variables in your Next.js application at build time.\",\"path\":\"13/app/api-reference/next-config-js/env\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/05-next-config-js/env.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"eslint\",\"description\":\"Next.js reports ESLint errors and warnings during builds by default. Learn how to opt-out of this behavior here.\",\"path\":\"13/app/api-reference/next-config-js/eslint\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/05-next-config-js/eslint.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"exportPathMap\",\"description\":\"Customize the pages that will be exported as HTML files when using `next export`.\",\"path\":\"13/app/api-reference/next-config-js/exportPathMap\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/05-next-config-js/exportPathMap.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"generateBuildId\",\"description\":\"Configure the build id, which is used to identify the current build in which your application is being served.\",\"path\":\"13/app/api-reference/next-config-js/generateBuildId\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/05-next-config-js/generateBuildId.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"generateEtags\",\"description\":\"Next.js will generate etags for every page by default. Learn more about how to disable etag generation here.\",\"path\":\"13/app/api-reference/next-config-js/generateEtags\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/05-next-config-js/generateEtags.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"headers\",\"description\":\"Add custom HTTP headers to your Next.js app.\",\"path\":\"13/app/api-reference/next-config-js/headers\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/05-next-config-js/headers.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"httpAgentOptions\",\"description\":\"Next.js will automatically use HTTP Keep-Alive by default. Learn more about how to disable HTTP Keep-Alive here.\",\"path\":\"13/app/api-reference/next-config-js/httpAgentOptions\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/05-next-config-js/httpAgentOptions.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"images\",\"description\":\"Custom configuration for the next/image loader\",\"path\":\"13/app/api-reference/next-config-js/images\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/05-next-config-js/images.mdx\",\"children\":[],\"lastModified\":\"2023-08-25\"},{\"title\":\"incrementalCacheHandlerPath\",\"description\":\"Configure the Next.js cache used for storing and revalidating data.\",\"path\":\"13/app/api-reference/next-config-js/incrementalCacheHandlerPath\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/05-next-config-js/incrementalCacheHandlerPath.mdx\",\"children\":[],\"lastModified\":\"2023-08-09\"},{\"title\":\"mdxRs\",\"description\":\"Use the new Rust compiler to compile MDX files in the App Router.\",\"path\":\"13/app/api-reference/next-config-js/mdxRs\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/05-next-config-js/mdxRs.mdx\",\"children\":[],\"lastModified\":\"2023-06-08\"},{\"title\":\"onDemandEntries\",\"description\":\"Configure how Next.js will dispose and keep in memory pages created in development.\",\"path\":\"13/app/api-reference/next-config-js/onDemandEntries\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/05-next-config-js/onDemandEntries.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"optimizePackageImports\",\"description\":\"API Reference for optmizedPackageImports Next.js Config Option\",\"path\":\"13/app/api-reference/next-config-js/optimizePackageImports\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/05-next-config-js/optimizePackageImports.mdx\",\"children\":[],\"lastModified\":\"2023-10-12\"},{\"title\":\"output\",\"description\":\"Next.js automatically traces which files are needed by each page to allow for easy deployment of your application. Learn how it works here.\",\"path\":\"13/app/api-reference/next-config-js/output\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/05-next-config-js/output.mdx\",\"children\":[],\"lastModified\":\"2023-09-14\"},{\"title\":\"pageExtensions\",\"description\":\"Extend the default page extensions used by Next.js when resolving pages in the Pages Router.\",\"path\":\"13/app/api-reference/next-config-js/pageExtensions\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/05-next-config-js/pageExtensions.mdx\",\"children\":[],\"lastModified\":\"2023-09-02\"},{\"title\":\"poweredByHeader\",\"description\":\"Next.js will add the `x-powered-by` header by default. Learn to opt-out of it here.\",\"path\":\"13/app/api-reference/next-config-js/poweredByHeader\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/05-next-config-js/poweredByHeader.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"productionBrowserSourceMaps\",\"description\":\"Enables browser source map generation during the production build.\",\"path\":\"13/app/api-reference/next-config-js/productionBrowserSourceMaps\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/05-next-config-js/productionBrowserSourceMaps.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"reactStrictMode\",\"description\":\"The complete Next.js runtime is now Strict Mode-compliant, learn how to opt-in\",\"path\":\"13/app/api-reference/next-config-js/reactStrictMode\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/05-next-config-js/reactStrictMode.mdx\",\"children\":[],\"lastModified\":\"2023-06-29\"},{\"title\":\"redirects\",\"description\":\"Add redirects to your Next.js app.\",\"path\":\"13/app/api-reference/next-config-js/redirects\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/05-next-config-js/redirects.mdx\",\"children\":[],\"lastModified\":\"2023-08-31\"},{\"title\":\"rewrites\",\"description\":\"Add rewrites to your Next.js app.\",\"path\":\"13/app/api-reference/next-config-js/rewrites\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/05-next-config-js/rewrites.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"serverComponentsExternalPackages\",\"description\":\"Opt-out specific dependencies from the Server Components bundling and use native Node.js `require`.\",\"path\":\"13/app/api-reference/next-config-js/serverComponentsExternalPackages\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/05-next-config-js/serverComponentsExternalPackages.mdx\",\"children\":[],\"lastModified\":\"2023-09-29\"},{\"title\":\"trailingSlash\",\"description\":\"Configure Next.js pages to resolve with or without a trailing slash.\",\"path\":\"13/app/api-reference/next-config-js/trailingSlash\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/05-next-config-js/trailingSlash.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"transpilePackages\",\"description\":\"Automatically transpile and bundle dependencies from local packages (like monorepos) or from external dependencies (`node_modules`).\",\"path\":\"13/app/api-reference/next-config-js/transpilePackages\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/05-next-config-js/transpilePackages.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"turbo\",\"description\":\"Configure Next.js with Turbopack-specific options\",\"path\":\"13/app/api-reference/next-config-js/turbo\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/05-next-config-js/turbo.mdx\",\"children\":[],\"lastModified\":\"2023-09-14\"},{\"title\":\"typedRoutes\",\"description\":\"Enable experimental support for statically typed links.\",\"path\":\"13/app/api-reference/next-config-js/typedRoutes\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/05-next-config-js/typedRoutes.mdx\",\"children\":[],\"lastModified\":\"2023-06-08\"},{\"title\":\"typescript\",\"description\":\"Next.js reports TypeScript errors by default. Learn to opt-out of this behavior here.\",\"path\":\"13/app/api-reference/next-config-js/typescript\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/05-next-config-js/typescript.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"urlImports\",\"description\":\"Configure Next.js to allow importing modules from external URLs (experimental).\",\"path\":\"13/app/api-reference/next-config-js/urlImports\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/05-next-config-js/urlImports.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"webpack\",\"description\":\"Learn how to customize the webpack config used by Next.js\",\"path\":\"13/app/api-reference/next-config-js/webpack\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/05-next-config-js/webpack.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"webVitalsAttribution\",\"description\":\"Learn how to use the webVitalsAttribution option to pinpoint the source of Web Vitals issues.\",\"path\":\"13/app/api-reference/next-config-js/webVitalsAttribution\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/05-next-config-js/webVitalsAttribution.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"}],\"lastModified\":\"2023-09-02\"},{\"title\":\"create-next-app\",\"description\":\"Create Next.js apps in one command with create-next-app.\",\"path\":\"13/app/api-reference/create-next-app\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/06-create-next-app.mdx\",\"children\":[],\"lastModified\":\"2023-09-27\"},{\"title\":\"Edge Runtime\",\"description\":\"API Reference for the Edge Runtime.\",\"path\":\"13/app/api-reference/edge\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/07-edge.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"Next.js CLI\",\"description\":\"The Next.js CLI allows you to start, build, and export your application. Learn more about it here.\",\"path\":\"13/app/api-reference/next-cli\",\"version\":\"$undefined\",\"source\":\"docs/13/02-app/02-api-reference/08-next-cli.mdx\",\"children\":[],\"lastModified\":\"2023-09-22\"}],\"lastModified\":\"2023-06-08\"},{\"title\":\"Building Your Application\",\"description\":\"Learn how to use Next.js features to build your application.\",\"path\":\"13/pages/building-your-application\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/index.mdx\",\"children\":[{\"title\":\"Routing\",\"description\":\"Learn the fundamentals of routing for front-end applications with the Pages Router.\",\"path\":\"13/pages/building-your-application/routing\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/01-routing/index.mdx\",\"children\":[{\"title\":\"Pages and Layouts\",\"description\":\"Create your first page and shared layout with the Pages Router.\",\"path\":\"13/pages/building-your-application/routing/pages-and-layouts\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/01-routing/01-pages-and-layouts.mdx\",\"children\":[],\"lastModified\":\"2023-09-22\"},{\"title\":\"Dynamic Routes\",\"description\":\"Dynamic Routes are pages that allow you to add custom params to your URLs. Start creating Dynamic Routes and learn more here.\",\"path\":\"13/pages/building-your-application/routing/dynamic-routes\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/01-routing/02-dynamic-routes.mdx\",\"children\":[],\"lastModified\":\"2023-10-09\"},{\"title\":\"Linking and Navigating\",\"description\":\"Learn how navigation works in Next.js, and how to use the Link Component and `useRouter` hook.\",\"path\":\"13/pages/building-your-application/routing/linking-and-navigating\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/01-routing/03-linking-and-navigating.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"Custom App\",\"description\":\"Control page initialization and add a layout that persists for all pages by overriding the default App component used by Next.js.\",\"path\":\"13/pages/building-your-application/routing/custom-app\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/01-routing/04-custom-app.mdx\",\"children\":[],\"lastModified\":\"2023-07-26\"},{\"title\":\"Custom Document\",\"description\":\"Extend the default document markup added by Next.js.\",\"path\":\"13/pages/building-your-application/routing/custom-document\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/01-routing/05-custom-document.mdx\",\"children\":[],\"lastModified\":\"2023-07-10\"},{\"title\":\"Custom Errors\",\"description\":\"Override and extend the built-in Error page to handle custom errors.\",\"path\":\"13/pages/building-your-application/routing/custom-error\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/01-routing/06-custom-error.mdx\",\"children\":[],\"lastModified\":\"2023-06-12\"},{\"title\":\"API Routes\",\"description\":\"Next.js supports API Routes, which allow you to build your API without leaving your Next.js app. Learn how it works here.\",\"path\":\"13/pages/building-your-application/routing/api-routes\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/01-routing/07-api-routes.mdx\",\"children\":[],\"lastModified\":\"2023-10-10\"},{\"title\":\"Internationalization\",\"description\":\"Next.js has built-in support for internationalized routing and language detection. Learn more here.\",\"path\":\"13/pages/building-your-application/routing/internationalization\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/01-routing/08-internationalization.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"Authenticating\",\"description\":\"Learn about authentication patterns in Next.js apps and explore a few examples.\",\"path\":\"13/pages/building-your-application/routing/authenticating\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/01-routing/09-authenticating.mdx\",\"children\":[],\"lastModified\":\"2023-06-16\"},{\"title\":\"Middleware\",\"description\":\"Learn how to use Middleware to run code before a request is completed.\",\"path\":\"13/pages/building-your-application/routing/middleware\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/01-routing/10-middleware.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"}],\"lastModified\":\"2023-06-08\"},{\"title\":\"Rendering\",\"description\":\"Learn the fundamentals of rendering in React and Next.js.\",\"path\":\"13/pages/building-your-application/rendering\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/02-rendering/index.mdx\",\"children\":[{\"title\":\"Server-side Rendering (SSR)\",\"description\":\"Use Server-side Rendering to render pages on each request.\",\"path\":\"13/pages/building-your-application/rendering/server-side-rendering\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/02-rendering/01-server-side-rendering.mdx\",\"children\":[],\"lastModified\":\"2023-06-08\"},{\"title\":\"Static Site Generation (SSG)\",\"description\":\"Use Static Site Generation (SSG) to pre-render pages at build time.\",\"path\":\"13/pages/building-your-application/rendering/static-site-generation\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/02-rendering/02-static-site-generation.mdx\",\"children\":[],\"lastModified\":\"2023-09-03\"},{\"title\":\"Incremental Static Regeneration (ISR)\",\"description\":\"Learn how to create or update static pages at runtime with Incremental Static Regeneration.\",\"path\":\"13/pages/building-your-application/rendering/incremental-static-regeneration\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/02-rendering/03-incremental-static-regeneration.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"Automatic Static Optimization\",\"description\":\"Next.js automatically optimizes your app to be static HTML whenever possible. Learn how it works here.\",\"path\":\"13/pages/building-your-application/rendering/automatic-static-optimization\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/02-rendering/04-automatic-static-optimization.mdx\",\"children\":[],\"lastModified\":\"2023-06-12\"},{\"title\":\"Client-side Rendering (CSR)\",\"description\":\"Learn how to implement client-side rendering in the Pages Router.\",\"path\":\"13/pages/building-your-application/rendering/client-side-rendering\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/02-rendering/05-client-side-rendering.mdx\",\"children\":[],\"lastModified\":\"2023-08-14\"},{\"title\":\"Edge and Node.js Runtimes\",\"description\":\"Learn more about the switchable runtimes (Edge and Node.js) in Next.js.\",\"path\":\"13/pages/building-your-application/rendering/edge-and-nodejs-runtimes\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/02-rendering/06-edge-and-nodejs-runtimes.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"}],\"lastModified\":\"2023-06-08\"},{\"title\":\"Data Fetching\",\"description\":\"Next.js allows you to fetch data in multiple ways, with pre-rendering, server-side rendering or static-site generation, and incremental static regeneration. Learn how to manage your application data in Next.js.\",\"path\":\"13/pages/building-your-application/data-fetching\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/03-data-fetching/index.mdx\",\"children\":[{\"title\":\"getStaticProps\",\"description\":\"Fetch data and generate static pages with `getStaticProps`. Learn more about this API for data fetching in Next.js.\",\"path\":\"13/pages/building-your-application/data-fetching/get-static-props\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/03-data-fetching/01-get-static-props.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"getStaticPaths\",\"description\":\"Fetch data and generate static pages with `getStaticPaths`. Learn more about this API for data fetching in Next.js.\",\"path\":\"13/pages/building-your-application/data-fetching/get-static-paths\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/03-data-fetching/02-get-static-paths.mdx\",\"children\":[],\"lastModified\":\"2023-10-12\"},{\"title\":\"Forms and Mutations\",\"description\":\"Learn how to handle form submissions and data mutations with Next.js.\",\"path\":\"13/pages/building-your-application/data-fetching/forms-and-mutations\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/03-data-fetching/03-forms-and-mutations.mdx\",\"children\":[],\"lastModified\":\"2023-08-25\"},{\"title\":\"getServerSideProps\",\"description\":\"Fetch data on each request with `getServerSideProps`.\",\"path\":\"13/pages/building-your-application/data-fetching/get-server-side-props\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/03-data-fetching/03-get-server-side-props.mdx\",\"children\":[],\"lastModified\":\"2023-09-11\"},{\"title\":\"Incremental Static Regeneration\",\"description\":\"Learn how to create or update static pages at runtime with Incremental Static Regeneration.\",\"path\":\"13/pages/building-your-application/data-fetching/incremental-static-regeneration\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/03-data-fetching/04-incremental-static-regeneration.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"Client-side Fetching\",\"description\":\"Learn about client-side data fetching, and how to use SWR, a data fetching React hook library that handles caching, revalidation, focus tracking, refetching on interval and more.\",\"path\":\"13/pages/building-your-application/data-fetching/client-side\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/03-data-fetching/05-client-side.mdx\",\"children\":[],\"lastModified\":\"2023-07-25\"}],\"lastModified\":\"2023-06-08\"},{\"title\":\"Styling\",\"description\":\"Learn the different ways you can style your Next.js application.\",\"path\":\"13/pages/building-your-application/styling\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/04-styling/index.mdx\",\"children\":[{\"title\":\"CSS Modules\",\"description\":\"Style your Next.js Application using CSS Modules.\",\"path\":\"13/pages/building-your-application/styling/css-modules\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/04-styling/01-css-modules.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"Tailwind CSS\",\"description\":\"Style your Next.js Application using Tailwind CSS.\",\"path\":\"13/pages/building-your-application/styling/tailwind-css\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/04-styling/02-tailwind-css.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"CSS-in-JS\",\"description\":\"Use CSS-in-JS libraries with Next.js\",\"path\":\"13/pages/building-your-application/styling/css-in-js\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/04-styling/03-css-in-js.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"Sass\",\"description\":\"Learn how to use Sass in your Next.js application.\",\"path\":\"13/pages/building-your-application/styling/sass\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/04-styling/04-sass.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"}],\"lastModified\":\"2023-06-28\"},{\"title\":\"Optimizing\",\"description\":\"Optimize your Next.js application for best performance and user experience.\",\"path\":\"13/pages/building-your-application/optimizing\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/05-optimizing/index.mdx\",\"children\":[{\"title\":\"Images\",\"description\":\"Optimize your images with the built-in `next/image` component.\",\"path\":\"13/pages/building-your-application/optimizing/images\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/05-optimizing/01-images.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"Fonts\",\"description\":\"Optimize your application's web fonts with the built-in `next/font` loaders.\",\"path\":\"13/pages/building-your-application/optimizing/fonts\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/05-optimizing/02-fonts.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"Scripts\",\"description\":\"Optimize 3rd party scripts with the built-in Script component.\",\"path\":\"13/pages/building-your-application/optimizing/scripts\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/05-optimizing/03-scripts.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"Static Assets\",\"description\":\"Next.js allows you to serve static files, like images, in the public directory. You can learn how it works here.\",\"path\":\"13/pages/building-your-application/optimizing/static-assets\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/05-optimizing/05-static-assets.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"Lazy Loading\",\"description\":\"Lazy load imported libraries and React Components to improve your application's loading performance.\",\"path\":\"13/pages/building-your-application/optimizing/lazy-loading\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/05-optimizing/06-lazy-loading.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"Analytics\",\"description\":\"Measure and track page performance using Next.js Speed Insights\",\"path\":\"13/pages/building-your-application/optimizing/analytics\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/05-optimizing/07-analytics.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"OpenTelemetry\",\"description\":\"Learn how to instrument your Next.js app with OpenTelemetry.\",\"path\":\"13/pages/building-your-application/optimizing/open-telemetry\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/05-optimizing/08-open-telemetry.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"Instrumentation\",\"description\":\"Learn how to use instrumentation to run code at server startup in your Next.js app\",\"path\":\"13/pages/building-your-application/optimizing/instrumentation\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/05-optimizing/09-instrumentation.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"Testing\",\"description\":\"Learn how to set up Next.js with three commonly used testing tools — Cypress, Playwright, Jest, and React Testing Library.\",\"path\":\"13/pages/building-your-application/optimizing/testing\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/05-optimizing/10-testing.mdx\",\"children\":[],\"lastModified\":\"2023-10-14\"}],\"lastModified\":\"2023-06-28\"},{\"title\":\"Configuring\",\"description\":\"Learn how to configure your Next.js application.\",\"path\":\"13/pages/building-your-application/configuring\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/06-configuring/index.mdx\",\"children\":[{\"title\":\"TypeScript\",\"description\":\"Next.js provides a TypeScript-first development experience for building your React application.\",\"path\":\"13/pages/building-your-application/configuring/typescript\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/06-configuring/01-typescript.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"ESLint\",\"description\":\"Next.js reports ESLint errors and warnings during builds by default. Learn how to opt-out of this behavior here.\",\"path\":\"13/pages/building-your-application/configuring/eslint\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/06-configuring/02-eslint.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"Environment Variables\",\"description\":\"Learn to add and access environment variables in your Next.js application.\",\"path\":\"13/pages/building-your-application/configuring/environment-variables\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/06-configuring/03-environment-variables.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"Absolute Imports and Module Path Aliases\",\"description\":\"Configure module path aliases that allow you to remap certain import paths.\",\"path\":\"13/pages/building-your-application/configuring/absolute-imports-and-module-aliases\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/06-configuring/04-absolute-imports-and-module-aliases.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"src Directory\",\"description\":\"Save pages under the `src` directory as an alternative to the root `pages` directory.\",\"path\":\"13/pages/building-your-application/configuring/src-directory\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/06-configuring/05-src-directory.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"MDX\",\"description\":\"Learn how to configure MDX to write JSX in your markdown files.\",\"path\":\"13/pages/building-your-application/configuring/mdx\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/06-configuring/06-mdx.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"AMP\",\"description\":\"With minimal config, and without leaving React, you can start adding AMP and improve the performance and speed of your pages.\",\"path\":\"13/pages/building-your-application/configuring/amp\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/06-configuring/07-amp.mdx\",\"children\":[],\"lastModified\":\"2023-06-13\"},{\"title\":\"Babel\",\"description\":\"Extend the babel preset added by Next.js with your own configs.\",\"path\":\"13/pages/building-your-application/configuring/babel\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/06-configuring/08-babel.mdx\",\"children\":[],\"lastModified\":\"2023-08-31\"},{\"title\":\"PostCSS\",\"description\":\"Extend the PostCSS config and plugins added by Next.js with your own.\",\"path\":\"13/pages/building-your-application/configuring/post-css\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/06-configuring/09-post-css.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"Custom Server\",\"description\":\"Start a Next.js app programmatically using a custom server.\",\"path\":\"13/pages/building-your-application/configuring/custom-server\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/06-configuring/10-custom-server.mdx\",\"children\":[],\"lastModified\":\"2023-07-23\"},{\"title\":\"Draft Mode\",\"description\":\"Next.js has draft mode to toggle between static and dynamic pages. You can learn how it works with Pages Router.\",\"path\":\"13/pages/building-your-application/configuring/draft-mode\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/06-configuring/11-draft-mode.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"Error Handling\",\"description\":\"Handle errors in your Next.js app.\",\"path\":\"13/pages/building-your-application/configuring/error-handling\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/06-configuring/12-error-handling.mdx\",\"children\":[],\"lastModified\":\"2023-09-19\"},{\"title\":\"Debugging\",\"description\":\"Learn how to debug your Next.js application with VS Code or Chrome DevTools.\",\"path\":\"13/pages/building-your-application/configuring/debugging\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/06-configuring/13-debugging.mdx\",\"children\":[],\"lastModified\":\"2023-09-20\"},{\"title\":\"Preview Mode\",\"description\":\"Next.js has the preview mode for statically generated pages. You can learn how it works here.\",\"path\":\"13/pages/building-your-application/configuring/preview-mode\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/06-configuring/14-preview-mode.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"Content Security Policy\",\"description\":\"Learn how to set a Content Security Policy (CSP) for your Next.js application.\",\"path\":\"13/pages/building-your-application/configuring/content-security-policy\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/06-configuring/15-content-security-policy.mdx\",\"children\":[],\"lastModified\":\"2023-09-01\"}],\"lastModified\":\"2023-06-28\"},{\"title\":\"Deploying\",\"description\":\"Learn how to deploy your Next.js app to production, either managed or self-hosted.\",\"path\":\"13/pages/building-your-application/deploying\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/07-deploying/index.mdx\",\"children\":[{\"title\":\"Going to Production\",\"description\":\"Before taking your Next.js application to production, here are some recommendations to ensure the best user experience.\",\"path\":\"13/pages/building-your-application/deploying/production-checklist\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/07-deploying/01-production-checklist.mdx\",\"children\":[],\"lastModified\":\"2023-09-01\"},{\"title\":\"Static Exports\",\"description\":\"Next.js enables starting as a static site or Single-Page Application (SPA), then later optionally upgrading to use features that require a server.\",\"path\":\"13/pages/building-your-application/deploying/static-exports\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/07-deploying/02-static-exports.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"Multi Zones\",\"description\":\"Learn how to use multi zones to deploy multiple Next.js apps as a single app.\",\"path\":\"13/pages/building-your-application/deploying/multi-zones\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/07-deploying/03-multi-zones.mdx\",\"children\":[],\"lastModified\":\"2023-06-13\"},{\"title\":\"Continuous Integration (CI) Build Caching\",\"description\":\"Learn how to configure CI to cache Next.js builds\",\"path\":\"13/pages/building-your-application/deploying/ci-build-caching\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/07-deploying/04-ci-build-caching.mdx\",\"children\":[],\"lastModified\":\"2023-08-25\"}],\"lastModified\":\"2023-06-28\"},{\"title\":\"Upgrading\",\"description\":\"Learn how to upgrade to the latest versions of Next.js.\",\"path\":\"13/pages/building-your-application/upgrading\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/08-upgrading/index.mdx\",\"children\":[{\"title\":\"Codemods\",\"description\":\"Use codemods to upgrade your Next.js codebase when new features are released.\",\"path\":\"13/pages/building-your-application/upgrading/codemods\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/08-upgrading/01-codemods.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"From Pages to App\",\"description\":\"Learn how to upgrade your existing Next.js application from the Pages Router to the App Router.\",\"path\":\"13/pages/building-your-application/upgrading/app-router-migration\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/08-upgrading/02-app-router-migration.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"Version 13\",\"description\":\"Upgrade your Next.js Application from Version 12 to 13.\",\"path\":\"13/pages/building-your-application/upgrading/version-13\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/08-upgrading/03-version-13.mdx\",\"children\":[],\"lastModified\":\"2023-08-31\"},{\"title\":\"Version 12\",\"description\":\"Upgrade your Next.js Application from Version 11 to Version 12.\",\"path\":\"13/pages/building-your-application/upgrading/version-12\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/08-upgrading/04-version-12.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"Version 11\",\"description\":\"Upgrade your Next.js Application from Version 10 to Version 11.\",\"path\":\"13/pages/building-your-application/upgrading/version-11\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/08-upgrading/05-version-11.mdx\",\"children\":[],\"lastModified\":\"2023-06-08\"},{\"title\":\"Version 10\",\"description\":\"Upgrade your Next.js Application from Version 9 to Version 10.\",\"path\":\"13/pages/building-your-application/upgrading/version-10\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/08-upgrading/06-version-10.mdx\",\"children\":[],\"lastModified\":\"2023-06-08\"},{\"title\":\"Version 9\",\"description\":\"Upgrade your Next.js Application from Version 8 to Version 9.\",\"path\":\"13/pages/building-your-application/upgrading/version-9\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/01-building-your-application/08-upgrading/07-version-9.mdx\",\"children\":[],\"lastModified\":\"2023-06-08\"}],\"lastModified\":\"2023-06-28\"}],\"lastModified\":\"2023-06-28\"},{\"title\":\"API Reference\",\"description\":\"Next.js API Reference for the Pages Router.\",\"path\":\"13/pages/api-reference\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/index.mdx\",\"children\":[{\"title\":\"Components\",\"description\":\"API Reference for Next.js built-in components in the Pages Router.\",\"path\":\"13/pages/api-reference/components\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/01-components/index.mdx\",\"children\":[{\"title\":\"Font\",\"description\":\"API Reference for the Font Module\",\"path\":\"13/pages/api-reference/components/font\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/01-components/font.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"\u003cHead\u003e\",\"description\":\"Add custom elements to the `head` of your page with the built-in Head component.\",\"path\":\"13/pages/api-reference/components/head\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/01-components/head.mdx\",\"children\":[],\"lastModified\":\"2023-06-13\"},{\"title\":\"\u003cImage\u003e\",\"description\":\"Optimize Images in your Next.js Application using the built-in `next/image` Component.\",\"path\":\"13/pages/api-reference/components/image\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/01-components/image.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"\u003cImage\u003e (Legacy)\",\"description\":\"Backwards compatible Image Optimization with the Legacy Image component.\",\"path\":\"13/pages/api-reference/components/image-legacy\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/01-components/image-legacy.mdx\",\"children\":[],\"lastModified\":\"2023-10-02\"},{\"title\":\"\u003cLink\u003e\",\"description\":\"API reference for the \u003cLink\u003e component.\",\"path\":\"13/pages/api-reference/components/link\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/01-components/link.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"\u003cScript\u003e\",\"description\":\"Optimize third-party scripts in your Next.js application using the built-in `next/script` Component.\",\"path\":\"13/pages/api-reference/components/script\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/01-components/script.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"}],\"lastModified\":\"2023-06-28\"},{\"title\":\"Functions\",\"description\":\"API Reference for Functions and Hooks in Pages Router.\",\"path\":\"13/pages/api-reference/functions\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/02-functions/index.mdx\",\"children\":[{\"title\":\"getInitialProps\",\"description\":\"Fetch dynamic data on the server for your React component with getInitialProps.\",\"path\":\"13/pages/api-reference/functions/get-initial-props\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/02-functions/get-initial-props.mdx\",\"children\":[],\"lastModified\":\"2023-06-12\"},{\"title\":\"getServerSideProps\",\"description\":\"API reference for `getServerSideProps`. Learn how to fetch data on each request with Next.js.\",\"path\":\"13/pages/api-reference/functions/get-server-side-props\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/02-functions/get-server-side-props.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"getStaticPaths\",\"description\":\"API reference for `getStaticPaths`. Learn how to fetch data and generate static pages with `getStaticPaths`.\",\"path\":\"13/pages/api-reference/functions/get-static-paths\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/02-functions/get-static-paths.mdx\",\"children\":[],\"lastModified\":\"2023-09-11\"},{\"title\":\"getStaticProps\",\"description\":\"API reference for `getStaticProps`. Learn how to use `getStaticProps` to generate static pages with Next.js.\",\"path\":\"13/pages/api-reference/functions/get-static-props\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/02-functions/get-static-props.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"NextRequest and NextResponse\",\"description\":\"Learn about the server-only helpers for Middleware and Edge API Routes.\",\"path\":\"13/pages/api-reference/functions/next-server\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/02-functions/next-server.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"useAmp\",\"description\":\"Enable AMP in a page, and control the way Next.js adds AMP to the page with the AMP config.\",\"path\":\"13/pages/api-reference/functions/use-amp\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/02-functions/use-amp.mdx\",\"children\":[],\"lastModified\":\"2023-06-13\"},{\"title\":\"useReportWebVitals\",\"description\":\"useReportWebVitals\",\"path\":\"13/pages/api-reference/functions/use-report-web-vitals\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/02-functions/use-report-web-vitals.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"useRouter\",\"description\":\"Learn more about the API of the Next.js Router, and access the router instance in your page with the useRouter hook.\",\"path\":\"13/pages/api-reference/functions/use-router\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/02-functions/use-router.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"}],\"lastModified\":\"2023-06-28\"},{\"title\":\"next.config.js Options\",\"description\":\"Learn about the options available in next.config.js for the Pages Router.\",\"path\":\"13/pages/api-reference/next-config-js\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/03-next-config-js/index.mdx\",\"children\":[{\"title\":\"assetPrefix\",\"description\":\"Learn how to use the assetPrefix config option to configure your CDN.\",\"path\":\"13/pages/api-reference/next-config-js/assetPrefix\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/03-next-config-js/assetPrefix.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"basePath\",\"description\":\"Use `basePath` to deploy a Next.js application under a sub-path of a domain.\",\"path\":\"13/pages/api-reference/next-config-js/basePath\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/03-next-config-js/basePath.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"compress\",\"description\":\"Next.js provides gzip compression to compress rendered content and static files, it only works with the server target. Learn more about it here.\",\"path\":\"13/pages/api-reference/next-config-js/compress\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/03-next-config-js/compress.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"devIndicators\",\"description\":\"Optimized pages include an indicator to let you know if it's being statically optimized. You can opt-out of it here.\",\"path\":\"13/pages/api-reference/next-config-js/devIndicators\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/03-next-config-js/devIndicators.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"distDir\",\"description\":\"Set a custom build directory to use instead of the default .next directory.\",\"path\":\"13/pages/api-reference/next-config-js/distDir\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/03-next-config-js/distDir.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"env\",\"description\":\"Learn to add and access environment variables in your Next.js application at build time.\",\"path\":\"13/pages/api-reference/next-config-js/env\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/03-next-config-js/env.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"eslint\",\"description\":\"Next.js reports ESLint errors and warnings during builds by default. Learn how to opt-out of this behavior here.\",\"path\":\"13/pages/api-reference/next-config-js/eslint\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/03-next-config-js/eslint.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"exportPathMap\",\"description\":\"Customize the pages that will be exported as HTML files when using `next export`.\",\"path\":\"13/pages/api-reference/next-config-js/exportPathMap\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/03-next-config-js/exportPathMap.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"generateBuildId\",\"description\":\"Configure the build id, which is used to identify the current build in which your application is being served.\",\"path\":\"13/pages/api-reference/next-config-js/generateBuildId\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/03-next-config-js/generateBuildId.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"generateEtags\",\"description\":\"Next.js will generate etags for every page by default. Learn more about how to disable etag generation here.\",\"path\":\"13/pages/api-reference/next-config-js/generateEtags\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/03-next-config-js/generateEtags.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"headers\",\"description\":\"Add custom HTTP headers to your Next.js app.\",\"path\":\"13/pages/api-reference/next-config-js/headers\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/03-next-config-js/headers.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"httpAgentOptions\",\"description\":\"Next.js will automatically use HTTP Keep-Alive by default. Learn more about how to disable HTTP Keep-Alive here.\",\"path\":\"13/pages/api-reference/next-config-js/httpAgentOptions\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/03-next-config-js/httpAgentOptions.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"images\",\"description\":\"Custom configuration for the next/image loader\",\"path\":\"13/pages/api-reference/next-config-js/images\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/03-next-config-js/images.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"onDemandEntries\",\"description\":\"Configure how Next.js will dispose and keep in memory pages created in development.\",\"path\":\"13/pages/api-reference/next-config-js/onDemandEntries\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/03-next-config-js/onDemandEntries.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"output\",\"description\":\"Next.js automatically traces which files are needed by each page to allow for easy deployment of your application. Learn how it works here.\",\"path\":\"13/pages/api-reference/next-config-js/output\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/03-next-config-js/output.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"pageExtensions\",\"description\":\"Extend the default page extensions used by Next.js when resolving pages in the Pages Router.\",\"path\":\"13/pages/api-reference/next-config-js/pageExtensions\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/03-next-config-js/pageExtensions.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"poweredByHeader\",\"description\":\"Next.js will add the `x-powered-by` header by default. Learn to opt-out of it here.\",\"path\":\"13/pages/api-reference/next-config-js/poweredByHeader\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/03-next-config-js/poweredByHeader.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"productionBrowserSourceMaps\",\"description\":\"Enables browser source map generation during the production build.\",\"path\":\"13/pages/api-reference/next-config-js/productionBrowserSourceMaps\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/03-next-config-js/productionBrowserSourceMaps.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"reactStrictMode\",\"description\":\"The complete Next.js runtime is now Strict Mode-compliant, learn how to opt-in\",\"path\":\"13/pages/api-reference/next-config-js/reactStrictMode\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/03-next-config-js/reactStrictMode.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"redirects\",\"description\":\"Add redirects to your Next.js app.\",\"path\":\"13/pages/api-reference/next-config-js/redirects\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/03-next-config-js/redirects.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"rewrites\",\"description\":\"Add rewrites to your Next.js app.\",\"path\":\"13/pages/api-reference/next-config-js/rewrites\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/03-next-config-js/rewrites.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"Runtime Config\",\"description\":\"Add client and server runtime configuration to your Next.js app.\",\"path\":\"13/pages/api-reference/next-config-js/runtime-configuration\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/03-next-config-js/runtime-configuration.mdx\",\"children\":[],\"lastModified\":\"2023-08-24\"},{\"title\":\"trailingSlash\",\"description\":\"Configure Next.js pages to resolve with or without a trailing slash.\",\"path\":\"13/pages/api-reference/next-config-js/trailingSlash\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/03-next-config-js/trailingSlash.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"transpilePackages\",\"description\":\"Automatically transpile and bundle dependencies from local packages (like monorepos) or from external dependencies (`node_modules`).\",\"path\":\"13/pages/api-reference/next-config-js/transpilePackages\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/03-next-config-js/transpilePackages.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"turbo\",\"description\":\"Configure Next.js with Turbopack-specific options\",\"path\":\"13/pages/api-reference/next-config-js/turbo\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/03-next-config-js/turbo.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"typescript\",\"description\":\"Next.js reports TypeScript errors by default. Learn to opt-out of this behavior here.\",\"path\":\"13/pages/api-reference/next-config-js/typescript\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/03-next-config-js/typescript.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"urlImports\",\"description\":\"Configure Next.js to allow importing modules from external URLs (experimental).\",\"path\":\"13/pages/api-reference/next-config-js/urlImports\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/03-next-config-js/urlImports.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"webpack\",\"description\":\"Learn how to customize the webpack config used by Next.js\",\"path\":\"13/pages/api-reference/next-config-js/webpack\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/03-next-config-js/webpack.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"webVitalsAttribution\",\"description\":\"Learn how to use the webVitalsAttribution option to pinpoint the source of Web Vitals issues.\",\"path\":\"13/pages/api-reference/next-config-js/webVitalsAttribution\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/03-next-config-js/webVitalsAttribution.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"}],\"lastModified\":\"2023-06-28\"},{\"title\":\"create-next-app\",\"description\":\"create-next-app\",\"path\":\"13/pages/api-reference/create-next-app\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/04-create-next-app.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"Next.js CLI\",\"description\":\"Next.js CLI\",\"path\":\"13/pages/api-reference/next-cli\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/05-next-cli.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"Edge Runtime\",\"description\":\"API Reference for the Edge Runtime.\",\"path\":\"13/pages/api-reference/edge\",\"version\":\"$undefined\",\"source\":\"docs/13/03-pages/02-api-reference/06-edge.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"}],\"lastModified\":\"2023-06-08\"},{\"title\":\"Architecture\",\"description\":\"How Next.js Works\",\"path\":\"13/architecture\",\"version\":\"$undefined\",\"source\":\"docs/13/04-architecture/index.mdx\",\"children\":[{\"title\":\"Accessibility\",\"description\":\"The built-in accessibility features of Next.js.\",\"path\":\"13/architecture/accessibility\",\"version\":\"$undefined\",\"source\":\"docs/13/04-architecture/accessibility.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"Fast Refresh\",\"description\":\"Fast Refresh is a hot module reloading experience that gives you instantaneous feedback on edits made to your React components.\",\"path\":\"13/architecture/fast-refresh\",\"version\":\"$undefined\",\"source\":\"docs/13/04-architecture/fast-refresh.mdx\",\"children\":[],\"lastModified\":\"2023-09-20\"},{\"title\":\"Next.js Compiler\",\"description\":\"Next.js Compiler, written in Rust, which transforms and minifies your Next.js application.\",\"path\":\"13/architecture/nextjs-compiler\",\"version\":\"$undefined\",\"source\":\"docs/13/04-architecture/nextjs-compiler.mdx\",\"children\":[],\"lastModified\":\"2023-09-16\"},{\"title\":\"Supported Browsers\",\"description\":\"Browser support and which JavaScript features are supported by Next.js.\",\"path\":\"13/architecture/supported-browsers\",\"version\":\"$undefined\",\"source\":\"docs/13/04-architecture/supported-browsers.mdx\",\"children\":[],\"lastModified\":\"2023-10-14\"},{\"title\":\"Turbopack\",\"description\":\"Turbopack is an incremental bundler optimized for JavaScript and TypeScript, written in Rust, and built into Next.js.\",\"path\":\"13/architecture/turbopack\",\"version\":\"$undefined\",\"source\":\"docs/13/04-architecture/turbopack.mdx\",\"children\":[],\"lastModified\":\"2023-06-08\"}],\"lastModified\":\"2023-06-08\"},{\"title\":\"Community\",\"description\":\"Get involved in the Next.js community.\",\"path\":\"13/community\",\"version\":\"$undefined\",\"source\":\"docs/13/05-community/index.mdx\",\"children\":[{\"title\":\"Contribution Guide\",\"description\":\"Learn how to contribute to Next.js Documentation\",\"path\":\"13/community/contribution-guide\",\"version\":\"$undefined\",\"source\":\"docs/13/05-community/01-contribution-guide.mdx\",\"children\":[],\"lastModified\":\"2023-10-10\"}],\"lastModified\":\"2023-09-03\"}],\"14\":[{\"title\":\"Getting Started\",\"description\":\"Learn how to create full-stack web applications with Next.js.\",\"path\":\"14/getting-started\",\"version\":\"$undefined\",\"source\":\"docs/14/01-getting-started/index.mdx\",\"children\":[{\"title\":\"Installation\",\"description\":\"Create a new Next.js application with `create-next-app`. Set up TypeScript, styles, and configure your `next.config.js` file.\",\"path\":\"14/getting-started/installation\",\"version\":\"$undefined\",\"source\":\"docs/14/01-getting-started/01-installation.mdx\",\"children\":[],\"lastModified\":\"2024-08-22\"},{\"title\":\"Project Structure\",\"description\":\"A list of folders and files conventions in a Next.js project\",\"path\":\"14/getting-started/project-structure\",\"version\":\"$undefined\",\"source\":\"docs/14/01-getting-started/02-project-structure.mdx\",\"children\":[],\"lastModified\":\"2024-02-10\"}],\"lastModified\":\"2023-08-24\"},{\"title\":\"Building Your Application\",\"description\":\"Learn how to use Next.js features to build your application.\",\"path\":\"14/app/building-your-application\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/index.mdx\",\"children\":[{\"title\":\"Routing\",\"description\":\"Learn the fundamentals of routing for front-end applications.\",\"path\":\"14/app/building-your-application/routing\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/01-routing/index.mdx\",\"children\":[{\"title\":\"Defining Routes\",\"description\":\"Learn how to create your first route in Next.js.\",\"path\":\"14/app/building-your-application/routing/defining-routes\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/01-routing/01-defining-routes.mdx\",\"children\":[],\"lastModified\":\"2023-06-12\"},{\"title\":\"Pages and Layouts\",\"description\":\"Create your first page and shared layout with the App Router.\",\"path\":\"14/app/building-your-application/routing/pages-and-layouts\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/01-routing/02-pages-and-layouts.mdx\",\"children\":[],\"lastModified\":\"2024-03-18\"},{\"title\":\"Linking and Navigating\",\"description\":\"Learn how navigation works in Next.js, and how to use the Link Component and `useRouter` hook.\",\"path\":\"14/app/building-your-application/routing/linking-and-navigating\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/01-routing/03-linking-and-navigating.mdx\",\"children\":[],\"lastModified\":\"2024-04-04\"},{\"title\":\"Loading UI and Streaming\",\"description\":\"Built on top of Suspense, Loading UI allows you to create a fallback for specific route segments, and automatically stream content as it becomes ready.\",\"path\":\"14/app/building-your-application/routing/loading-ui-and-streaming\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/01-routing/04-loading-ui-and-streaming.mdx\",\"children\":[],\"lastModified\":\"2024-04-08\"},{\"title\":\"Error Handling\",\"description\":\"Handle runtime errors by automatically wrapping route segments and their nested children in a React Error Boundary.\",\"path\":\"14/app/building-your-application/routing/error-handling\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/01-routing/05-error-handling.mdx\",\"children\":[],\"lastModified\":\"2024-02-29\"},{\"title\":\"Redirecting\",\"description\":\"Learn the different ways to handle redirects in Next.js.\",\"path\":\"14/app/building-your-application/routing/redirecting\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/01-routing/06-redirecting.mdx\",\"children\":[],\"lastModified\":\"2024-04-10\"},{\"title\":\"Route Groups\",\"description\":\"Route Groups can be used to partition your Next.js application into different sections.\",\"path\":\"14/app/building-your-application/routing/route-groups\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/01-routing/07-route-groups.mdx\",\"children\":[],\"lastModified\":\"2024-01-12\"},{\"title\":\"Project Organization\",\"description\":\"Learn how to organize your Next.js project and colocate files.\",\"path\":\"14/app/building-your-application/routing/colocation\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/01-routing/08-colocation.mdx\",\"children\":[],\"lastModified\":\"2024-01-12\"},{\"title\":\"Dynamic Routes\",\"description\":\"Dynamic Routes can be used to programmatically generate route segments from dynamic data.\",\"path\":\"14/app/building-your-application/routing/dynamic-routes\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/01-routing/09-dynamic-routes.mdx\",\"children\":[],\"lastModified\":\"2024-01-12\"},{\"title\":\"Parallel Routes\",\"description\":\"Simultaneously render one or more pages in the same view that can be navigated independently. A pattern for highly dynamic applications.\",\"path\":\"14/app/building-your-application/routing/parallel-routes\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/01-routing/10-parallel-routes.mdx\",\"children\":[],\"lastModified\":\"2024-04-03\"},{\"title\":\"Intercepting Routes\",\"description\":\"Use intercepting routes to load a new route within the current layout while masking the browser URL, useful for advanced routing patterns such as modals.\",\"path\":\"14/app/building-your-application/routing/intercepting-routes\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/01-routing/11-intercepting-routes.mdx\",\"children\":[],\"lastModified\":\"2024-01-29\"},{\"title\":\"Route Handlers\",\"description\":\"Create custom request handlers for a given route using the Web's Request and Response APIs.\",\"path\":\"14/app/building-your-application/routing/route-handlers\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/01-routing/12-route-handlers.mdx\",\"children\":[],\"lastModified\":\"2024-02-23\"},{\"title\":\"Middleware\",\"description\":\"Learn how to use Middleware to run code before a request is completed.\",\"path\":\"14/app/building-your-application/routing/middleware\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/01-routing/13-middleware.mdx\",\"children\":[],\"lastModified\":\"2024-03-25\"},{\"title\":\"Internationalization\",\"description\":\"Add support for multiple languages with internationalized routing and localized content.\",\"path\":\"14/app/building-your-application/routing/internationalization\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/01-routing/14-internationalization.mdx\",\"children\":[],\"lastModified\":\"2024-02-24\"}],\"lastModified\":\"2023-08-24\"},{\"title\":\"Data Fetching\",\"description\":\"Learn how to fetch, cache, revalidate, and mutate data with Next.js.\",\"path\":\"14/app/building-your-application/data-fetching\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/02-data-fetching/index.mdx\",\"children\":[{\"title\":\"Fetching, Caching, and Revalidating\",\"description\":\"Learn how to fetch, cache, and revalidate data in your Next.js application.\",\"path\":\"14/app/building-your-application/data-fetching/fetching-caching-and-revalidating\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/02-data-fetching/01-fetching-caching-and-revalidating.mdx\",\"children\":[],\"lastModified\":\"2024-03-07\"},{\"title\":\"Server Actions and Mutations\",\"description\":\"Learn how to handle form submissions and data mutations with Next.js.\",\"path\":\"14/app/building-your-application/data-fetching/server-actions-and-mutations\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/02-data-fetching/02-server-actions-and-mutations.mdx\",\"children\":[],\"lastModified\":\"2024-03-30\"},{\"title\":\"Data Fetching Patterns and Best Practices\",\"description\":\"Learn about common data fetching patterns in React and Next.js.\",\"path\":\"14/app/building-your-application/data-fetching/patterns\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/02-data-fetching/03-patterns.mdx\",\"children\":[],\"lastModified\":\"2024-03-07\"}],\"lastModified\":\"2023-10-09\"},{\"title\":\"Rendering\",\"description\":\"Learn the differences between Next.js rendering environments, strategies, and runtimes.\",\"path\":\"14/app/building-your-application/rendering\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/03-rendering/index.mdx\",\"children\":[{\"title\":\"Server Components\",\"description\":\"Learn how you can use React Server Components to render parts of your application on the server.\",\"path\":\"14/app/building-your-application/rendering/server-components\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/03-rendering/01-server-components.mdx\",\"children\":[],\"lastModified\":\"2024-04-03\"},{\"title\":\"Client Components\",\"description\":\"Learn how to use Client Components to render parts of your application on the client.\",\"path\":\"14/app/building-your-application/rendering/client-components\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/03-rendering/02-client-components.mdx\",\"children\":[],\"lastModified\":\"2024-03-02\"},{\"title\":\"Composition Patterns\",\"description\":\"Recommended patterns for using Server and Client Components.\",\"path\":\"14/app/building-your-application/rendering/composition-patterns\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/03-rendering/03-composition-patterns.mdx\",\"children\":[],\"lastModified\":\"2024-02-22\"},{\"title\":\"Edge and Node.js Runtimes\",\"description\":\"Learn about the switchable runtimes (Edge and Node.js) in Next.js.\",\"path\":\"14/app/building-your-application/rendering/edge-and-nodejs-runtimes\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/03-rendering/04-edge-and-nodejs-runtimes.mdx\",\"children\":[],\"lastModified\":\"2024-01-22\"}],\"lastModified\":\"2023-11-16\"},{\"title\":\"Caching\",\"description\":\"An overview of caching mechanisms in Next.js.\",\"path\":\"14/app/building-your-application/caching\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/04-caching/index.mdx\",\"children\":[],\"lastModified\":\"2024-09-17\"},{\"title\":\"Styling\",\"description\":\"Learn the different ways you can style your Next.js application.\",\"path\":\"14/app/building-your-application/styling\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/05-styling/index.mdx\",\"children\":[{\"title\":\"CSS Modules\",\"description\":\"Style your Next.js Application with CSS Modules.\",\"path\":\"14/app/building-your-application/styling/css-modules\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/05-styling/01-css-modules.mdx\",\"children\":[],\"lastModified\":\"2024-04-11\"},{\"title\":\"Tailwind CSS\",\"description\":\"Style your Next.js Application using Tailwind CSS.\",\"path\":\"14/app/building-your-application/styling/tailwind-css\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/05-styling/02-tailwind-css.mdx\",\"children\":[],\"lastModified\":\"2023-07-31\"},{\"title\":\"CSS-in-JS\",\"description\":\"Use CSS-in-JS libraries with Next.js\",\"path\":\"14/app/building-your-application/styling/css-in-js\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/05-styling/03-css-in-js.mdx\",\"children\":[],\"lastModified\":\"2024-03-11\"},{\"title\":\"Sass\",\"description\":\"Style your Next.js application using Sass.\",\"path\":\"14/app/building-your-application/styling/sass\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/05-styling/04-sass.mdx\",\"children\":[],\"lastModified\":\"2023-11-15\"}],\"lastModified\":\"2023-07-31\"},{\"title\":\"Optimizing\",\"description\":\"Optimize your Next.js application for best performance and user experience.\",\"path\":\"14/app/building-your-application/optimizing\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/06-optimizing/index.mdx\",\"children\":[{\"title\":\"Images\",\"description\":\"Optimize your images with the built-in `next/image` component.\",\"path\":\"14/app/building-your-application/optimizing/images\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/06-optimizing/01-images.mdx\",\"children\":[],\"lastModified\":\"2024-12-13\"},{\"title\":\"Fonts\",\"description\":\"Optimize your application's web fonts with the built-in `next/font` loaders.\",\"path\":\"14/app/building-your-application/optimizing/fonts\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/06-optimizing/02-fonts.mdx\",\"children\":[],\"lastModified\":\"2024-02-09\"},{\"title\":\"Scripts\",\"description\":\"Optimize 3rd party scripts with the built-in Script component.\",\"path\":\"14/app/building-your-application/optimizing/scripts\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/06-optimizing/03-scripts.mdx\",\"children\":[],\"lastModified\":\"2024-01-19\"},{\"title\":\"Metadata\",\"description\":\"Use the Metadata API to define metadata in any layout or page.\",\"path\":\"14/app/building-your-application/optimizing/metadata\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/06-optimizing/04-metadata.mdx\",\"children\":[],\"lastModified\":\"2023-11-16\"},{\"title\":\"Static Assets\",\"description\":\"Next.js allows you to serve static files, like images, in the public directory. You can learn how it works here.\",\"path\":\"14/app/building-your-application/optimizing/static-assets\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/06-optimizing/05-static-assets.mdx\",\"children\":[],\"lastModified\":\"2024-08-22\"},{\"title\":\"Bundle Analyzer\",\"description\":\"Analyze the size of your JavaScript bundles using the @next/bundle-analyzer plugin.\",\"path\":\"14/app/building-your-application/optimizing/bundle-analyzer\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/06-optimizing/06-bundle-analyzer.mdx\",\"children\":[],\"lastModified\":\"2024-01-06\"},{\"title\":\"Lazy Loading\",\"description\":\"Lazy load imported libraries and React Components to improve your application's loading performance.\",\"path\":\"14/app/building-your-application/optimizing/lazy-loading\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/06-optimizing/07-lazy-loading.mdx\",\"children\":[],\"lastModified\":\"2024-01-05\"},{\"title\":\"Analytics\",\"description\":\"Measure and track page performance using Next.js Speed Insights\",\"path\":\"14/app/building-your-application/optimizing/analytics\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/06-optimizing/08-analytics.mdx\",\"children\":[],\"lastModified\":\"2024-02-27\"},{\"title\":\"Instrumentation\",\"description\":\"Learn how to use instrumentation to run code at server startup in your Next.js app\",\"path\":\"14/app/building-your-application/optimizing/instrumentation\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/06-optimizing/09-instrumentation.mdx\",\"children\":[],\"lastModified\":\"2024-03-13\"},{\"title\":\"OpenTelemetry\",\"description\":\"Learn how to instrument your Next.js app with OpenTelemetry.\",\"path\":\"14/app/building-your-application/optimizing/open-telemetry\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/06-optimizing/10-open-telemetry.mdx\",\"children\":[],\"lastModified\":\"2024-03-19\"},{\"title\":\"Third Party Libraries\",\"description\":\"Optimize the performance of third-party libraries in your application with the `@next/third-parties` package.\",\"path\":\"14/app/building-your-application/optimizing/third-party-libraries\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/06-optimizing/11-third-party-libraries.mdx\",\"children\":[],\"lastModified\":\"2024-03-20\"}],\"lastModified\":\"2023-10-26\"},{\"title\":\"Configuring\",\"description\":\"Learn how to configure your Next.js application.\",\"path\":\"14/app/building-your-application/configuring\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/07-configuring/index.mdx\",\"children\":[{\"title\":\"TypeScript\",\"description\":\"Next.js provides a TypeScript-first development experience for building your React application.\",\"path\":\"14/app/building-your-application/configuring/typescript\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/07-configuring/01-typescript.mdx\",\"children\":[],\"lastModified\":\"2024-01-14\"},{\"title\":\"ESLint\",\"description\":\"Next.js provides an integrated ESLint experience by default. These conformance rules help you use Next.js in an optimal way.\",\"path\":\"14/app/building-your-application/configuring/eslint\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/07-configuring/02-eslint.mdx\",\"children\":[],\"lastModified\":\"2024-08-22\"},{\"title\":\"Environment Variables\",\"description\":\"Learn to add and access environment variables in your Next.js application.\",\"path\":\"14/app/building-your-application/configuring/environment-variables\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/07-configuring/03-environment-variables.mdx\",\"children\":[],\"lastModified\":\"2024-03-08\"},{\"title\":\"Absolute Imports and Module Path Aliases\",\"description\":\"Configure module path aliases that allow you to remap certain import paths.\",\"path\":\"14/app/building-your-application/configuring/absolute-imports-and-module-aliases\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/07-configuring/04-absolute-imports-and-module-aliases.mdx\",\"children\":[],\"lastModified\":\"2023-07-31\"},{\"title\":\"MDX\",\"description\":\"Learn how to configure MDX to write JSX in your markdown files.\",\"path\":\"14/app/building-your-application/configuring/mdx\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/07-configuring/05-mdx.mdx\",\"children\":[],\"lastModified\":\"2024-04-05\"},{\"title\":\"src Directory\",\"description\":\"Save pages under the `src` directory as an alternative to the root `pages` directory.\",\"path\":\"14/app/building-your-application/configuring/src-directory\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/07-configuring/06-src-directory.mdx\",\"children\":[],\"lastModified\":\"2024-03-06\"},{\"title\":\"Draft Mode\",\"description\":\"Next.js has draft mode to toggle between static and dynamic pages. You can learn how it works with App Router here.\",\"path\":\"14/app/building-your-application/configuring/draft-mode\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/07-configuring/11-draft-mode.mdx\",\"children\":[],\"lastModified\":\"2023-08-24\"},{\"title\":\"Content Security Policy\",\"description\":\"Learn how to set a Content Security Policy (CSP) for your Next.js application.\",\"path\":\"14/app/building-your-application/configuring/content-security-policy\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/07-configuring/15-content-security-policy.mdx\",\"children\":[],\"lastModified\":\"2024-03-26\"}],\"lastModified\":\"2023-07-31\"},{\"title\":\"Testing\",\"description\":\"Learn how to set up Next.js with four commonly used testing tools — Cypress, Playwright, Vitest, and Jest.\",\"path\":\"14/app/building-your-application/testing\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/08-testing/index.mdx\",\"children\":[{\"title\":\"Vitest\",\"description\":\"Learn how to set up Vitest with Next.js for Unit Testing.\",\"path\":\"14/app/building-your-application/testing/vitest\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/08-testing/01-vitest.mdx\",\"children\":[],\"lastModified\":\"2024-01-25\"},{\"title\":\"Jest\",\"description\":\"Learn how to set up Jest with Next.js for Unit Testing and Snapshot Testing.\",\"path\":\"14/app/building-your-application/testing/jest\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/08-testing/02-jest.mdx\",\"children\":[],\"lastModified\":\"2024-01-28\"},{\"title\":\"Playwright\",\"description\":\"Learn how to set up Playwright with Next.js for End-to-End (E2E) testing.\",\"path\":\"14/app/building-your-application/testing/playwright\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/08-testing/03-playwright.mdx\",\"children\":[],\"lastModified\":\"2023-12-13\"},{\"title\":\"Cypress\",\"description\":\"Learn how to set up Cypress with Next.js for End-to-End (E2E) and Component Testing.\",\"path\":\"14/app/building-your-application/testing/cypress\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/08-testing/04-cypress.mdx\",\"children\":[],\"lastModified\":\"2024-01-10\"}],\"lastModified\":\"2024-01-14\"},{\"title\":\"Authentication\",\"description\":\"Learn how to implement authentication in Next.js, covering best practices, securing routes, authorization techniques, and session management.\",\"path\":\"14/app/building-your-application/authentication\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/09-authentication/index.mdx\",\"children\":[],\"lastModified\":\"2024-04-01\"},{\"title\":\"Deploying\",\"description\":\"Learn how to deploy your Next.js app to production, either managed or self-hosted.\",\"path\":\"14/app/building-your-application/deploying\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/10-deploying/index.mdx\",\"children\":[{\"title\":\"Production Checklist\",\"description\":\"Recommendations to ensure the best performance and user experience before taking your Next.js application to production.\",\"path\":\"14/app/building-your-application/deploying/production-checklist\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/10-deploying/01-production-checklist.mdx\",\"children\":[],\"lastModified\":\"2024-01-25\"},{\"title\":\"Static Exports\",\"description\":\"Next.js enables starting as a static site or Single-Page Application (SPA), then later optionally upgrading to use features that require a server.\",\"path\":\"14/app/building-your-application/deploying/static-exports\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/10-deploying/02-static-exports.mdx\",\"children\":[],\"lastModified\":\"2024-01-18\"}],\"lastModified\":\"2024-03-13\"},{\"title\":\"Upgrading\",\"description\":\"Learn how to upgrade to the latest versions of Next.js.\",\"path\":\"14/app/building-your-application/upgrading\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/11-upgrading/index.mdx\",\"children\":[{\"title\":\"Codemods\",\"description\":\"Use codemods to upgrade your Next.js codebase when new features are released.\",\"path\":\"14/app/building-your-application/upgrading/codemods\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/11-upgrading/01-codemods.mdx\",\"children\":[],\"lastModified\":\"2024-01-18\"},{\"title\":\"App Router Migration\",\"description\":\"Learn how to upgrade your existing Next.js application from the Pages Router to the App Router.\",\"path\":\"14/app/building-your-application/upgrading/app-router-migration\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/11-upgrading/02-app-router-migration.mdx\",\"children\":[],\"lastModified\":\"2024-02-26\"},{\"title\":\"Version 14\",\"description\":\"Upgrade your Next.js Application from Version 13 to 14.\",\"path\":\"14/app/building-your-application/upgrading/version-14\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/11-upgrading/03-version-14.mdx\",\"children\":[],\"lastModified\":\"2024-01-18\"},{\"title\":\"Migrating from Vite\",\"description\":\"Learn how to migrate your existing React application from Vite to Next.js.\",\"path\":\"14/app/building-your-application/upgrading/from-vite\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/01-building-your-application/11-upgrading/04-from-vite.mdx\",\"children\":[],\"lastModified\":\"2024-02-10\"}],\"lastModified\":\"2024-01-18\"}],\"lastModified\":\"2023-06-28\"},{\"title\":\"API Reference\",\"description\":\"Next.js API Reference for the App Router.\",\"path\":\"14/app/api-reference\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/index.mdx\",\"children\":[{\"title\":\"Components\",\"description\":\"API Reference for Next.js built-in components.\",\"path\":\"14/app/api-reference/components\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/01-components/index.mdx\",\"children\":[{\"title\":\"Font\",\"description\":\"Optimizing loading web fonts with the built-in `next/font` loaders.\",\"path\":\"14/app/api-reference/components/font\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/01-components/font.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"\u003cImage\u003e\",\"description\":\"Optimize Images in your Next.js Application using the built-in `next/image` Component.\",\"path\":\"14/app/api-reference/components/image\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/01-components/image.mdx\",\"children\":[],\"lastModified\":\"2025-01-03\"},{\"title\":\"\u003cLink\u003e\",\"description\":\"Enable fast client-side navigation with the built-in `next/link` component.\",\"path\":\"14/app/api-reference/components/link\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/01-components/link.mdx\",\"children\":[],\"lastModified\":\"2024-03-11\"},{\"title\":\"\u003cScript\u003e\",\"description\":\"Optimize third-party scripts in your Next.js application using the built-in `next/script` Component.\",\"path\":\"14/app/api-reference/components/script\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/01-components/script.mdx\",\"children\":[],\"lastModified\":\"2024-04-05\"}],\"lastModified\":\"2023-06-28\"},{\"title\":\"File Conventions\",\"description\":\"API Reference for Next.js Special Files.\",\"path\":\"14/app/api-reference/file-conventions\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/02-file-conventions/index.mdx\",\"children\":[{\"title\":\"default.js\",\"description\":\"API Reference for the default.js file.\",\"path\":\"14/app/api-reference/file-conventions/default\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/02-file-conventions/default.mdx\",\"children\":[],\"lastModified\":\"2024-03-26\"},{\"title\":\"error.js\",\"description\":\"API reference for the error.js special file.\",\"path\":\"14/app/api-reference/file-conventions/error\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/02-file-conventions/error.mdx\",\"children\":[],\"lastModified\":\"2023-09-25\"},{\"title\":\"layout.js\",\"description\":\"API reference for the layout.js file.\",\"path\":\"14/app/api-reference/file-conventions/layout\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/02-file-conventions/layout.mdx\",\"children\":[],\"lastModified\":\"2024-01-05\"},{\"title\":\"loading.js\",\"description\":\"API reference for the loading.js  file.\",\"path\":\"14/app/api-reference/file-conventions/loading\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/02-file-conventions/loading.mdx\",\"children\":[],\"lastModified\":\"2023-10-27\"},{\"title\":\"not-found.js\",\"description\":\"API reference for the not-found.js file.\",\"path\":\"14/app/api-reference/file-conventions/not-found\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/02-file-conventions/not-found.mdx\",\"children\":[],\"lastModified\":\"2023-12-23\"},{\"title\":\"page.js\",\"description\":\"API reference for the page.js file.\",\"path\":\"14/app/api-reference/file-conventions/page\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/02-file-conventions/page.mdx\",\"children\":[],\"lastModified\":\"2023-12-05\"},{\"title\":\"route.js\",\"description\":\"API reference for the route.js special file.\",\"path\":\"14/app/api-reference/file-conventions/route\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/02-file-conventions/route.mdx\",\"children\":[],\"lastModified\":\"2024-03-13\"},{\"title\":\"Route Segment Config\",\"description\":\"Learn about how to configure options for Next.js route segments.\",\"path\":\"14/app/api-reference/file-conventions/route-segment-config\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/02-file-conventions/route-segment-config.mdx\",\"children\":[],\"lastModified\":\"2024-03-18\"},{\"title\":\"template.js\",\"description\":\"API Reference for the template.js file.\",\"path\":\"14/app/api-reference/file-conventions/template\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/02-file-conventions/template.mdx\",\"children\":[],\"lastModified\":\"2023-09-04\"},{\"title\":\"Metadata Files\",\"description\":\"API documentation for the metadata file conventions.\",\"path\":\"14/app/api-reference/file-conventions/metadata\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/02-file-conventions/01-metadata/index.mdx\",\"children\":[{\"title\":\"favicon, icon, and apple-icon\",\"description\":\"API Reference for the Favicon, Icon and Apple Icon file conventions.\",\"path\":\"14/app/api-reference/file-conventions/metadata/app-icons\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/02-file-conventions/01-metadata/app-icons.mdx\",\"children\":[],\"lastModified\":\"2023-10-26\"},{\"title\":\"manifest.json\",\"description\":\"API Reference for manifest.json file.\",\"path\":\"14/app/api-reference/file-conventions/metadata/manifest\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/02-file-conventions/01-metadata/manifest.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"opengraph-image and twitter-image\",\"description\":\"API Reference for the Open Graph Image and Twitter Image file conventions.\",\"path\":\"14/app/api-reference/file-conventions/metadata/opengraph-image\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/02-file-conventions/01-metadata/opengraph-image.mdx\",\"children\":[],\"lastModified\":\"2023-11-07\"},{\"title\":\"robots.txt\",\"description\":\"API Reference for robots.txt file.\",\"path\":\"14/app/api-reference/file-conventions/metadata/robots\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/02-file-conventions/01-metadata/robots.mdx\",\"children\":[],\"lastModified\":\"2024-01-11\"},{\"title\":\"sitemap.xml\",\"description\":\"API Reference for the sitemap.xml file.\",\"path\":\"14/app/api-reference/file-conventions/metadata/sitemap\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/02-file-conventions/01-metadata/sitemap.mdx\",\"children\":[],\"lastModified\":\"2024-04-04\"}],\"lastModified\":\"2023-06-08\"}],\"lastModified\":\"2023-06-08\"},{\"title\":\"Functions\",\"description\":\"API Reference for Next.js Functions and Hooks.\",\"path\":\"14/app/api-reference/functions\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/04-functions/index.mdx\",\"children\":[{\"title\":\"cookies\",\"description\":\"API Reference for the cookies function.\",\"path\":\"14/app/api-reference/functions/cookies\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/04-functions/cookies.mdx\",\"children\":[],\"lastModified\":\"2024-03-18\"},{\"title\":\"draftMode\",\"description\":\"API Reference for the draftMode function.\",\"path\":\"14/app/api-reference/functions/draft-mode\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/04-functions/draft-mode.mdx\",\"children\":[],\"lastModified\":\"2023-08-24\"},{\"title\":\"fetch\",\"description\":\"API reference for the extended fetch function.\",\"path\":\"14/app/api-reference/functions/fetch\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/04-functions/fetch.mdx\",\"children\":[],\"lastModified\":\"2024-12-02\"},{\"title\":\"generateImageMetadata\",\"description\":\"Learn how to generate multiple images in a single Metadata API special file.\",\"path\":\"14/app/api-reference/functions/generate-image-metadata\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/04-functions/generate-image-metadata.mdx\",\"children\":[],\"lastModified\":\"2023-12-18\"},{\"title\":\"generateMetadata\",\"description\":\"Learn how to add Metadata to your Next.js application for improved search engine optimization (SEO) and web shareability.\",\"path\":\"14/app/api-reference/functions/generate-metadata\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/04-functions/generate-metadata.mdx\",\"children\":[],\"lastModified\":\"2024-09-13\"},{\"title\":\"generateSitemaps\",\"description\":\"Learn how to use the generateSiteMaps function to create multiple sitemaps for your application.\",\"path\":\"14/app/api-reference/functions/generate-sitemaps\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/04-functions/generate-sitemaps.mdx\",\"children\":[],\"lastModified\":\"2024-03-08\"},{\"title\":\"generateStaticParams\",\"description\":\"API reference for the generateStaticParams function.\",\"path\":\"14/app/api-reference/functions/generate-static-params\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/04-functions/generate-static-params.mdx\",\"children\":[],\"lastModified\":\"2024-01-01\"},{\"title\":\"generateViewport\",\"description\":\"API Reference for the generateViewport function.\",\"path\":\"14/app/api-reference/functions/generate-viewport\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/04-functions/generate-viewport.mdx\",\"children\":[],\"lastModified\":\"2024-03-19\"},{\"title\":\"headers\",\"description\":\"API reference for the headers function.\",\"path\":\"14/app/api-reference/functions/headers\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/04-functions/headers.mdx\",\"children\":[],\"lastModified\":\"2023-12-18\"},{\"title\":\"ImageResponse\",\"description\":\"API Reference for the ImageResponse constructor.\",\"path\":\"14/app/api-reference/functions/image-response\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/04-functions/image-response.mdx\",\"children\":[],\"lastModified\":\"2023-10-19\"},{\"title\":\"NextRequest\",\"description\":\"API Reference for NextRequest.\",\"path\":\"14/app/api-reference/functions/next-request\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/04-functions/next-request.mdx\",\"children\":[],\"lastModified\":\"2024-01-24\"},{\"title\":\"NextResponse\",\"description\":\"API Reference for NextResponse.\",\"path\":\"14/app/api-reference/functions/next-response\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/04-functions/next-response.mdx\",\"children\":[],\"lastModified\":\"2023-12-18\"},{\"title\":\"notFound\",\"description\":\"API Reference for the notFound function.\",\"path\":\"14/app/api-reference/functions/not-found\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/04-functions/not-found.mdx\",\"children\":[],\"lastModified\":\"2023-07-10\"},{\"title\":\"permanentRedirect\",\"description\":\"API Reference for the permanentRedirect function.\",\"path\":\"14/app/api-reference/functions/permanentRedirect\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/04-functions/permanentRedirect.mdx\",\"children\":[],\"lastModified\":\"2023-12-18\"},{\"title\":\"redirect\",\"description\":\"API Reference for the redirect function.\",\"path\":\"14/app/api-reference/functions/redirect\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/04-functions/redirect.mdx\",\"children\":[],\"lastModified\":\"2024-01-25\"},{\"title\":\"revalidatePath\",\"description\":\"API Reference for the revalidatePath function.\",\"path\":\"14/app/api-reference/functions/revalidatePath\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/04-functions/revalidatePath.mdx\",\"children\":[],\"lastModified\":\"2024-02-06\"},{\"title\":\"revalidateTag\",\"description\":\"API Reference for the revalidateTag function.\",\"path\":\"14/app/api-reference/functions/revalidateTag\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/04-functions/revalidateTag.mdx\",\"children\":[],\"lastModified\":\"2024-02-06\"},{\"title\":\"unstable_cache\",\"description\":\"API Reference for the unstable_cache function.\",\"path\":\"14/app/api-reference/functions/unstable_cache\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/04-functions/unstable_cache.mdx\",\"children\":[],\"lastModified\":\"2024-02-29\"},{\"title\":\"unstable_noStore\",\"description\":\"API Reference for the unstable_noStore function.\",\"path\":\"14/app/api-reference/functions/unstable_noStore\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/04-functions/unstable_noStore.mdx\",\"children\":[],\"lastModified\":\"2023-10-26\"},{\"title\":\"useParams\",\"description\":\"API Reference for the useParams hook.\",\"path\":\"14/app/api-reference/functions/use-params\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/04-functions/use-params.mdx\",\"children\":[],\"lastModified\":\"2024-02-04\"},{\"title\":\"usePathname\",\"description\":\"API Reference for the usePathname hook.\",\"path\":\"14/app/api-reference/functions/use-pathname\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/04-functions/use-pathname.mdx\",\"children\":[],\"lastModified\":\"2023-08-24\"},{\"title\":\"useReportWebVitals\",\"description\":\"API Reference for the useReportWebVitals function.\",\"path\":\"14/app/api-reference/functions/use-report-web-vitals\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/04-functions/use-report-web-vitals.mdx\",\"children\":[],\"lastModified\":\"2024-02-28\"},{\"title\":\"useRouter\",\"description\":\"API reference for the useRouter hook.\",\"path\":\"14/app/api-reference/functions/use-router\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/04-functions/use-router.mdx\",\"children\":[],\"lastModified\":\"2024-01-05\"},{\"title\":\"useSearchParams\",\"description\":\"API Reference for the useSearchParams hook.\",\"path\":\"14/app/api-reference/functions/use-search-params\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/04-functions/use-search-params.mdx\",\"children\":[],\"lastModified\":\"2024-01-07\"},{\"title\":\"useSelectedLayoutSegment\",\"description\":\"API Reference for the useSelectedLayoutSegment hook.\",\"path\":\"14/app/api-reference/functions/use-selected-layout-segment\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/04-functions/use-selected-layout-segment.mdx\",\"children\":[],\"lastModified\":\"2023-08-25\"},{\"title\":\"useSelectedLayoutSegments\",\"description\":\"API Reference for the useSelectedLayoutSegments hook.\",\"path\":\"14/app/api-reference/functions/use-selected-layout-segments\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/04-functions/use-selected-layout-segments.mdx\",\"children\":[],\"lastModified\":\"2023-08-30\"},{\"title\":\"userAgent\",\"description\":\"The userAgent helper extends the Web Request API with additional properties and methods to interact with the user agent object from the request.\",\"path\":\"14/app/api-reference/functions/userAgent\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/04-functions/userAgent.mdx\",\"children\":[],\"lastModified\":\"2023-12-18\"}],\"lastModified\":\"2023-06-28\"},{\"title\":\"next.config.js Options\",\"description\":\"Learn how to configure your application with next.config.js.\",\"path\":\"14/app/api-reference/next-config-js\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/index.mdx\",\"children\":[{\"title\":\"appDir\",\"description\":\"Enable the App Router to use layouts, streaming, and more.\",\"path\":\"14/app/api-reference/next-config-js/appDir\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/appDir.mdx\",\"children\":[],\"lastModified\":\"2023-08-24\"},{\"title\":\"assetPrefix\",\"description\":\"Learn how to use the assetPrefix config option to configure your CDN.\",\"path\":\"14/app/api-reference/next-config-js/assetPrefix\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/assetPrefix.mdx\",\"children\":[],\"lastModified\":\"2024-09-13\"},{\"title\":\"basePath\",\"description\":\"Use `basePath` to deploy a Next.js application under a sub-path of a domain.\",\"path\":\"14/app/api-reference/next-config-js/basePath\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/basePath.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"compress\",\"description\":\"Next.js provides gzip compression to compress rendered content and static files, it only works with the server target. Learn more about it here.\",\"path\":\"14/app/api-reference/next-config-js/compress\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/compress.mdx\",\"children\":[],\"lastModified\":\"2024-01-06\"},{\"title\":\"devIndicators\",\"description\":\"Optimized pages include an indicator to let you know if it's being statically optimized. You can opt-out of it here.\",\"path\":\"14/app/api-reference/next-config-js/devIndicators\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/devIndicators.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"distDir\",\"description\":\"Set a custom build directory to use instead of the default .next directory.\",\"path\":\"14/app/api-reference/next-config-js/distDir\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/distDir.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"env\",\"description\":\"Learn to add and access environment variables in your Next.js application at build time.\",\"path\":\"14/app/api-reference/next-config-js/env\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/env.mdx\",\"children\":[],\"lastModified\":\"2023-12-24\"},{\"title\":\"eslint\",\"description\":\"Next.js reports ESLint errors and warnings during builds by default. Learn how to opt-out of this behavior here.\",\"path\":\"14/app/api-reference/next-config-js/eslint\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/eslint.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"exportPathMap\",\"description\":\"Customize the pages that will be exported as HTML files when using `next export`.\",\"path\":\"14/app/api-reference/next-config-js/exportPathMap\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/exportPathMap.mdx\",\"children\":[],\"lastModified\":\"2024-08-22\"},{\"title\":\"generateBuildId\",\"description\":\"Configure the build id, which is used to identify the current build in which your application is being served.\",\"path\":\"14/app/api-reference/next-config-js/generateBuildId\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/generateBuildId.mdx\",\"children\":[],\"lastModified\":\"2023-11-07\"},{\"title\":\"generateEtags\",\"description\":\"Next.js will generate etags for every page by default. Learn more about how to disable etag generation here.\",\"path\":\"14/app/api-reference/next-config-js/generateEtags\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/generateEtags.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"headers\",\"description\":\"Add custom HTTP headers to your Next.js app.\",\"path\":\"14/app/api-reference/next-config-js/headers\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/headers.mdx\",\"children\":[],\"lastModified\":\"2024-02-23\"},{\"title\":\"httpAgentOptions\",\"description\":\"Next.js will automatically use HTTP Keep-Alive by default. Learn more about how to disable HTTP Keep-Alive here.\",\"path\":\"14/app/api-reference/next-config-js/httpAgentOptions\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/httpAgentOptions.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"images\",\"description\":\"Custom configuration for the next/image loader\",\"path\":\"14/app/api-reference/next-config-js/images\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/images.mdx\",\"children\":[],\"lastModified\":\"2024-03-29\"},{\"title\":\"cacheHandler\",\"description\":\"Configure the Next.js cache used for storing and revalidating data to use any external service like Redis, Memcached, or others.\",\"path\":\"14/app/api-reference/next-config-js/incrementalCacheHandlerPath\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/incrementalCacheHandlerPath.mdx\",\"children\":[],\"lastModified\":\"2024-01-17\"},{\"title\":\"logging\",\"description\":\"Configure how data fetches are logged to the console when running Next.js in development mode.\",\"path\":\"14/app/api-reference/next-config-js/logging\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/logging.mdx\",\"children\":[],\"lastModified\":\"2023-10-26\"},{\"title\":\"mdxRs\",\"description\":\"Use the new Rust compiler to compile MDX files in the App Router.\",\"path\":\"14/app/api-reference/next-config-js/mdxRs\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/mdxRs.mdx\",\"children\":[],\"lastModified\":\"2023-06-08\"},{\"title\":\"onDemandEntries\",\"description\":\"Configure how Next.js will dispose and keep in memory pages created in development.\",\"path\":\"14/app/api-reference/next-config-js/onDemandEntries\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/onDemandEntries.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"optimizePackageImports\",\"description\":\"API Reference for optmizedPackageImports Next.js Config Option\",\"path\":\"14/app/api-reference/next-config-js/optimizePackageImports\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/optimizePackageImports.mdx\",\"children\":[],\"lastModified\":\"2024-01-21\"},{\"title\":\"output\",\"description\":\"Next.js automatically traces which files are needed by each page to allow for easy deployment of your application. Learn how it works here.\",\"path\":\"14/app/api-reference/next-config-js/output\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/output.mdx\",\"children\":[],\"lastModified\":\"2023-09-14\"},{\"title\":\"pageExtensions\",\"description\":\"Extend the default page extensions used by Next.js when resolving pages in the Pages Router.\",\"path\":\"14/app/api-reference/next-config-js/pageExtensions\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/pageExtensions.mdx\",\"children\":[],\"lastModified\":\"2023-09-02\"},{\"title\":\"Partial Prerendering (experimental)\",\"description\":\"Learn how to enable Partial Prerendering (experimental) in Next.js 14.\",\"path\":\"14/app/api-reference/next-config-js/partial-prerendering\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/partial-prerendering.mdx\",\"children\":[],\"lastModified\":\"2023-11-08\"},{\"title\":\"poweredByHeader\",\"description\":\"Next.js will add the `x-powered-by` header by default. Learn to opt-out of it here.\",\"path\":\"14/app/api-reference/next-config-js/poweredByHeader\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/poweredByHeader.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"productionBrowserSourceMaps\",\"description\":\"Enables browser source map generation during the production build.\",\"path\":\"14/app/api-reference/next-config-js/productionBrowserSourceMaps\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/productionBrowserSourceMaps.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"reactStrictMode\",\"description\":\"The complete Next.js runtime is now Strict Mode-compliant, learn how to opt-in\",\"path\":\"14/app/api-reference/next-config-js/reactStrictMode\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/reactStrictMode.mdx\",\"children\":[],\"lastModified\":\"2023-06-29\"},{\"title\":\"redirects\",\"description\":\"Add redirects to your Next.js app.\",\"path\":\"14/app/api-reference/next-config-js/redirects\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/redirects.mdx\",\"children\":[],\"lastModified\":\"2024-01-21\"},{\"title\":\"rewrites\",\"description\":\"Add rewrites to your Next.js app.\",\"path\":\"14/app/api-reference/next-config-js/rewrites\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/rewrites.mdx\",\"children\":[],\"lastModified\":\"2024-01-26\"},{\"title\":\"serverActions\",\"description\":\"Configure Server Actions behavior in your Next.js application.\",\"path\":\"14/app/api-reference/next-config-js/serverActions\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/serverActions.mdx\",\"children\":[],\"lastModified\":\"2023-12-12\"},{\"title\":\"serverComponentsExternalPackages\",\"description\":\"Opt-out specific dependencies from the Server Components bundling and use native Node.js `require`.\",\"path\":\"14/app/api-reference/next-config-js/serverComponentsExternalPackages\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/serverComponentsExternalPackages.mdx\",\"children\":[],\"lastModified\":\"2024-05-14\"},{\"title\":\"trailingSlash\",\"description\":\"Configure Next.js pages to resolve with or without a trailing slash.\",\"path\":\"14/app/api-reference/next-config-js/trailingSlash\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/trailingSlash.mdx\",\"children\":[],\"lastModified\":\"2024-01-04\"},{\"title\":\"transpilePackages\",\"description\":\"Automatically transpile and bundle dependencies from local packages (like monorepos) or from external dependencies (`node_modules`).\",\"path\":\"14/app/api-reference/next-config-js/transpilePackages\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/transpilePackages.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"turbo\",\"description\":\"Configure Next.js with Turbopack-specific options\",\"path\":\"14/app/api-reference/next-config-js/turbo\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/turbo.mdx\",\"children\":[],\"lastModified\":\"2024-04-10\"},{\"title\":\"typedRoutes\",\"description\":\"Enable experimental support for statically typed links.\",\"path\":\"14/app/api-reference/next-config-js/typedRoutes\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/typedRoutes.mdx\",\"children\":[],\"lastModified\":\"2023-06-08\"},{\"title\":\"typescript\",\"description\":\"Next.js reports TypeScript errors by default. Learn to opt-out of this behavior here.\",\"path\":\"14/app/api-reference/next-config-js/typescript\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/typescript.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"urlImports\",\"description\":\"Configure Next.js to allow importing modules from external URLs (experimental).\",\"path\":\"14/app/api-reference/next-config-js/urlImports\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/urlImports.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"webpack\",\"description\":\"Learn how to customize the webpack config used by Next.js\",\"path\":\"14/app/api-reference/next-config-js/webpack\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/webpack.mdx\",\"children\":[],\"lastModified\":\"2023-12-11\"},{\"title\":\"webVitalsAttribution\",\"description\":\"Learn how to use the webVitalsAttribution option to pinpoint the source of Web Vitals issues.\",\"path\":\"14/app/api-reference/next-config-js/webVitalsAttribution\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/05-next-config-js/webVitalsAttribution.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"}],\"lastModified\":\"2024-02-23\"},{\"title\":\"create-next-app\",\"description\":\"Create Next.js apps in one command with create-next-app.\",\"path\":\"14/app/api-reference/create-next-app\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/06-create-next-app.mdx\",\"children\":[],\"lastModified\":\"$undefined\"},{\"title\":\"Edge Runtime\",\"description\":\"API Reference for the Edge Runtime.\",\"path\":\"14/app/api-reference/edge\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/07-edge.mdx\",\"children\":[],\"lastModified\":\"2024-12-12\"},{\"title\":\"Next.js CLI\",\"description\":\"The Next.js CLI allows you to start, build, and export your application. Learn more about it here.\",\"path\":\"14/app/api-reference/next-cli\",\"version\":\"$undefined\",\"source\":\"docs/14/02-app/02-api-reference/08-next-cli.mdx\",\"children\":[],\"lastModified\":\"$undefined\"}],\"lastModified\":\"2023-06-08\"},{\"title\":\"Building Your Application\",\"description\":\"Learn how to use Next.js features to build your application.\",\"path\":\"14/pages/building-your-application\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/index.mdx\",\"children\":[{\"title\":\"Routing\",\"description\":\"Learn the fundamentals of routing for front-end applications with the Pages Router.\",\"path\":\"14/pages/building-your-application/routing\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/01-routing/index.mdx\",\"children\":[{\"title\":\"Pages and Layouts\",\"description\":\"Create your first page and shared layout with the Pages Router.\",\"path\":\"14/pages/building-your-application/routing/pages-and-layouts\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/01-routing/01-pages-and-layouts.mdx\",\"children\":[],\"lastModified\":\"2024-01-22\"},{\"title\":\"Dynamic Routes\",\"description\":\"Dynamic Routes are pages that allow you to add custom params to your URLs. Start creating Dynamic Routes and learn more here.\",\"path\":\"14/pages/building-your-application/routing/dynamic-routes\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/01-routing/02-dynamic-routes.mdx\",\"children\":[],\"lastModified\":\"2023-10-27\"},{\"title\":\"Linking and Navigating\",\"description\":\"Learn how navigation works in Next.js, and how to use the Link Component and `useRouter` hook.\",\"path\":\"14/pages/building-your-application/routing/linking-and-navigating\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/01-routing/03-linking-and-navigating.mdx\",\"children\":[],\"lastModified\":\"2023-12-24\"},{\"title\":\"Custom App\",\"description\":\"Control page initialization and add a layout that persists for all pages by overriding the default App component used by Next.js.\",\"path\":\"14/pages/building-your-application/routing/custom-app\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/01-routing/04-custom-app.mdx\",\"children\":[],\"lastModified\":\"2024-01-24\"},{\"title\":\"Custom Document\",\"description\":\"Extend the default document markup added by Next.js.\",\"path\":\"14/pages/building-your-application/routing/custom-document\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/01-routing/05-custom-document.mdx\",\"children\":[],\"lastModified\":\"2024-01-24\"},{\"title\":\"Custom Errors\",\"description\":\"Override and extend the built-in Error page to handle custom errors.\",\"path\":\"14/pages/building-your-application/routing/custom-error\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/01-routing/06-custom-error.mdx\",\"children\":[],\"lastModified\":\"2024-01-24\"},{\"title\":\"API Routes\",\"description\":\"Next.js supports API Routes, which allow you to build your API without leaving your Next.js app. Learn how it works here.\",\"path\":\"14/pages/building-your-application/routing/api-routes\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/01-routing/07-api-routes.mdx\",\"children\":[],\"lastModified\":\"2023-12-18\"},{\"title\":\"Internationalization\",\"description\":\"Next.js has built-in support for internationalized routing and language detection. Learn more here.\",\"path\":\"14/pages/building-your-application/routing/internationalization\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/01-routing/08-internationalization.mdx\",\"children\":[],\"lastModified\":\"2024-01-24\"},{\"title\":\"Authenticating\",\"description\":\"Learn about authentication patterns in Next.js apps and explore a few examples.\",\"path\":\"14/pages/building-your-application/routing/authenticating\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/01-routing/09-authenticating.mdx\",\"children\":[],\"lastModified\":\"$undefined\"},{\"title\":\"Middleware\",\"description\":\"Learn how to use Middleware to run code before a request is completed.\",\"path\":\"14/pages/building-your-application/routing/middleware\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/01-routing/10-middleware.mdx\",\"children\":[],\"lastModified\":\"2024-01-24\"}],\"lastModified\":\"2023-06-08\"},{\"title\":\"Rendering\",\"description\":\"Learn the fundamentals of rendering in React and Next.js.\",\"path\":\"14/pages/building-your-application/rendering\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/02-rendering/index.mdx\",\"children\":[{\"title\":\"Server-side Rendering (SSR)\",\"description\":\"Use Server-side Rendering to render pages on each request.\",\"path\":\"14/pages/building-your-application/rendering/server-side-rendering\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/02-rendering/01-server-side-rendering.mdx\",\"children\":[],\"lastModified\":\"2023-06-08\"},{\"title\":\"Static Site Generation (SSG)\",\"description\":\"Use Static Site Generation (SSG) to pre-render pages at build time.\",\"path\":\"14/pages/building-your-application/rendering/static-site-generation\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/02-rendering/02-static-site-generation.mdx\",\"children\":[],\"lastModified\":\"2023-09-03\"},{\"title\":\"Automatic Static Optimization\",\"description\":\"Next.js automatically optimizes your app to be static HTML whenever possible. Learn how it works here.\",\"path\":\"14/pages/building-your-application/rendering/automatic-static-optimization\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/02-rendering/04-automatic-static-optimization.mdx\",\"children\":[],\"lastModified\":\"2023-06-12\"},{\"title\":\"Client-side Rendering (CSR)\",\"description\":\"Learn how to implement client-side rendering in the Pages Router.\",\"path\":\"14/pages/building-your-application/rendering/client-side-rendering\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/02-rendering/05-client-side-rendering.mdx\",\"children\":[],\"lastModified\":\"2023-11-08\"},{\"title\":\"Edge and Node.js Runtimes\",\"description\":\"Learn more about the switchable runtimes (Edge and Node.js) in Next.js.\",\"path\":\"14/pages/building-your-application/rendering/edge-and-nodejs-runtimes\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/02-rendering/06-edge-and-nodejs-runtimes.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"}],\"lastModified\":\"2023-06-08\"},{\"title\":\"Data Fetching\",\"description\":\"Next.js allows you to fetch data in multiple ways, with pre-rendering, server-side rendering or static-site generation, and incremental static regeneration. Learn how to manage your application data in Next.js.\",\"path\":\"14/pages/building-your-application/data-fetching\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/03-data-fetching/index.mdx\",\"children\":[{\"title\":\"getStaticProps\",\"description\":\"Fetch data and generate static pages with `getStaticProps`. Learn more about this API for data fetching in Next.js.\",\"path\":\"14/pages/building-your-application/data-fetching/get-static-props\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/03-data-fetching/01-get-static-props.mdx\",\"children\":[],\"lastModified\":\"2024-04-09\"},{\"title\":\"getStaticPaths\",\"description\":\"Fetch data and generate static pages with `getStaticPaths`. Learn more about this API for data fetching in Next.js.\",\"path\":\"14/pages/building-your-application/data-fetching/get-static-paths\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/03-data-fetching/02-get-static-paths.mdx\",\"children\":[],\"lastModified\":\"2023-10-12\"},{\"title\":\"Forms and Mutations\",\"description\":\"Learn how to handle form submissions and data mutations with Next.js.\",\"path\":\"14/pages/building-your-application/data-fetching/forms-and-mutations\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/03-data-fetching/03-forms-and-mutations.mdx\",\"children\":[],\"lastModified\":\"2023-12-07\"},{\"title\":\"getServerSideProps\",\"description\":\"Fetch data on each request with `getServerSideProps`.\",\"path\":\"14/pages/building-your-application/data-fetching/get-server-side-props\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/03-data-fetching/03-get-server-side-props.mdx\",\"children\":[],\"lastModified\":\"2023-12-18\"},{\"title\":\"Incremental Static Regeneration (ISR)\",\"description\":\"Learn how to create or update static pages at runtime with Incremental Static Regeneration.\",\"path\":\"14/pages/building-your-application/data-fetching/incremental-static-regeneration\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/03-data-fetching/04-incremental-static-regeneration.mdx\",\"children\":[],\"lastModified\":\"2024-08-22\"},{\"title\":\"Client-side Fetching\",\"description\":\"Learn about client-side data fetching, and how to use SWR, a data fetching React hook library that handles caching, revalidation, focus tracking, refetching on interval and more.\",\"path\":\"14/pages/building-your-application/data-fetching/client-side\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/03-data-fetching/05-client-side.mdx\",\"children\":[],\"lastModified\":\"2023-07-25\"}],\"lastModified\":\"2023-06-08\"},{\"title\":\"Styling\",\"description\":\"Learn the different ways you can style your Next.js application.\",\"path\":\"14/pages/building-your-application/styling\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/04-styling/index.mdx\",\"children\":[{\"title\":\"CSS Modules\",\"description\":\"Style your Next.js Application using CSS Modules.\",\"path\":\"14/pages/building-your-application/styling/css-modules\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/04-styling/01-css-modules.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"Tailwind CSS\",\"description\":\"Style your Next.js Application using Tailwind CSS.\",\"path\":\"14/pages/building-your-application/styling/tailwind-css\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/04-styling/02-tailwind-css.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"CSS-in-JS\",\"description\":\"Use CSS-in-JS libraries with Next.js\",\"path\":\"14/pages/building-your-application/styling/css-in-js\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/04-styling/03-css-in-js.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"Sass\",\"description\":\"Learn how to use Sass in your Next.js application.\",\"path\":\"14/pages/building-your-application/styling/sass\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/04-styling/04-sass.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"}],\"lastModified\":\"2023-06-28\"},{\"title\":\"Optimizing\",\"description\":\"Optimize your Next.js application for best performance and user experience.\",\"path\":\"14/pages/building-your-application/optimizing\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/05-optimizing/index.mdx\",\"children\":[{\"title\":\"Images\",\"description\":\"Optimize your images with the built-in `next/image` component.\",\"path\":\"14/pages/building-your-application/optimizing/images\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/05-optimizing/01-images.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"Fonts\",\"description\":\"Optimize your application's web fonts with the built-in `next/font` loaders.\",\"path\":\"14/pages/building-your-application/optimizing/fonts\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/05-optimizing/02-fonts.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"Scripts\",\"description\":\"Optimize 3rd party scripts with the built-in Script component.\",\"path\":\"14/pages/building-your-application/optimizing/scripts\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/05-optimizing/03-scripts.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"Static Assets\",\"description\":\"Next.js allows you to serve static files, like images, in the public directory. You can learn how it works here.\",\"path\":\"14/pages/building-your-application/optimizing/static-assets\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/05-optimizing/05-static-assets.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"Bundle Analyzer\",\"description\":\"Analyze the size of your JavaScript bundles using the @next/bundle-analyzer plugin.\",\"path\":\"14/pages/building-your-application/optimizing/bundle-analyzer\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/05-optimizing/06-bundle-analyzer.mdx\",\"children\":[],\"lastModified\":\"2024-01-05\"},{\"title\":\"Analytics\",\"description\":\"Measure and track page performance using Next.js Speed Insights\",\"path\":\"14/pages/building-your-application/optimizing/analytics\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/05-optimizing/07-analytics.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"Lazy Loading\",\"description\":\"Lazy load imported libraries and React Components to improve your application's loading performance.\",\"path\":\"14/pages/building-your-application/optimizing/lazy-loading\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/05-optimizing/08-lazy-loading.mdx\",\"children\":[],\"lastModified\":\"2024-01-05\"},{\"title\":\"Instrumentation\",\"description\":\"Learn how to use instrumentation to run code at server startup in your Next.js app\",\"path\":\"14/pages/building-your-application/optimizing/instrumentation\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/05-optimizing/09-instrumentation.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"OpenTelemetry\",\"description\":\"Learn how to instrument your Next.js app with OpenTelemetry.\",\"path\":\"14/pages/building-your-application/optimizing/open-telemetry\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/05-optimizing/10-open-telemetry.mdx\",\"children\":[],\"lastModified\":\"2024-01-05\"},{\"title\":\"Third Party Libraries\",\"description\":\"Optimize the performance of third-party libraries in your application with the `@next/third-parties` package.\",\"path\":\"14/pages/building-your-application/optimizing/third-party-libraries\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/05-optimizing/11-third-party-libraries.mdx\",\"children\":[],\"lastModified\":\"2023-10-25\"}],\"lastModified\":\"2023-06-28\"},{\"title\":\"Configuring\",\"description\":\"Learn how to configure your Next.js application.\",\"path\":\"14/pages/building-your-application/configuring\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/06-configuring/index.mdx\",\"children\":[{\"title\":\"TypeScript\",\"description\":\"Next.js provides a TypeScript-first development experience for building your React application.\",\"path\":\"14/pages/building-your-application/configuring/typescript\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/06-configuring/01-typescript.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"ESLint\",\"description\":\"Next.js reports ESLint errors and warnings during builds by default. Learn how to opt-out of this behavior here.\",\"path\":\"14/pages/building-your-application/configuring/eslint\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/06-configuring/02-eslint.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"Environment Variables\",\"description\":\"Learn to add and access environment variables in your Next.js application.\",\"path\":\"14/pages/building-your-application/configuring/environment-variables\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/06-configuring/03-environment-variables.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"Absolute Imports and Module Path Aliases\",\"description\":\"Configure module path aliases that allow you to remap certain import paths.\",\"path\":\"14/pages/building-your-application/configuring/absolute-imports-and-module-aliases\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/06-configuring/04-absolute-imports-and-module-aliases.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"src Directory\",\"description\":\"Save pages under the `src` directory as an alternative to the root `pages` directory.\",\"path\":\"14/pages/building-your-application/configuring/src-directory\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/06-configuring/05-src-directory.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"MDX\",\"description\":\"Learn how to configure MDX to write JSX in your markdown files.\",\"path\":\"14/pages/building-your-application/configuring/mdx\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/06-configuring/06-mdx.mdx\",\"children\":[],\"lastModified\":\"2023-11-02\"},{\"title\":\"AMP\",\"description\":\"With minimal config, and without leaving React, you can start adding AMP and improve the performance and speed of your pages.\",\"path\":\"14/pages/building-your-application/configuring/amp\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/06-configuring/07-amp.mdx\",\"children\":[],\"lastModified\":\"2023-06-13\"},{\"title\":\"Babel\",\"description\":\"Extend the babel preset added by Next.js with your own configs.\",\"path\":\"14/pages/building-your-application/configuring/babel\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/06-configuring/08-babel.mdx\",\"children\":[],\"lastModified\":\"2023-08-31\"},{\"title\":\"PostCSS\",\"description\":\"Extend the PostCSS config and plugins added by Next.js with your own.\",\"path\":\"14/pages/building-your-application/configuring/post-css\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/06-configuring/09-post-css.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"Custom Server\",\"description\":\"Start a Next.js app programmatically using a custom server.\",\"path\":\"14/pages/building-your-application/configuring/custom-server\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/06-configuring/10-custom-server.mdx\",\"children\":[],\"lastModified\":\"2024-03-22\"},{\"title\":\"Draft Mode\",\"description\":\"Next.js has draft mode to toggle between static and dynamic pages. You can learn how it works with Pages Router.\",\"path\":\"14/pages/building-your-application/configuring/draft-mode\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/06-configuring/11-draft-mode.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"Error Handling\",\"description\":\"Handle errors in your Next.js app.\",\"path\":\"14/pages/building-your-application/configuring/error-handling\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/06-configuring/12-error-handling.mdx\",\"children\":[],\"lastModified\":\"2023-09-19\"},{\"title\":\"Debugging\",\"description\":\"Learn how to debug your Next.js application with VS Code or Chrome DevTools.\",\"path\":\"14/pages/building-your-application/configuring/debugging\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/06-configuring/13-debugging.mdx\",\"children\":[],\"lastModified\":\"2024-08-22\"},{\"title\":\"Preview Mode\",\"description\":\"Next.js has the preview mode for statically generated pages. You can learn how it works here.\",\"path\":\"14/pages/building-your-application/configuring/preview-mode\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/06-configuring/14-preview-mode.mdx\",\"children\":[],\"lastModified\":\"2023-09-13\"},{\"title\":\"Content Security Policy\",\"description\":\"Learn how to set a Content Security Policy (CSP) for your Next.js application.\",\"path\":\"14/pages/building-your-application/configuring/content-security-policy\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/06-configuring/15-content-security-policy.mdx\",\"children\":[],\"lastModified\":\"2023-09-01\"}],\"lastModified\":\"2023-06-28\"},{\"title\":\"Testing\",\"description\":\"Learn how to set up Next.js with three commonly used testing tools — Cypress, Playwright, Vitest, and Jest.\",\"path\":\"14/pages/building-your-application/testing\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/07-testing/index.mdx\",\"children\":[{\"title\":\"Vitest\",\"description\":\"Learn how to set up Next.js with Vitest and React Testing Library - two popular unit testing libraries.\",\"path\":\"14/pages/building-your-application/testing/vitest\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/07-testing/01-vitest.mdx\",\"children\":[],\"lastModified\":\"2023-12-16\"},{\"title\":\"Jest\",\"description\":\"Learn how to set up Next.js with Jest for Unit Testing.\",\"path\":\"14/pages/building-your-application/testing/jest\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/07-testing/02-jest.mdx\",\"children\":[],\"lastModified\":\"2023-12-13\"},{\"title\":\"Playwright\",\"description\":\"Learn how to set up Next.js with Playwright for End-to-End (E2E) and Integration testing.\",\"path\":\"14/pages/building-your-application/testing/playwright\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/07-testing/03-playwright.mdx\",\"children\":[],\"lastModified\":\"2023-12-13\"},{\"title\":\"Cypress\",\"description\":\"Learn how to set up Next.js with Cypress for End-to-End (E2E) and Component Testing.\",\"path\":\"14/pages/building-your-application/testing/cypress\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/07-testing/04-cypress.mdx\",\"children\":[],\"lastModified\":\"2023-12-13\"}],\"lastModified\":\"2023-12-13\"},{\"title\":\"Deploying\",\"description\":\"Learn how to deploy your Next.js app to production, either managed or self-hosted.\",\"path\":\"14/pages/building-your-application/deploying\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/08-deploying/index.mdx\",\"children\":[{\"title\":\"Production Checklist\",\"description\":\"Recommendations to ensure the best performance and user experience before taking your Next.js application to production.\",\"path\":\"14/pages/building-your-application/deploying/production-checklist\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/08-deploying/01-production-checklist.mdx\",\"children\":[],\"lastModified\":\"2024-01-25\"},{\"title\":\"Static Exports\",\"description\":\"Next.js enables starting as a static site or Single-Page Application (SPA), then later optionally upgrading to use features that require a server.\",\"path\":\"14/pages/building-your-application/deploying/static-exports\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/08-deploying/02-static-exports.mdx\",\"children\":[],\"lastModified\":\"2024-01-25\"},{\"title\":\"Multi Zones\",\"description\":\"Learn how to use multi zones to deploy multiple Next.js apps as a single app.\",\"path\":\"14/pages/building-your-application/deploying/multi-zones\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/08-deploying/03-multi-zones.mdx\",\"children\":[],\"lastModified\":\"2024-08-02\"},{\"title\":\"Continuous Integration (CI) Build Caching\",\"description\":\"Learn how to configure CI to cache Next.js builds\",\"path\":\"14/pages/building-your-application/deploying/ci-build-caching\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/08-deploying/04-ci-build-caching.mdx\",\"children\":[],\"lastModified\":\"2024-02-23\"}],\"lastModified\":\"2024-01-25\"},{\"title\":\"Upgrading\",\"description\":\"Learn how to upgrade to the latest versions of Next.js.\",\"path\":\"14/pages/building-your-application/upgrading\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/09-upgrading/index.mdx\",\"children\":[{\"title\":\"Codemods\",\"description\":\"Use codemods to upgrade your Next.js codebase when new features are released.\",\"path\":\"14/pages/building-your-application/upgrading/codemods\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/09-upgrading/01-codemods.mdx\",\"children\":[],\"lastModified\":\"2024-01-25\"},{\"title\":\"From Pages to App\",\"description\":\"Learn how to upgrade your existing Next.js application from the Pages Router to the App Router.\",\"path\":\"14/pages/building-your-application/upgrading/app-router-migration\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/09-upgrading/02-app-router-migration.mdx\",\"children\":[],\"lastModified\":\"2024-01-25\"},{\"title\":\"Version 14\",\"description\":\"Upgrade your Next.js Application from Version 13 to 14.\",\"path\":\"14/pages/building-your-application/upgrading/version-14\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/09-upgrading/03-version-14.mdx\",\"children\":[],\"lastModified\":\"2024-02-09\"},{\"title\":\"Version 13\",\"description\":\"Upgrade your Next.js Application from Version 12 to 13.\",\"path\":\"14/pages/building-your-application/upgrading/version-13\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/09-upgrading/04-version-13.mdx\",\"children\":[],\"lastModified\":\"2024-02-09\"},{\"title\":\"Version 12\",\"description\":\"Upgrade your Next.js Application from Version 11 to Version 12.\",\"path\":\"14/pages/building-your-application/upgrading/version-12\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/09-upgrading/05-version-12.mdx\",\"children\":[],\"lastModified\":\"2024-03-22\"},{\"title\":\"Version 11\",\"description\":\"Upgrade your Next.js Application from Version 10 to Version 11.\",\"path\":\"14/pages/building-your-application/upgrading/version-11\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/09-upgrading/06-version-11.mdx\",\"children\":[],\"lastModified\":\"2024-02-09\"},{\"title\":\"Version 10\",\"description\":\"Upgrade your Next.js Application from Version 9 to Version 10.\",\"path\":\"14/pages/building-your-application/upgrading/version-10\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/09-upgrading/07-version-10.mdx\",\"children\":[],\"lastModified\":\"2024-02-09\"},{\"title\":\"Version 9\",\"description\":\"Upgrade your Next.js Application from Version 8 to Version 9.\",\"path\":\"14/pages/building-your-application/upgrading/version-9\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/01-building-your-application/09-upgrading/08-version-9.mdx\",\"children\":[],\"lastModified\":\"2024-02-09\"}],\"lastModified\":\"2024-01-25\"}],\"lastModified\":\"2023-06-28\"},{\"title\":\"API Reference\",\"description\":\"Next.js API Reference for the Pages Router.\",\"path\":\"14/pages/api-reference\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/index.mdx\",\"children\":[{\"title\":\"Components\",\"description\":\"API Reference for Next.js built-in components in the Pages Router.\",\"path\":\"14/pages/api-reference/components\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/01-components/index.mdx\",\"children\":[{\"title\":\"Font\",\"description\":\"API Reference for the Font Module\",\"path\":\"14/pages/api-reference/components/font\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/01-components/font.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"\u003cHead\u003e\",\"description\":\"Add custom elements to the `head` of your page with the built-in Head component.\",\"path\":\"14/pages/api-reference/components/head\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/01-components/head.mdx\",\"children\":[],\"lastModified\":\"2024-01-06\"},{\"title\":\"\u003cImage\u003e\",\"description\":\"Optimize Images in your Next.js Application using the built-in `next/image` Component.\",\"path\":\"14/pages/api-reference/components/image\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/01-components/image.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"\u003cImage\u003e (Legacy)\",\"description\":\"Backwards compatible Image Optimization with the Legacy Image component.\",\"path\":\"14/pages/api-reference/components/image-legacy\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/01-components/image-legacy.mdx\",\"children\":[],\"lastModified\":\"2024-09-24\"},{\"title\":\"\u003cLink\u003e\",\"description\":\"API reference for the \u003cLink\u003e component.\",\"path\":\"14/pages/api-reference/components/link\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/01-components/link.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"\u003cScript\u003e\",\"description\":\"Optimize third-party scripts in your Next.js application using the built-in `next/script` Component.\",\"path\":\"14/pages/api-reference/components/script\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/01-components/script.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"}],\"lastModified\":\"2023-06-28\"},{\"title\":\"Functions\",\"description\":\"API Reference for Functions and Hooks in Pages Router.\",\"path\":\"14/pages/api-reference/functions\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/02-functions/index.mdx\",\"children\":[{\"title\":\"getInitialProps\",\"description\":\"Fetch dynamic data on the server for your React component with getInitialProps.\",\"path\":\"14/pages/api-reference/functions/get-initial-props\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/02-functions/get-initial-props.mdx\",\"children\":[],\"lastModified\":\"2023-06-12\"},{\"title\":\"getServerSideProps\",\"description\":\"API reference for `getServerSideProps`. Learn how to fetch data on each request with Next.js.\",\"path\":\"14/pages/api-reference/functions/get-server-side-props\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/02-functions/get-server-side-props.mdx\",\"children\":[],\"lastModified\":\"2024-01-10\"},{\"title\":\"getStaticPaths\",\"description\":\"API reference for `getStaticPaths`. Learn how to fetch data and generate static pages with `getStaticPaths`.\",\"path\":\"14/pages/api-reference/functions/get-static-paths\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/02-functions/get-static-paths.mdx\",\"children\":[],\"lastModified\":\"2024-01-10\"},{\"title\":\"getStaticProps\",\"description\":\"API reference for `getStaticProps`. Learn how to use `getStaticProps` to generate static pages with Next.js.\",\"path\":\"14/pages/api-reference/functions/get-static-props\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/02-functions/get-static-props.mdx\",\"children\":[],\"lastModified\":\"2024-04-09\"},{\"title\":\"NextRequest\",\"description\":\"API Reference for NextRequest.\",\"path\":\"14/pages/api-reference/functions/next-request\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/02-functions/next-request.mdx\",\"children\":[],\"lastModified\":\"2023-12-18\"},{\"title\":\"NextResponse\",\"description\":\"API Reference for NextResponse.\",\"path\":\"14/pages/api-reference/functions/next-response\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/02-functions/next-response.mdx\",\"children\":[],\"lastModified\":\"2023-12-18\"},{\"title\":\"useAmp\",\"description\":\"Enable AMP in a page, and control the way Next.js adds AMP to the page with the AMP config.\",\"path\":\"14/pages/api-reference/functions/use-amp\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/02-functions/use-amp.mdx\",\"children\":[],\"lastModified\":\"2023-06-13\"},{\"title\":\"useReportWebVitals\",\"description\":\"useReportWebVitals\",\"path\":\"14/pages/api-reference/functions/use-report-web-vitals\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/02-functions/use-report-web-vitals.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"useRouter\",\"description\":\"Learn more about the API of the Next.js Router, and access the router instance in your page with the useRouter hook.\",\"path\":\"14/pages/api-reference/functions/use-router\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/02-functions/use-router.mdx\",\"children\":[],\"lastModified\":\"2024-01-25\"},{\"title\":\"userAgent\",\"description\":\"The userAgent helper extends the Web Request API with additional properties and methods to interact with the user agent object from the request.\",\"path\":\"14/pages/api-reference/functions/userAgent\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/02-functions/userAgent.mdx\",\"children\":[],\"lastModified\":\"2023-12-18\"}],\"lastModified\":\"2023-06-28\"},{\"title\":\"next.config.js Options\",\"description\":\"Learn about the options available in next.config.js for the Pages Router.\",\"path\":\"14/pages/api-reference/next-config-js\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/03-next-config-js/index.mdx\",\"children\":[{\"title\":\"assetPrefix\",\"description\":\"Learn how to use the assetPrefix config option to configure your CDN.\",\"path\":\"14/pages/api-reference/next-config-js/assetPrefix\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/03-next-config-js/assetPrefix.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"basePath\",\"description\":\"Use `basePath` to deploy a Next.js application under a sub-path of a domain.\",\"path\":\"14/pages/api-reference/next-config-js/basePath\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/03-next-config-js/basePath.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"compress\",\"description\":\"Next.js provides gzip compression to compress rendered content and static files, it only works with the server target. Learn more about it here.\",\"path\":\"14/pages/api-reference/next-config-js/compress\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/03-next-config-js/compress.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"devIndicators\",\"description\":\"Optimized pages include an indicator to let you know if it's being statically optimized. You can opt-out of it here.\",\"path\":\"14/pages/api-reference/next-config-js/devIndicators\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/03-next-config-js/devIndicators.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"distDir\",\"description\":\"Set a custom build directory to use instead of the default .next directory.\",\"path\":\"14/pages/api-reference/next-config-js/distDir\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/03-next-config-js/distDir.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"env\",\"description\":\"Learn to add and access environment variables in your Next.js application at build time.\",\"path\":\"14/pages/api-reference/next-config-js/env\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/03-next-config-js/env.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"eslint\",\"description\":\"Next.js reports ESLint errors and warnings during builds by default. Learn how to opt-out of this behavior here.\",\"path\":\"14/pages/api-reference/next-config-js/eslint\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/03-next-config-js/eslint.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"exportPathMap\",\"description\":\"Customize the pages that will be exported as HTML files when using `next export`.\",\"path\":\"14/pages/api-reference/next-config-js/exportPathMap\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/03-next-config-js/exportPathMap.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"generateBuildId\",\"description\":\"Configure the build id, which is used to identify the current build in which your application is being served.\",\"path\":\"14/pages/api-reference/next-config-js/generateBuildId\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/03-next-config-js/generateBuildId.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"generateEtags\",\"description\":\"Next.js will generate etags for every page by default. Learn more about how to disable etag generation here.\",\"path\":\"14/pages/api-reference/next-config-js/generateEtags\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/03-next-config-js/generateEtags.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"headers\",\"description\":\"Add custom HTTP headers to your Next.js app.\",\"path\":\"14/pages/api-reference/next-config-js/headers\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/03-next-config-js/headers.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"httpAgentOptions\",\"description\":\"Next.js will automatically use HTTP Keep-Alive by default. Learn more about how to disable HTTP Keep-Alive here.\",\"path\":\"14/pages/api-reference/next-config-js/httpAgentOptions\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/03-next-config-js/httpAgentOptions.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"images\",\"description\":\"Custom configuration for the next/image loader\",\"path\":\"14/pages/api-reference/next-config-js/images\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/03-next-config-js/images.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"onDemandEntries\",\"description\":\"Configure how Next.js will dispose and keep in memory pages created in development.\",\"path\":\"14/pages/api-reference/next-config-js/onDemandEntries\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/03-next-config-js/onDemandEntries.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"output\",\"description\":\"Next.js automatically traces which files are needed by each page to allow for easy deployment of your application. Learn how it works here.\",\"path\":\"14/pages/api-reference/next-config-js/output\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/03-next-config-js/output.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"pageExtensions\",\"description\":\"Extend the default page extensions used by Next.js when resolving pages in the Pages Router.\",\"path\":\"14/pages/api-reference/next-config-js/pageExtensions\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/03-next-config-js/pageExtensions.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"poweredByHeader\",\"description\":\"Next.js will add the `x-powered-by` header by default. Learn to opt-out of it here.\",\"path\":\"14/pages/api-reference/next-config-js/poweredByHeader\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/03-next-config-js/poweredByHeader.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"productionBrowserSourceMaps\",\"description\":\"Enables browser source map generation during the production build.\",\"path\":\"14/pages/api-reference/next-config-js/productionBrowserSourceMaps\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/03-next-config-js/productionBrowserSourceMaps.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"reactStrictMode\",\"description\":\"The complete Next.js runtime is now Strict Mode-compliant, learn how to opt-in\",\"path\":\"14/pages/api-reference/next-config-js/reactStrictMode\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/03-next-config-js/reactStrictMode.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"redirects\",\"description\":\"Add redirects to your Next.js app.\",\"path\":\"14/pages/api-reference/next-config-js/redirects\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/03-next-config-js/redirects.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"rewrites\",\"description\":\"Add rewrites to your Next.js app.\",\"path\":\"14/pages/api-reference/next-config-js/rewrites\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/03-next-config-js/rewrites.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"Runtime Config\",\"description\":\"Add client and server runtime configuration to your Next.js app.\",\"path\":\"14/pages/api-reference/next-config-js/runtime-configuration\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/03-next-config-js/runtime-configuration.mdx\",\"children\":[],\"lastModified\":\"2023-12-17\"},{\"title\":\"trailingSlash\",\"description\":\"Configure Next.js pages to resolve with or without a trailing slash.\",\"path\":\"14/pages/api-reference/next-config-js/trailingSlash\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/03-next-config-js/trailingSlash.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"transpilePackages\",\"description\":\"Automatically transpile and bundle dependencies from local packages (like monorepos) or from external dependencies (`node_modules`).\",\"path\":\"14/pages/api-reference/next-config-js/transpilePackages\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/03-next-config-js/transpilePackages.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"turbo\",\"description\":\"Configure Next.js with Turbopack-specific options\",\"path\":\"14/pages/api-reference/next-config-js/turbo\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/03-next-config-js/turbo.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"typescript\",\"description\":\"Next.js reports TypeScript errors by default. Learn to opt-out of this behavior here.\",\"path\":\"14/pages/api-reference/next-config-js/typescript\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/03-next-config-js/typescript.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"urlImports\",\"description\":\"Configure Next.js to allow importing modules from external URLs (experimental).\",\"path\":\"14/pages/api-reference/next-config-js/urlImports\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/03-next-config-js/urlImports.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"webpack\",\"description\":\"Learn how to customize the webpack config used by Next.js\",\"path\":\"14/pages/api-reference/next-config-js/webpack\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/03-next-config-js/webpack.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"},{\"title\":\"webVitalsAttribution\",\"description\":\"Learn how to use the webVitalsAttribution option to pinpoint the source of Web Vitals issues.\",\"path\":\"14/pages/api-reference/next-config-js/webVitalsAttribution\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/03-next-config-js/webVitalsAttribution.mdx\",\"children\":[],\"lastModified\":\"2023-06-28\"}],\"lastModified\":\"2023-06-28\"},{\"title\":\"create-next-app\",\"description\":\"create-next-app\",\"path\":\"14/pages/api-reference/create-next-app\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/04-create-next-app.mdx\",\"children\":[],\"lastModified\":\"$undefined\"},{\"title\":\"Next.js CLI\",\"description\":\"Next.js CLI\",\"path\":\"14/pages/api-reference/next-cli\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/05-next-cli.mdx\",\"children\":[],\"lastModified\":\"$undefined\"},{\"title\":\"Edge Runtime\",\"description\":\"API Reference for the Edge Runtime.\",\"path\":\"14/pages/api-reference/edge\",\"version\":\"$undefined\",\"source\":\"docs/14/03-pages/02-api-reference/06-edge.mdx\",\"children\":[],\"lastModified\":\"2024-08-22\"}],\"lastModified\":\"2023-06-08\"},{\"title\":\"Architecture\",\"description\":\"How Next.js Works\",\"path\":\"14/architecture\",\"version\":\"$undefined\",\"source\":\"docs/14/04-architecture/index.mdx\",\"children\":[{\"title\":\"Accessibility\",\"description\":\"The built-in accessibility features of Next.js.\",\"path\":\"14/architecture/accessibility\",\"version\":\"$undefined\",\"source\":\"docs/14/04-architecture/accessibility.mdx\",\"children\":[],\"lastModified\":\"2023-12-15\"},{\"title\":\"Fast Refresh\",\"description\":\"Fast Refresh is a hot module reloading experience that gives you instantaneous feedback on edits made to your React components.\",\"path\":\"14/architecture/fast-refresh\",\"version\":\"$undefined\",\"source\":\"docs/14/04-architecture/fast-refresh.mdx\",\"children\":[],\"lastModified\":\"2023-11-29\"},{\"title\":\"Next.js Compiler\",\"description\":\"Next.js Compiler, written in Rust, which transforms and minifies your Next.js application.\",\"path\":\"14/architecture/nextjs-compiler\",\"version\":\"$undefined\",\"source\":\"docs/14/04-architecture/nextjs-compiler.mdx\",\"children\":[],\"lastModified\":\"2024-01-29\"},{\"title\":\"Supported Browsers\",\"description\":\"Browser support and which JavaScript features are supported by Next.js.\",\"path\":\"14/architecture/supported-browsers\",\"version\":\"$undefined\",\"source\":\"docs/14/04-architecture/supported-browsers.mdx\",\"children\":[],\"lastModified\":\"2024-03-25\"},{\"title\":\"Turbopack\",\"description\":\"Turbopack is an incremental bundler optimized for JavaScript and TypeScript, written in Rust, and built into Next.js.\",\"path\":\"14/architecture/turbopack\",\"version\":\"$undefined\",\"source\":\"docs/14/04-architecture/turbopack.mdx\",\"children\":[],\"lastModified\":\"2024-04-11\"}],\"lastModified\":\"2023-06-08\"},{\"title\":\"Community\",\"description\":\"Get involved in the Next.js community.\",\"path\":\"14/community\",\"version\":\"$undefined\",\"source\":\"docs/14/05-community/index.mdx\",\"children\":[{\"title\":\"Contribution Guide\",\"description\":\"Learn how to contribute to Next.js Documentation\",\"path\":\"14/community/contribution-guide\",\"version\":\"$undefined\",\"source\":\"docs/14/05-community/01-contribution-guide.mdx\",\"children\":[],\"lastModified\":\"2024-02-05\"}],\"lastModified\":\"2023-12-31\"}],\"15\":[{\"title\":\"Getting Started\",\"description\":\"Learn how to create full-stack web applications with the Next.js App Router.\",\"path\":\"15/app/getting-started\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/01-getting-started/index.mdx\",\"children\":[{\"title\":\"Installation\",\"description\":\"Learn how to create a new Next.js application with the `create-next-app` CLI, and set up TypeScript, ESLint, and Module Path Aliases.\",\"path\":\"15/app/getting-started/installation\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/01-getting-started/01-installation.mdx\",\"children\":[],\"lastModified\":\"2025-10-10\"},{\"title\":\"Project Structure\",\"description\":\"Learn the folder and file conventions in Next.js, and how to organize your project.\",\"path\":\"15/app/getting-started/project-structure\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/01-getting-started/02-project-structure.mdx\",\"children\":[],\"lastModified\":\"2025-10-10\"},{\"title\":\"Layouts and Pages\",\"description\":\"Learn how to create your first pages and layouts, and link between them with the Link component.\",\"path\":\"15/app/getting-started/layouts-and-pages\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/01-getting-started/03-layouts-and-pages.mdx\",\"children\":[],\"lastModified\":\"2025-08-19\"},{\"title\":\"Linking and Navigating\",\"description\":\"Learn how the built-in navigation optimizations work, including prefetching, prerendering, and client-side navigation, and how to optimize navigation for dynamic routes and slow networks.\",\"path\":\"15/app/getting-started/linking-and-navigating\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/01-getting-started/04-linking-and-navigating.mdx\",\"children\":[],\"lastModified\":\"2025-06-18\"},{\"title\":\"Server and Client Components\",\"description\":\"Learn how you can use React Server and Client Components to render parts of your application on the server or the client.\",\"path\":\"15/app/getting-started/server-and-client-components\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/01-getting-started/05-server-and-client-components.mdx\",\"children\":[],\"lastModified\":\"2025-07-11\"},{\"title\":\"Partial Prerendering\",\"description\":\"Learn how to use Partial Prerendering and combine the benefits of static and dynamic rendering.\",\"path\":\"15/app/getting-started/partial-prerendering\",\"version\":\"experimental\",\"source\":\"docs/15/01-app/01-getting-started/06-partial-prerendering.mdx\",\"children\":[],\"lastModified\":\"2025-08-05\"},{\"title\":\"Fetching Data\",\"description\":\"Learn how to fetch data and stream content that depends on data.\",\"path\":\"15/app/getting-started/fetching-data\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/01-getting-started/07-fetching-data.mdx\",\"children\":[],\"lastModified\":\"2025-07-30\"},{\"title\":\"Updating Data\",\"description\":\"Learn how to mutate data using Server Functions.\",\"path\":\"15/app/getting-started/updating-data\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/01-getting-started/08-updating-data.mdx\",\"children\":[],\"lastModified\":\"2025-09-23\"},{\"title\":\"Caching and Revalidating\",\"description\":\"Learn how to cache and revalidate data in your application.\",\"path\":\"15/app/getting-started/caching-and-revalidating\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/01-getting-started/09-caching-and-revalidating.mdx\",\"children\":[],\"lastModified\":\"2025-07-05\"},{\"title\":\"Error Handling\",\"description\":\"Learn how to display expected errors and handle uncaught exceptions.\",\"path\":\"15/app/getting-started/error-handling\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/01-getting-started/10-error-handling.mdx\",\"children\":[],\"lastModified\":\"2025-06-26\"},{\"title\":\"CSS\",\"description\":\"Learn about the different ways to add CSS to your application, including Tailwind CSS, CSS Modules, Global CSS, and more.\",\"path\":\"15/app/getting-started/css\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/01-getting-started/11-css.mdx\",\"children\":[],\"lastModified\":\"2025-08-06\"},{\"title\":\"Image Optimization\",\"description\":\"Learn how to optimize images in Next.js\",\"path\":\"15/app/getting-started/images\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/01-getting-started/12-images.mdx\",\"children\":[],\"lastModified\":\"2025-06-11\"},{\"title\":\"Font Optimization\",\"description\":\"Learn how to optimize fonts in Next.js\",\"path\":\"15/app/getting-started/fonts\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/01-getting-started/13-fonts.mdx\",\"children\":[],\"lastModified\":\"2025-06-11\"},{\"title\":\"Metadata and OG images\",\"description\":\"Learn how to add metadata to your pages and create dynamic OG images.\",\"path\":\"15/app/getting-started/metadata-and-og-images\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/01-getting-started/14-metadata-and-og-images.mdx\",\"children\":[],\"lastModified\":\"2025-10-10\"},{\"title\":\"Route Handlers and Middleware\",\"description\":\"Learn how to use Route Handlers and Middleware\",\"path\":\"15/app/getting-started/route-handlers-and-middleware\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/01-getting-started/15-route-handlers-and-middleware.mdx\",\"children\":[],\"lastModified\":\"2025-09-23\"},{\"title\":\"Deploying\",\"description\":\"Learn how to deploy your Next.js application.\",\"path\":\"15/app/getting-started/deploying\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/01-getting-started/16-deploying.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"Upgrading\",\"description\":\"Learn how to upgrade your Next.js application to the latest version or canary.\",\"path\":\"15/app/getting-started/upgrading\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/01-getting-started/17-upgrading.mdx\",\"children\":[],\"lastModified\":\"2025-07-17\"}],\"lastModified\":\"2025-05-02\"},{\"title\":\"Guides\",\"description\":\"Learn how to implement common patterns and real-world use cases using Next.js\",\"path\":\"15/app/guides\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/index.mdx\",\"children\":[{\"title\":\"Analytics\",\"description\":\"Measure and track page performance using Next.js Speed Insights\",\"path\":\"15/app/guides/analytics\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/analytics.mdx\",\"children\":[],\"lastModified\":\"2025-05-13\"},{\"title\":\"Authentication\",\"description\":\"Learn how to implement authentication in your Next.js application.\",\"path\":\"15/app/guides/authentication\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/authentication.mdx\",\"children\":[],\"lastModified\":\"2025-07-30\"},{\"title\":\"Backend for Frontend\",\"description\":\"Learn how to use Next.js as a backend framework\",\"path\":\"15/app/guides/backend-for-frontend\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/backend-for-frontend.mdx\",\"children\":[],\"lastModified\":\"2025-10-10\"},{\"title\":\"Caching\",\"description\":\"An overview of caching mechanisms in Next.js.\",\"path\":\"15/app/guides/caching\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/caching.mdx\",\"children\":[],\"lastModified\":\"2025-07-03\"},{\"title\":\"CI Build Caching\",\"description\":\"Learn how to configure CI to cache Next.js builds\",\"path\":\"15/app/guides/ci-build-caching\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/ci-build-caching.mdx\",\"children\":[],\"lastModified\":\"2025-04-22\"},{\"title\":\"Content Security Policy\",\"description\":\"Learn how to set a Content Security Policy (CSP) for your Next.js application.\",\"path\":\"15/app/guides/content-security-policy\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/content-security-policy.mdx\",\"children\":[],\"lastModified\":\"2025-09-23\"},{\"title\":\"CSS-in-JS\",\"description\":\"Use CSS-in-JS libraries with Next.js\",\"path\":\"15/app/guides/css-in-js\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/css-in-js.mdx\",\"children\":[],\"lastModified\":\"2025-07-28\"},{\"title\":\"Custom Server\",\"description\":\"Start a Next.js app programmatically using a custom server.\",\"path\":\"15/app/guides/custom-server\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/custom-server.mdx\",\"children\":[],\"lastModified\":\"2025-04-25\"},{\"title\":\"Data Security\",\"description\":\"Learn the built-in data security features in Next.js and learn best practices for protecting your application's data.\",\"path\":\"15/app/guides/data-security\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/data-security.mdx\",\"children\":[],\"lastModified\":\"2025-09-23\"},{\"title\":\"Debugging\",\"description\":\"Learn how to debug your Next.js application with VS Code, Chrome DevTools, or Firefox DevTools.\",\"path\":\"15/app/guides/debugging\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/debugging.mdx\",\"children\":[],\"lastModified\":\"2025-08-04\"},{\"title\":\"Draft Mode\",\"description\":\"Next.js has draft mode to toggle between static and dynamic pages. You can learn how it works with App Router here.\",\"path\":\"15/app/guides/draft-mode\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/draft-mode.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"Environment Variables\",\"description\":\"Learn to add and access environment variables in your Next.js application.\",\"path\":\"15/app/guides/environment-variables\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/environment-variables.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"Forms\",\"description\":\"Learn how to create forms in Next.js with React Server Actions.\",\"path\":\"15/app/guides/forms\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/forms.mdx\",\"children\":[],\"lastModified\":\"2025-10-10\"},{\"title\":\"ISR\",\"description\":\"Learn how to create or update static pages at runtime with Incremental Static Regeneration.\",\"path\":\"15/app/guides/incremental-static-regeneration\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/incremental-static-regeneration.mdx\",\"children\":[],\"lastModified\":\"2025-09-23\"},{\"title\":\"Instrumentation\",\"description\":\"Learn how to use instrumentation to run code at server startup in your Next.js app\",\"path\":\"15/app/guides/instrumentation\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/instrumentation.mdx\",\"children\":[],\"lastModified\":\"2025-05-14\"},{\"title\":\"Internationalization\",\"description\":\"Add support for multiple languages with internationalized routing and localized content.\",\"path\":\"15/app/guides/internationalization\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/internationalization.mdx\",\"children\":[],\"lastModified\":\"2025-09-23\"},{\"title\":\"JSON-LD\",\"description\":\"Learn how to add JSON-LD to your Next.js application to describe your content to search engines and AI.\",\"path\":\"15/app/guides/json-ld\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/json-ld.mdx\",\"children\":[],\"lastModified\":\"2025-10-10\"},{\"title\":\"Lazy Loading\",\"description\":\"Lazy load imported libraries and React Components to improve your application's loading performance.\",\"path\":\"15/app/guides/lazy-loading\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/lazy-loading.mdx\",\"children\":[],\"lastModified\":\"2025-10-10\"},{\"title\":\"Development Environment\",\"description\":\"Learn how to optimize your local development environment with Next.js.\",\"path\":\"15/app/guides/local-development\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/local-development.mdx\",\"children\":[],\"lastModified\":\"2025-09-23\"},{\"title\":\"MDX\",\"description\":\"Learn how to configure MDX and use it in your Next.js apps.\",\"path\":\"15/app/guides/mdx\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/mdx.mdx\",\"children\":[],\"lastModified\":\"2025-07-29\"},{\"title\":\"Memory Usage\",\"description\":\"Optimize memory used by your application in development and production.\",\"path\":\"15/app/guides/memory-usage\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/memory-usage.mdx\",\"children\":[],\"lastModified\":\"2025-06-04\"},{\"title\":\"Migrating\",\"description\":\"Learn how to migrate from popular frameworks to Next.js\",\"path\":\"15/app/guides/migrating\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/migrating/index.mdx\",\"children\":[{\"title\":\"App Router\",\"description\":\"Learn how to upgrade your existing Next.js application from the Pages Router to the App Router.\",\"path\":\"15/app/guides/migrating/app-router-migration\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/migrating/app-router-migration.mdx\",\"children\":[],\"lastModified\":\"2025-08-06\"},{\"title\":\"Create React App\",\"description\":\"Learn how to migrate your existing React application from Create React App to Next.js.\",\"path\":\"15/app/guides/migrating/from-create-react-app\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/migrating/from-create-react-app.mdx\",\"children\":[],\"lastModified\":\"2025-08-06\"},{\"title\":\"Vite\",\"description\":\"Learn how to migrate your existing React application from Vite to Next.js.\",\"path\":\"15/app/guides/migrating/from-vite\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/migrating/from-vite.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"}],\"lastModified\":\"2025-04-15\"},{\"title\":\"Multi-tenant\",\"description\":\"Learn how to build multi-tenant apps with the App Router.\",\"path\":\"15/app/guides/multi-tenant\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/multi-tenant.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Multi-zones\",\"description\":\"Learn how to build micro-frontends using Next.js Multi-Zones to deploy multiple Next.js apps under a single domain.\",\"path\":\"15/app/guides/multi-zones\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/multi-zones.mdx\",\"children\":[],\"lastModified\":\"2025-06-10\"},{\"title\":\"OpenTelemetry\",\"description\":\"Learn how to instrument your Next.js app with OpenTelemetry.\",\"path\":\"15/app/guides/open-telemetry\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/open-telemetry.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"Package Bundling\",\"description\":\"Learn how to optimize your application's server and client bundles.\",\"path\":\"15/app/guides/package-bundling\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/package-bundling.mdx\",\"children\":[],\"lastModified\":\"2025-09-23\"},{\"title\":\"Prefetching\",\"description\":\"Learn how to configure prefetching in Next.js\",\"path\":\"15/app/guides/prefetching\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/prefetching.mdx\",\"children\":[],\"lastModified\":\"2025-07-14\"},{\"title\":\"Production\",\"description\":\"Recommendations to ensure the best performance and user experience before taking your Next.js application to production.\",\"path\":\"15/app/guides/production-checklist\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/production-checklist.mdx\",\"children\":[],\"lastModified\":\"2025-08-13\"},{\"title\":\"PWAs\",\"description\":\"Learn how to build a Progressive Web Application (PWA) with Next.js.\",\"path\":\"15/app/guides/progressive-web-apps\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/progressive-web-apps.mdx\",\"children\":[],\"lastModified\":\"2025-08-07\"},{\"title\":\"Redirecting\",\"description\":\"Learn the different ways to handle redirects in Next.js.\",\"path\":\"15/app/guides/redirecting\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/redirecting.mdx\",\"children\":[],\"lastModified\":\"2025-07-01\"},{\"title\":\"Sass\",\"description\":\"Style your Next.js application using Sass.\",\"path\":\"15/app/guides/sass\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/sass.mdx\",\"children\":[],\"lastModified\":\"2025-04-25\"},{\"title\":\"Scripts\",\"description\":\"Optimize 3rd party scripts with the built-in Script component.\",\"path\":\"15/app/guides/scripts\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/scripts.mdx\",\"children\":[],\"lastModified\":\"2025-05-15\"},{\"title\":\"Self-Hosting\",\"description\":\"Learn how to self-host your Next.js application on a Node.js server, Docker image, or static HTML files (static exports).\",\"path\":\"15/app/guides/self-hosting\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/self-hosting.mdx\",\"children\":[],\"lastModified\":\"2025-08-14\"},{\"title\":\"SPAs\",\"description\":\"Next.js fully supports building Single-Page Applications (SPAs).\",\"path\":\"15/app/guides/single-page-applications\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/single-page-applications.mdx\",\"children\":[],\"lastModified\":\"2025-06-10\"},{\"title\":\"Static Exports\",\"description\":\"Next.js enables starting as a static site or Single-Page Application (SPA), then later optionally upgrading to use features that require a server.\",\"path\":\"15/app/guides/static-exports\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/static-exports.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"Tailwind CSS v3\",\"description\":\"Style your Next.js Application using Tailwind CSS v3 for broader browser support.\",\"path\":\"15/app/guides/tailwind-v3-css\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/tailwind-v3-css.mdx\",\"children\":[],\"lastModified\":\"2025-08-06\"},{\"title\":\"Testing\",\"description\":\"Learn how to set up Next.js with four commonly used testing tools — Cypress, Playwright, Vitest, and Jest.\",\"path\":\"15/app/guides/testing\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/testing/index.mdx\",\"children\":[{\"title\":\"Cypress\",\"description\":\"Learn how to set up Cypress with Next.js for End-to-End (E2E) and Component Testing.\",\"path\":\"15/app/guides/testing/cypress\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/testing/cypress.mdx\",\"children\":[],\"lastModified\":\"2025-08-19\"},{\"title\":\"Jest\",\"description\":\"Learn how to set up Jest with Next.js for Unit Testing and Snapshot Testing.\",\"path\":\"15/app/guides/testing/jest\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/testing/jest.mdx\",\"children\":[],\"lastModified\":\"2025-05-07\"},{\"title\":\"Playwright\",\"description\":\"Learn how to set up Playwright with Next.js for End-to-End (E2E) Testing.\",\"path\":\"15/app/guides/testing/playwright\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/testing/playwright.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"Vitest\",\"description\":\"Learn how to set up Vitest with Next.js for Unit Testing.\",\"path\":\"15/app/guides/testing/vitest\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/testing/vitest.mdx\",\"children\":[],\"lastModified\":\"2025-08-15\"}],\"lastModified\":\"2025-04-24\"},{\"title\":\"Third Party Libraries\",\"description\":\"Optimize the performance of third-party libraries in your application with the `@next/third-parties` package.\",\"path\":\"15/app/guides/third-party-libraries\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/third-party-libraries.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"Upgrading\",\"description\":\"Learn how to upgrade to the latest versions of Next.js.\",\"path\":\"15/app/guides/upgrading\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/upgrading/index.mdx\",\"children\":[{\"title\":\"Codemods\",\"description\":\"Use codemods to upgrade your Next.js codebase when new features are released.\",\"path\":\"15/app/guides/upgrading/codemods\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/upgrading/codemods.mdx\",\"children\":[],\"lastModified\":\"2025-08-19\"},{\"title\":\"Version 14\",\"description\":\"Upgrade your Next.js Application from Version 13 to 14.\",\"path\":\"15/app/guides/upgrading/version-14\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/upgrading/version-14.mdx\",\"children\":[],\"lastModified\":\"2025-04-22\"},{\"title\":\"Version 15\",\"description\":\"Upgrade your Next.js Application from Version 14 to 15.\",\"path\":\"15/app/guides/upgrading/version-15\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/upgrading/version-15.mdx\",\"children\":[],\"lastModified\":\"2025-07-10\"}],\"lastModified\":\"2025-04-15\"},{\"title\":\"Videos\",\"description\":\"Recommendations and best practices for optimizing videos in your Next.js application.\",\"path\":\"15/app/guides/videos\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/02-guides/videos.mdx\",\"children\":[],\"lastModified\":\"2025-09-23\"}],\"lastModified\":\"2025-06-11\"},{\"title\":\"API Reference\",\"description\":\"Next.js API Reference for the App Router.\",\"path\":\"15/app/api-reference\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/index.mdx\",\"children\":[{\"title\":\"Directives\",\"description\":\"Directives are used to modify the behavior of your Next.js application.\",\"path\":\"15/app/api-reference/directives\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/01-directives/index.mdx\",\"children\":[{\"title\":\"use cache\",\"description\":\"Learn how to use the use cache directive to cache data in your Next.js application.\",\"path\":\"15/app/api-reference/directives/use-cache\",\"version\":\"canary\",\"source\":\"docs/15/01-app/03-api-reference/01-directives/use-cache.mdx\",\"children\":[],\"lastModified\":\"2025-07-17\"},{\"title\":\"use client\",\"description\":\"Learn how to use the use client directive to render a component on the client.\",\"path\":\"15/app/api-reference/directives/use-client\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/01-directives/use-client.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"use server\",\"description\":\"Learn how to use the use server directive to execute code on the server.\",\"path\":\"15/app/api-reference/directives/use-server\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/01-directives/use-server.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"}],\"lastModified\":\"2025-06-16\"},{\"title\":\"Components\",\"description\":\"API Reference for Next.js built-in components.\",\"path\":\"15/app/api-reference/components\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/02-components/index.mdx\",\"children\":[{\"title\":\"Font\",\"description\":\"Optimizing loading web fonts with the built-in `next/font` loaders.\",\"path\":\"15/app/api-reference/components/font\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/02-components/font.mdx\",\"children\":[],\"lastModified\":\"2025-08-06\"},{\"title\":\"Form Component\",\"description\":\"Learn how to use the `\u003cForm\u003e` component to handle form submissions and search params updates with client-side navigation.\",\"path\":\"15/app/api-reference/components/form\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/02-components/form.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"Image Component\",\"description\":\"Optimize Images in your Next.js Application using the built-in `next/image` Component.\",\"path\":\"15/app/api-reference/components/image\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/02-components/image.mdx\",\"children\":[],\"lastModified\":\"2026-01-15\"},{\"title\":\"Link Component\",\"description\":\"Enable fast client-side navigation with the built-in `next/link` component.\",\"path\":\"15/app/api-reference/components/link\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/02-components/link.mdx\",\"children\":[],\"lastModified\":\"2025-09-23\"},{\"title\":\"Script Component\",\"description\":\"Optimize third-party scripts in your Next.js application using the built-in `next/script` Component.\",\"path\":\"15/app/api-reference/components/script\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/02-components/script.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"}],\"lastModified\":\"2025-06-16\"},{\"title\":\"File-system conventions\",\"description\":\"API Reference for Next.js file-system conventions.\",\"path\":\"15/app/api-reference/file-conventions\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/03-file-conventions/index.mdx\",\"children\":[{\"title\":\"default.js\",\"description\":\"API Reference for the default.js file.\",\"path\":\"15/app/api-reference/file-conventions/default\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/03-file-conventions/default.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"Dynamic Segments\",\"description\":\"Dynamic Route Segments can be used to programmatically generate route segments from dynamic data.\",\"path\":\"15/app/api-reference/file-conventions/dynamic-routes\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/03-file-conventions/dynamic-routes.mdx\",\"children\":[],\"lastModified\":\"2025-09-23\"},{\"title\":\"error.js\",\"description\":\"API reference for the error.js special file.\",\"path\":\"15/app/api-reference/file-conventions/error\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/03-file-conventions/error.mdx\",\"children\":[],\"lastModified\":\"2025-10-10\"},{\"title\":\"forbidden.js\",\"description\":\"API reference for the forbidden.js special file.\",\"path\":\"15/app/api-reference/file-conventions/forbidden\",\"version\":\"experimental\",\"source\":\"docs/15/01-app/03-api-reference/03-file-conventions/forbidden.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"instrumentation.js\",\"description\":\"API reference for the instrumentation.js file.\",\"path\":\"15/app/api-reference/file-conventions/instrumentation\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/03-file-conventions/instrumentation.mdx\",\"children\":[],\"lastModified\":\"2025-10-10\"},{\"title\":\"instrumentation-client.js\",\"description\":\"Learn how to add client-side instrumentation to track and monitor your Next.js application's frontend performance.\",\"path\":\"15/app/api-reference/file-conventions/instrumentation-client\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/03-file-conventions/instrumentation-client.mdx\",\"children\":[],\"lastModified\":\"2025-08-06\"},{\"title\":\"Intercepting Routes\",\"description\":\"Use intercepting routes to load a new route within the current layout while masking the browser URL, useful for advanced routing patterns such as modals.\",\"path\":\"15/app/api-reference/file-conventions/intercepting-routes\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/03-file-conventions/intercepting-routes.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"layout.js\",\"description\":\"API reference for the layout.js file.\",\"path\":\"15/app/api-reference/file-conventions/layout\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/03-file-conventions/layout.mdx\",\"children\":[],\"lastModified\":\"2025-10-10\"},{\"title\":\"loading.js\",\"description\":\"API reference for the loading.js file.\",\"path\":\"15/app/api-reference/file-conventions/loading\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/03-file-conventions/loading.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"mdx-components.js\",\"description\":\"API reference for the mdx-components.js file.\",\"path\":\"15/app/api-reference/file-conventions/mdx-components\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/03-file-conventions/mdx-components.mdx\",\"children\":[],\"lastModified\":\"2025-07-29\"},{\"title\":\"middleware.js\",\"description\":\"API reference for the middleware.js file.\",\"path\":\"15/app/api-reference/file-conventions/middleware\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/03-file-conventions/middleware.mdx\",\"children\":[],\"lastModified\":\"2025-10-10\"},{\"title\":\"not-found.js\",\"description\":\"API reference for the not-found.js file.\",\"path\":\"15/app/api-reference/file-conventions/not-found\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/03-file-conventions/not-found.mdx\",\"children\":[],\"lastModified\":\"2025-08-06\"},{\"title\":\"page.js\",\"description\":\"API reference for the page.js file.\",\"path\":\"15/app/api-reference/file-conventions/page\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/03-file-conventions/page.mdx\",\"children\":[],\"lastModified\":\"2025-10-10\"},{\"title\":\"Parallel Routes\",\"description\":\"Simultaneously render one or more pages in the same view that can be navigated independently. A pattern for highly dynamic applications.\",\"path\":\"15/app/api-reference/file-conventions/parallel-routes\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/03-file-conventions/parallel-routes.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"public\",\"description\":\"Next.js allows you to serve static files, like images, in the public directory. You can learn how it works here.\",\"path\":\"15/app/api-reference/file-conventions/public-folder\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/03-file-conventions/public-folder.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"route.js\",\"description\":\"API reference for the route.js special file.\",\"path\":\"15/app/api-reference/file-conventions/route\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/03-file-conventions/route.mdx\",\"children\":[],\"lastModified\":\"2025-10-10\"},{\"title\":\"Route Groups\",\"description\":\"Route Groups can be used to partition your Next.js application into different sections.\",\"path\":\"15/app/api-reference/file-conventions/route-groups\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/03-file-conventions/route-groups.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"Route Segment Config\",\"description\":\"Learn about how to configure options for Next.js route segments.\",\"path\":\"15/app/api-reference/file-conventions/route-segment-config\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/03-file-conventions/route-segment-config.mdx\",\"children\":[],\"lastModified\":\"2025-07-21\"},{\"title\":\"src\",\"description\":\"Save pages under the `src` folder as an alternative to the root `pages` directory.\",\"path\":\"15/app/api-reference/file-conventions/src-folder\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/03-file-conventions/src-folder.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"template.js\",\"description\":\"API Reference for the template.js file.\",\"path\":\"15/app/api-reference/file-conventions/template\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/03-file-conventions/template.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"unauthorized.js\",\"description\":\"API reference for the unauthorized.js special file.\",\"path\":\"15/app/api-reference/file-conventions/unauthorized\",\"version\":\"experimental\",\"source\":\"docs/15/01-app/03-api-reference/03-file-conventions/unauthorized.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"Metadata Files\",\"description\":\"API documentation for the metadata file conventions.\",\"path\":\"15/app/api-reference/file-conventions/metadata\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/03-file-conventions/01-metadata/index.mdx\",\"children\":[{\"title\":\"favicon, icon, and apple-icon\",\"description\":\"API Reference for the Favicon, Icon and Apple Icon file conventions.\",\"path\":\"15/app/api-reference/file-conventions/metadata/app-icons\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/03-file-conventions/01-metadata/app-icons.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"manifest.json\",\"description\":\"API Reference for manifest.json file.\",\"path\":\"15/app/api-reference/file-conventions/metadata/manifest\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/03-file-conventions/01-metadata/manifest.mdx\",\"children\":[],\"lastModified\":\"2025-09-23\"},{\"title\":\"opengraph-image and twitter-image\",\"description\":\"API Reference for the Open Graph Image and Twitter Image file conventions.\",\"path\":\"15/app/api-reference/file-conventions/metadata/opengraph-image\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/03-file-conventions/01-metadata/opengraph-image.mdx\",\"children\":[],\"lastModified\":\"2025-08-20\"},{\"title\":\"robots.txt\",\"description\":\"API Reference for robots.txt file.\",\"path\":\"15/app/api-reference/file-conventions/metadata/robots\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/03-file-conventions/01-metadata/robots.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"sitemap.xml\",\"description\":\"API Reference for the sitemap.xml file.\",\"path\":\"15/app/api-reference/file-conventions/metadata/sitemap\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/03-file-conventions/01-metadata/sitemap.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"}],\"lastModified\":\"2025-06-16\"}],\"lastModified\":\"2025-06-16\"},{\"title\":\"Functions\",\"description\":\"API Reference for Next.js Functions and Hooks.\",\"path\":\"15/app/api-reference/functions\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/04-functions/index.mdx\",\"children\":[{\"title\":\"after\",\"description\":\"API Reference for the after function.\",\"path\":\"15/app/api-reference/functions/after\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/04-functions/after.mdx\",\"children\":[],\"lastModified\":\"2025-09-23\"},{\"title\":\"cacheLife\",\"description\":\"Learn how to use the cacheLife function to set the cache expiration time for a cached function or component.\",\"path\":\"15/app/api-reference/functions/cacheLife\",\"version\":\"canary\",\"source\":\"docs/15/01-app/03-api-reference/04-functions/cacheLife.mdx\",\"children\":[],\"lastModified\":\"2025-07-17\"},{\"title\":\"cacheTag\",\"description\":\"Learn how to use the cacheTag function to manage cache invalidation in your Next.js application.\",\"path\":\"15/app/api-reference/functions/cacheTag\",\"version\":\"canary\",\"source\":\"docs/15/01-app/03-api-reference/04-functions/cacheTag.mdx\",\"children\":[],\"lastModified\":\"2025-07-30\"},{\"title\":\"connection\",\"description\":\"API Reference for the connection function.\",\"path\":\"15/app/api-reference/functions/connection\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/04-functions/connection.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"cookies\",\"description\":\"API Reference for the cookies function.\",\"path\":\"15/app/api-reference/functions/cookies\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/04-functions/cookies.mdx\",\"children\":[],\"lastModified\":\"2025-09-23\"},{\"title\":\"draftMode\",\"description\":\"API Reference for the draftMode function.\",\"path\":\"15/app/api-reference/functions/draft-mode\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/04-functions/draft-mode.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"fetch\",\"description\":\"API reference for the extended fetch function.\",\"path\":\"15/app/api-reference/functions/fetch\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/04-functions/fetch.mdx\",\"children\":[],\"lastModified\":\"2025-09-23\"},{\"title\":\"forbidden\",\"description\":\"API Reference for the forbidden function.\",\"path\":\"15/app/api-reference/functions/forbidden\",\"version\":\"experimental\",\"source\":\"docs/15/01-app/03-api-reference/04-functions/forbidden.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"generateImageMetadata\",\"description\":\"Learn how to generate multiple images in a single Metadata API special file.\",\"path\":\"15/app/api-reference/functions/generate-image-metadata\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/04-functions/generate-image-metadata.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"generateMetadata\",\"description\":\"Learn how to add Metadata to your Next.js application for improved search engine optimization (SEO) and web shareability.\",\"path\":\"15/app/api-reference/functions/generate-metadata\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/04-functions/generate-metadata.mdx\",\"children\":[],\"lastModified\":\"2025-10-10\"},{\"title\":\"generateSitemaps\",\"description\":\"Learn how to use the generateSiteMaps function to create multiple sitemaps for your application.\",\"path\":\"15/app/api-reference/functions/generate-sitemaps\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/04-functions/generate-sitemaps.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"generateStaticParams\",\"description\":\"API reference for the generateStaticParams function.\",\"path\":\"15/app/api-reference/functions/generate-static-params\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/04-functions/generate-static-params.mdx\",\"children\":[],\"lastModified\":\"2025-08-19\"},{\"title\":\"generateViewport\",\"description\":\"API Reference for the generateViewport function.\",\"path\":\"15/app/api-reference/functions/generate-viewport\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/04-functions/generate-viewport.mdx\",\"children\":[],\"lastModified\":\"2025-08-19\"},{\"title\":\"headers\",\"description\":\"API reference for the headers function.\",\"path\":\"15/app/api-reference/functions/headers\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/04-functions/headers.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"ImageResponse\",\"description\":\"API Reference for the ImageResponse constructor.\",\"path\":\"15/app/api-reference/functions/image-response\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/04-functions/image-response.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"NextRequest\",\"description\":\"API Reference for NextRequest.\",\"path\":\"15/app/api-reference/functions/next-request\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/04-functions/next-request.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"NextResponse\",\"description\":\"API Reference for NextResponse.\",\"path\":\"15/app/api-reference/functions/next-response\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/04-functions/next-response.mdx\",\"children\":[],\"lastModified\":\"2025-09-23\"},{\"title\":\"notFound\",\"description\":\"API Reference for the notFound function.\",\"path\":\"15/app/api-reference/functions/not-found\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/04-functions/not-found.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"permanentRedirect\",\"description\":\"API Reference for the permanentRedirect function.\",\"path\":\"15/app/api-reference/functions/permanentRedirect\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/04-functions/permanentRedirect.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"redirect\",\"description\":\"API Reference for the redirect function.\",\"path\":\"15/app/api-reference/functions/redirect\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/04-functions/redirect.mdx\",\"children\":[],\"lastModified\":\"2025-08-01\"},{\"title\":\"revalidatePath\",\"description\":\"API Reference for the revalidatePath function.\",\"path\":\"15/app/api-reference/functions/revalidatePath\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/04-functions/revalidatePath.mdx\",\"children\":[],\"lastModified\":\"2025-09-23\"},{\"title\":\"revalidateTag\",\"description\":\"API Reference for the revalidateTag function.\",\"path\":\"15/app/api-reference/functions/revalidateTag\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/04-functions/revalidateTag.mdx\",\"children\":[],\"lastModified\":\"2025-08-08\"},{\"title\":\"unauthorized\",\"description\":\"API Reference for the unauthorized function.\",\"path\":\"15/app/api-reference/functions/unauthorized\",\"version\":\"experimental\",\"source\":\"docs/15/01-app/03-api-reference/04-functions/unauthorized.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"unstable_cache\",\"description\":\"API Reference for the unstable_cache function.\",\"path\":\"15/app/api-reference/functions/unstable_cache\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/04-functions/unstable_cache.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"unstable_noStore\",\"description\":\"API Reference for the unstable_noStore function.\",\"path\":\"15/app/api-reference/functions/unstable_noStore\",\"version\":\"legacy\",\"source\":\"docs/15/01-app/03-api-reference/04-functions/unstable_noStore.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"unstable_rethrow\",\"description\":\"API Reference for the unstable_rethrow function.\",\"path\":\"15/app/api-reference/functions/unstable_rethrow\",\"version\":\"unstable\",\"source\":\"docs/15/01-app/03-api-reference/04-functions/unstable_rethrow.mdx\",\"children\":[],\"lastModified\":\"2025-07-01\"},{\"title\":\"useLinkStatus\",\"description\":\"API Reference for the useLinkStatus hook.\",\"path\":\"15/app/api-reference/functions/use-link-status\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/04-functions/use-link-status.mdx\",\"children\":[],\"lastModified\":\"2025-08-14\"},{\"title\":\"useParams\",\"description\":\"API Reference for the useParams hook.\",\"path\":\"15/app/api-reference/functions/use-params\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/04-functions/use-params.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"usePathname\",\"description\":\"API Reference for the usePathname hook.\",\"path\":\"15/app/api-reference/functions/use-pathname\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/04-functions/use-pathname.mdx\",\"children\":[],\"lastModified\":\"2025-09-23\"},{\"title\":\"useReportWebVitals\",\"description\":\"API Reference for the useReportWebVitals function.\",\"path\":\"15/app/api-reference/functions/use-report-web-vitals\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/04-functions/use-report-web-vitals.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"useRouter\",\"description\":\"API reference for the useRouter hook.\",\"path\":\"15/app/api-reference/functions/use-router\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/04-functions/use-router.mdx\",\"children\":[],\"lastModified\":\"2025-07-14\"},{\"title\":\"useSearchParams\",\"description\":\"API Reference for the useSearchParams hook.\",\"path\":\"15/app/api-reference/functions/use-search-params\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/04-functions/use-search-params.mdx\",\"children\":[],\"lastModified\":\"2025-07-03\"},{\"title\":\"useSelectedLayoutSegment\",\"description\":\"API Reference for the useSelectedLayoutSegment hook.\",\"path\":\"15/app/api-reference/functions/use-selected-layout-segment\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/04-functions/use-selected-layout-segment.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"useSelectedLayoutSegments\",\"description\":\"API Reference for the useSelectedLayoutSegments hook.\",\"path\":\"15/app/api-reference/functions/use-selected-layout-segments\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/04-functions/use-selected-layout-segments.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"userAgent\",\"description\":\"The userAgent helper extends the Web Request API with additional properties and methods to interact with the user agent object from the request.\",\"path\":\"15/app/api-reference/functions/userAgent\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/04-functions/userAgent.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"}],\"lastModified\":\"2025-06-16\"},{\"title\":\"Configuration\",\"description\":\"Learn how to configure Next.js applications.\",\"path\":\"15/app/api-reference/config\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/index.mdx\",\"children\":[{\"title\":\"next.config.js\",\"description\":\"Learn how to configure your application with next.config.js.\",\"path\":\"15/app/api-reference/config/next-config-js\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/index.mdx\",\"children\":[{\"title\":\"allowedDevOrigins\",\"description\":\"Use `allowedDevOrigins` to configure additional origins that can request the dev server.\",\"path\":\"15/app/api-reference/config/next-config-js/allowedDevOrigins\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/allowedDevOrigins.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"appDir\",\"description\":\"Enable the App Router to use layouts, streaming, and more.\",\"path\":\"15/app/api-reference/config/next-config-js/appDir\",\"version\":\"legacy\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/appDir.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"assetPrefix\",\"description\":\"Learn how to use the assetPrefix config option to configure your CDN.\",\"path\":\"15/app/api-reference/config/next-config-js/assetPrefix\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/assetPrefix.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"authInterrupts\",\"description\":\"Learn how to enable the experimental `authInterrupts` configuration option to use `forbidden` and `unauthorized`.\",\"path\":\"15/app/api-reference/config/next-config-js/authInterrupts\",\"version\":\"canary\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/authInterrupts.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"basePath\",\"description\":\"Use `basePath` to deploy a Next.js application under a sub-path of a domain.\",\"path\":\"15/app/api-reference/config/next-config-js/basePath\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/basePath.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"browserDebugInfoInTerminal\",\"description\":\"Forward browser console logs and errors to your terminal during development.\",\"path\":\"15/app/api-reference/config/next-config-js/browserDebugInfoInTerminal\",\"version\":\"experimental\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/browserDebugInfoInTerminal.mdx\",\"children\":[],\"lastModified\":\"2025-08-11\"},{\"title\":\"cacheComponents\",\"description\":\"Learn how to enable the cacheComponents flag in Next.js.\",\"path\":\"15/app/api-reference/config/next-config-js/cacheComponents\",\"version\":\"canary\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/cacheComponents.mdx\",\"children\":[],\"lastModified\":\"2025-07-17\"},{\"title\":\"cacheLife\",\"description\":\"Learn how to set up cacheLife configurations in Next.js.\",\"path\":\"15/app/api-reference/config/next-config-js/cacheLife\",\"version\":\"canary\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/cacheLife.mdx\",\"children\":[],\"lastModified\":\"2025-07-17\"},{\"title\":\"compress\",\"description\":\"Next.js provides gzip compression to compress rendered content and static files, it only works with the server target. Learn more about it here.\",\"path\":\"15/app/api-reference/config/next-config-js/compress\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/compress.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"crossOrigin\",\"description\":\"Use the `crossOrigin` option to add a crossOrigin tag on the `script` tags generated by `next/script`.\",\"path\":\"15/app/api-reference/config/next-config-js/crossOrigin\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/crossOrigin.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"cssChunking\",\"description\":\"Use the `cssChunking` option to control how CSS files are chunked in your Next.js application.\",\"path\":\"15/app/api-reference/config/next-config-js/cssChunking\",\"version\":\"experimental\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/cssChunking.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"devIndicators\",\"description\":\"Configuration options for the on-screen indicator that gives context about the current route you're viewing during development.\",\"path\":\"15/app/api-reference/config/next-config-js/devIndicators\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/devIndicators.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"distDir\",\"description\":\"Set a custom build directory to use instead of the default .next directory.\",\"path\":\"15/app/api-reference/config/next-config-js/distDir\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/distDir.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"env\",\"description\":\"Learn to add and access environment variables in your Next.js application at build time.\",\"path\":\"15/app/api-reference/config/next-config-js/env\",\"version\":\"legacy\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/env.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"eslint\",\"description\":\"Next.js reports ESLint errors and warnings during builds by default. Learn how to opt-out of this behavior here.\",\"path\":\"15/app/api-reference/config/next-config-js/eslint\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/eslint.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"expireTime\",\"description\":\"Customize stale-while-revalidate expire time for ISR enabled pages.\",\"path\":\"15/app/api-reference/config/next-config-js/expireTime\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/expireTime.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"exportPathMap\",\"description\":\"Customize the pages that will be exported as HTML files when using `next export`.\",\"path\":\"15/app/api-reference/config/next-config-js/exportPathMap\",\"version\":\"legacy\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/exportPathMap.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"generateBuildId\",\"description\":\"Configure the build id, which is used to identify the current build in which your application is being served.\",\"path\":\"15/app/api-reference/config/next-config-js/generateBuildId\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/generateBuildId.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"generateEtags\",\"description\":\"Next.js will generate etags for every page by default. Learn more about how to disable etag generation here.\",\"path\":\"15/app/api-reference/config/next-config-js/generateEtags\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/generateEtags.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"headers\",\"description\":\"Add custom HTTP headers to your Next.js app.\",\"path\":\"15/app/api-reference/config/next-config-js/headers\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/headers.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"htmlLimitedBots\",\"description\":\"Specify a list of user agents that should receive blocking metadata.\",\"path\":\"15/app/api-reference/config/next-config-js/htmlLimitedBots\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/htmlLimitedBots.mdx\",\"children\":[],\"lastModified\":\"2025-10-10\"},{\"title\":\"httpAgentOptions\",\"description\":\"Next.js will automatically use HTTP Keep-Alive by default. Learn more about how to disable HTTP Keep-Alive here.\",\"path\":\"15/app/api-reference/config/next-config-js/httpAgentOptions\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/httpAgentOptions.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"images\",\"description\":\"Custom configuration for the next/image loader\",\"path\":\"15/app/api-reference/config/next-config-js/images\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/images.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"cacheHandler\",\"description\":\"Configure the Next.js cache used for storing and revalidating data to use any external service like Redis, Memcached, or others.\",\"path\":\"15/app/api-reference/config/next-config-js/incrementalCacheHandlerPath\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/incrementalCacheHandlerPath.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"inlineCss\",\"description\":\"Enable inline CSS support.\",\"path\":\"15/app/api-reference/config/next-config-js/inlineCss\",\"version\":\"experimental\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/inlineCss.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"logging\",\"description\":\"Configure how data fetches are logged to the console when running Next.js in development mode.\",\"path\":\"15/app/api-reference/config/next-config-js/logging\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/logging.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"mdxRs\",\"description\":\"Use the new Rust compiler to compile MDX files in the App Router.\",\"path\":\"15/app/api-reference/config/next-config-js/mdxRs\",\"version\":\"experimental.\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/mdxRs.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"experimental.middlewareClientMaxBodySize\",\"description\":\"Configure the maximum request body size when using middleware.\",\"path\":\"15/app/api-reference/config/next-config-js/middlewareClientMaxBodySize\",\"version\":\"experimental\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/middlewareClientMaxBodySize.mdx\",\"children\":[],\"lastModified\":\"2025-10-09\"},{\"title\":\"onDemandEntries\",\"description\":\"Configure how Next.js will dispose and keep in memory pages created in development.\",\"path\":\"15/app/api-reference/config/next-config-js/onDemandEntries\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/onDemandEntries.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"optimizePackageImports\",\"description\":\"API Reference for optimizePackageImports Next.js Config Option\",\"path\":\"15/app/api-reference/config/next-config-js/optimizePackageImports\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/optimizePackageImports.mdx\",\"children\":[],\"lastModified\":\"2025-07-03\"},{\"title\":\"output\",\"description\":\"Next.js automatically traces which files are needed by each page to allow for easy deployment of your application. Learn how it works here.\",\"path\":\"15/app/api-reference/config/next-config-js/output\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/output.mdx\",\"children\":[],\"lastModified\":\"2025-09-23\"},{\"title\":\"pageExtensions\",\"description\":\"Extend the default page extensions used by Next.js when resolving pages in the Pages Router.\",\"path\":\"15/app/api-reference/config/next-config-js/pageExtensions\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/pageExtensions.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"poweredByHeader\",\"description\":\"Next.js will add the `x-powered-by` header by default. Learn to opt-out of it here.\",\"path\":\"15/app/api-reference/config/next-config-js/poweredByHeader\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/poweredByHeader.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"ppr\",\"description\":\"Learn how to enable Partial Prerendering in Next.js.\",\"path\":\"15/app/api-reference/config/next-config-js/ppr\",\"version\":\"canary\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/ppr.mdx\",\"children\":[],\"lastModified\":\"2025-07-10\"},{\"title\":\"productionBrowserSourceMaps\",\"description\":\"Enables browser source map generation during the production build.\",\"path\":\"15/app/api-reference/config/next-config-js/productionBrowserSourceMaps\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/productionBrowserSourceMaps.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"reactCompiler\",\"description\":\"Enable the React Compiler to automatically optimize component rendering.\",\"path\":\"15/app/api-reference/config/next-config-js/reactCompiler\",\"version\":\"experimental\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/reactCompiler.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"reactMaxHeadersLength\",\"description\":\"The maximum length of the headers that are emitted by React and added to the response.\",\"path\":\"15/app/api-reference/config/next-config-js/reactMaxHeadersLength\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/reactMaxHeadersLength.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"reactStrictMode\",\"description\":\"The complete Next.js runtime is now Strict Mode-compliant, learn how to opt-in\",\"path\":\"15/app/api-reference/config/next-config-js/reactStrictMode\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/reactStrictMode.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"redirects\",\"description\":\"Add redirects to your Next.js app.\",\"path\":\"15/app/api-reference/config/next-config-js/redirects\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/redirects.mdx\",\"children\":[],\"lastModified\":\"2025-07-16\"},{\"title\":\"rewrites\",\"description\":\"Add rewrites to your Next.js app.\",\"path\":\"15/app/api-reference/config/next-config-js/rewrites\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/rewrites.mdx\",\"children\":[],\"lastModified\":\"2025-10-10\"},{\"title\":\"sassOptions\",\"description\":\"Configure Sass options.\",\"path\":\"15/app/api-reference/config/next-config-js/sassOptions\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/sassOptions.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"serverActions\",\"description\":\"Configure Server Actions behavior in your Next.js application.\",\"path\":\"15/app/api-reference/config/next-config-js/serverActions\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/serverActions.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"serverComponentsHmrCache\",\"description\":\"Configure whether fetch responses in Server Components are cached across HMR refresh requests.\",\"path\":\"15/app/api-reference/config/next-config-js/serverComponentsHmrCache\",\"version\":\"experimental\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/serverComponentsHmrCache.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"serverExternalPackages\",\"description\":\"Opt-out specific dependencies from the Server Components bundling and use native Node.js `require`.\",\"path\":\"15/app/api-reference/config/next-config-js/serverExternalPackages\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/serverExternalPackages.mdx\",\"children\":[],\"lastModified\":\"2025-07-09\"},{\"title\":\"staleTimes\",\"description\":\"Learn how to override the invalidation time of the Client Router Cache.\",\"path\":\"15/app/api-reference/config/next-config-js/staleTimes\",\"version\":\"experimental\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/staleTimes.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"staticGeneration*\",\"description\":\"Learn how to configure static generation in your Next.js application.\",\"path\":\"15/app/api-reference/config/next-config-js/staticGeneration\",\"version\":\"experimental\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/staticGeneration.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"taint\",\"description\":\"Enable tainting Objects and Values.\",\"path\":\"15/app/api-reference/config/next-config-js/taint\",\"version\":\"experimental\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/taint.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"trailingSlash\",\"description\":\"Configure Next.js pages to resolve with or without a trailing slash.\",\"path\":\"15/app/api-reference/config/next-config-js/trailingSlash\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/trailingSlash.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"transpilePackages\",\"description\":\"Automatically transpile and bundle dependencies from local packages (like monorepos) or from external dependencies (`node_modules`).\",\"path\":\"15/app/api-reference/config/next-config-js/transpilePackages\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/transpilePackages.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"turbopack\",\"description\":\"Configure Next.js with Turbopack-specific options\",\"path\":\"15/app/api-reference/config/next-config-js/turbopack\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/turbopack.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"turbopackPersistentCaching\",\"description\":\"Learn how to enable Persistent Caching for Turbopack builds\",\"path\":\"15/app/api-reference/config/next-config-js/turbopackPersistentCaching\",\"version\":\"canary\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/turbopackPersistentCaching.mdx\",\"children\":[],\"lastModified\":\"2025-08-18\"},{\"title\":\"typedRoutes\",\"description\":\"Enable support for statically typed links.\",\"path\":\"15/app/api-reference/config/next-config-js/typedRoutes\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/typedRoutes.mdx\",\"children\":[],\"lastModified\":\"2025-08-19\"},{\"title\":\"typescript\",\"description\":\"Next.js reports TypeScript errors by default. Learn to opt-out of this behavior here.\",\"path\":\"15/app/api-reference/config/next-config-js/typescript\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/typescript.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"urlImports\",\"description\":\"Configure Next.js to allow importing modules from external URLs.\",\"path\":\"15/app/api-reference/config/next-config-js/urlImports\",\"version\":\"experimental\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/urlImports.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"useCache\",\"description\":\"Learn how to enable the useCache flag in Next.js.\",\"path\":\"15/app/api-reference/config/next-config-js/useCache\",\"version\":\"canary\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/useCache.mdx\",\"children\":[],\"lastModified\":\"2025-07-17\"},{\"title\":\"useLightningcss\",\"description\":\"Enable experimental support for Lightning CSS.\",\"path\":\"15/app/api-reference/config/next-config-js/useLightningcss\",\"version\":\"experimental\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/useLightningcss.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"viewTransition\",\"description\":\"Enable ViewTransition API from React in App Router\",\"path\":\"15/app/api-reference/config/next-config-js/viewTransition\",\"version\":\"experimental\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/viewTransition.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"webpack\",\"description\":\"Learn how to customize the webpack config used by Next.js\",\"path\":\"15/app/api-reference/config/next-config-js/webpack\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/webpack.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"webVitalsAttribution\",\"description\":\"Learn how to use the webVitalsAttribution option to pinpoint the source of Web Vitals issues.\",\"path\":\"15/app/api-reference/config/next-config-js/webVitalsAttribution\",\"version\":\"experimental\",\"source\":\"docs/15/01-app/03-api-reference/05-config/01-next-config-js/webVitalsAttribution.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"}],\"lastModified\":\"2025-06-16\"},{\"title\":\"TypeScript\",\"description\":\"Next.js provides a TypeScript-first development experience for building your React application.\",\"path\":\"15/app/api-reference/config/typescript\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/02-typescript.mdx\",\"children\":[],\"lastModified\":\"2025-09-23\"},{\"title\":\"ESLint\",\"description\":\"Learn how to use and configure the ESLint plugin to catch common issues and problems in a Next.js application.\",\"path\":\"15/app/api-reference/config/eslint\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/05-config/03-eslint.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"}],\"lastModified\":\"2025-06-16\"},{\"title\":\"CLI\",\"description\":\"API Reference for the Next.js Command Line Interface (CLI) tools.\",\"path\":\"15/app/api-reference/cli\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/06-cli/index.mdx\",\"children\":[{\"title\":\"create-next-app\",\"description\":\"Create Next.js apps using one command with the create-next-app CLI.\",\"path\":\"15/app/api-reference/cli/create-next-app\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/06-cli/create-next-app.mdx\",\"children\":[],\"lastModified\":\"2025-08-19\"},{\"title\":\"next CLI\",\"description\":\"Learn how to run and build your application with the Next.js CLI.\",\"path\":\"15/app/api-reference/cli/next\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/06-cli/next.mdx\",\"children\":[],\"lastModified\":\"2025-09-23\"}],\"lastModified\":\"2025-06-16\"},{\"title\":\"Edge Runtime\",\"description\":\"API Reference for the Edge Runtime.\",\"path\":\"15/app/api-reference/edge\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/07-edge.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"Turbopack\",\"description\":\"Turbopack is an incremental bundler optimized for JavaScript and TypeScript, written in Rust, and built into Next.js.\",\"path\":\"15/app/api-reference/turbopack\",\"version\":\"$undefined\",\"source\":\"docs/15/01-app/03-api-reference/08-turbopack.mdx\",\"children\":[],\"lastModified\":\"2025-09-23\"}],\"lastModified\":\"2025-06-16\"},{\"title\":\"Getting Started\",\"description\":\"Learn how to create full-stack web applications with Next.js with the Pages Router.\",\"path\":\"15/pages/getting-started\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/01-getting-started/index.mdx\",\"children\":[{\"title\":\"Installation\",\"description\":\"How to create a new Next.js application with `create-next-app`. Set up TypeScript, ESLint,and configure your `next.config.js` file.\",\"path\":\"15/pages/getting-started/installation\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/01-getting-started/01-installation.mdx\",\"children\":[],\"lastModified\":\"2024-11-06\"},{\"title\":\"Project Structure\",\"description\":\"Learn about the folder and file conventions in a Next.js project, and how to organize your project.\",\"path\":\"15/pages/getting-started/project-structure\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/01-getting-started/02-project-structure.mdx\",\"children\":[],\"lastModified\":\"2024-11-07\"},{\"title\":\"Images\",\"description\":\"Optimize your images with the built-in `next/image` component.\",\"path\":\"15/pages/getting-started/images\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/01-getting-started/04-images.mdx\",\"children\":[],\"lastModified\":\"2025-05-08\"},{\"title\":\"Fonts\",\"description\":\"Learn how to use fonts in Next.js\",\"path\":\"15/pages/getting-started/fonts\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/01-getting-started/05-fonts.mdx\",\"children\":[],\"lastModified\":\"2025-05-08\"},{\"title\":\"CSS\",\"description\":\"Learn about the different ways to add CSS to your application, including CSS Modules, Global CSS, Tailwind CSS, and more.\",\"path\":\"15/pages/getting-started/css\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/01-getting-started/06-css.mdx\",\"children\":[],\"lastModified\":\"2025-08-06\"},{\"title\":\"Deploying\",\"description\":\"Learn how to deploy your Next.js application.\",\"path\":\"15/pages/getting-started/deploying\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/01-getting-started/11-deploying.mdx\",\"children\":[],\"lastModified\":\"2025-04-22\"}],\"lastModified\":\"2024-11-07\"},{\"title\":\"Guides\",\"description\":\"Learn how to implement common UI patterns and use cases using Next.js\",\"path\":\"15/pages/guides\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/index.mdx\",\"children\":[{\"title\":\"AMP\",\"description\":\"With minimal config, and without leaving React, you can start adding AMP and improve the performance and speed of your pages.\",\"path\":\"15/pages/guides/amp\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/amp.mdx\",\"children\":[],\"lastModified\":\"2025-08-19\"},{\"title\":\"Analytics\",\"description\":\"Measure and track page performance using Next.js\",\"path\":\"15/pages/guides/analytics\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/analytics.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"Authentication\",\"description\":\"Learn how to implement authentication in Next.js, covering best practices, securing routes, authorization techniques, and session management.\",\"path\":\"15/pages/guides/authentication\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/authentication.mdx\",\"children\":[],\"lastModified\":\"2025-04-22\"},{\"title\":\"Babel\",\"description\":\"Extend the babel preset added by Next.js with your own configs.\",\"path\":\"15/pages/guides/babel\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/babel.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"CI Build Caching\",\"description\":\"Learn how to configure CI to cache Next.js builds\",\"path\":\"15/pages/guides/ci-build-caching\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/ci-build-caching.mdx\",\"children\":[],\"lastModified\":\"2025-04-22\"},{\"title\":\"Content Security Policy\",\"description\":\"Learn how to set a Content Security Policy (CSP) for your Next.js application.\",\"path\":\"15/pages/guides/content-security-policy\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/content-security-policy.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"CSS-in-JS\",\"description\":\"Use CSS-in-JS libraries with Next.js\",\"path\":\"15/pages/guides/css-in-js\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/css-in-js.mdx\",\"children\":[],\"lastModified\":\"2025-04-25\"},{\"title\":\"Custom Server\",\"description\":\"Start a Next.js app programmatically using a custom server.\",\"path\":\"15/pages/guides/custom-server\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/custom-server.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"Debugging\",\"description\":\"Learn how to debug your Next.js application with VS Code or Chrome DevTools.\",\"path\":\"15/pages/guides/debugging\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/debugging.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"Draft Mode\",\"description\":\"Next.js has draft mode to toggle between static and dynamic pages. You can learn how it works with Pages Router.\",\"path\":\"15/pages/guides/draft-mode\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/draft-mode.mdx\",\"children\":[],\"lastModified\":\"2025-05-21\"},{\"title\":\"Environment Variables\",\"description\":\"Learn to add and access environment variables in your Next.js application.\",\"path\":\"15/pages/guides/environment-variables\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/environment-variables.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"Forms\",\"description\":\"Learn how to handle form submissions and data mutations with Next.js.\",\"path\":\"15/pages/guides/forms\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/forms.mdx\",\"children\":[],\"lastModified\":\"2025-07-30\"},{\"title\":\"ISR\",\"description\":\"Learn how to create or update static pages at runtime with Incremental Static Regeneration.\",\"path\":\"15/pages/guides/incremental-static-regeneration\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/incremental-static-regeneration.mdx\",\"children\":[],\"lastModified\":\"2025-05-21\"},{\"title\":\"Instrumentation\",\"description\":\"Learn how to use instrumentation to run code at server startup in your Next.js app\",\"path\":\"15/pages/guides/instrumentation\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/instrumentation.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"Internationalization\",\"description\":\"Next.js has built-in support for internationalized routing and language detection. Learn more here.\",\"path\":\"15/pages/guides/internationalization\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/internationalization.mdx\",\"children\":[],\"lastModified\":\"2025-09-23\"},{\"title\":\"Lazy Loading\",\"description\":\"Lazy load imported libraries and React Components to improve your application's overall loading performance.\",\"path\":\"15/pages/guides/lazy-loading\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/lazy-loading.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"MDX\",\"description\":\"Learn how to configure MDX to write JSX in your markdown files.\",\"path\":\"15/pages/guides/mdx\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/mdx.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"Migrating\",\"description\":\"Learn how to migrate from popular frameworks to Next.js\",\"path\":\"15/pages/guides/migrating\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/migrating/index.mdx\",\"children\":[{\"title\":\"App Router\",\"description\":\"Learn how to upgrade your existing Next.js application from the Pages Router to the App Router.\",\"path\":\"15/pages/guides/migrating/app-router-migration\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/migrating/app-router-migration.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Create React App\",\"description\":\"Learn how to migrate your existing React application from Create React App to Next.js.\",\"path\":\"15/pages/guides/migrating/from-create-react-app\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/migrating/from-create-react-app.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Vite\",\"description\":\"Learn how to migrate your existing React application from Vite to Next.js.\",\"path\":\"15/pages/guides/migrating/from-vite\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/migrating/from-vite.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"}],\"lastModified\":\"2025-04-15\"},{\"title\":\"Multi-Zones\",\"description\":\"Learn how to build micro-frontends using Next.js Multi-Zones to deploy multiple Next.js apps under a single domain.\",\"path\":\"15/pages/guides/multi-zones\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/multi-zones.mdx\",\"children\":[],\"lastModified\":\"2025-04-16\"},{\"title\":\"OpenTelemetry\",\"description\":\"Learn how to instrument your Next.js app with OpenTelemetry.\",\"path\":\"15/pages/guides/open-telemetry\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/open-telemetry.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"Package Bundling\",\"description\":\"Learn how to optimize your application's server and client bundles.\",\"path\":\"15/pages/guides/package-bundling\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/package-bundling.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"PostCSS\",\"description\":\"Extend the PostCSS config and plugins added by Next.js with your own.\",\"path\":\"15/pages/guides/post-css\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/post-css.mdx\",\"children\":[],\"lastModified\":\"2025-05-12\"},{\"title\":\"Preview Mode\",\"description\":\"Next.js has the preview mode for statically generated pages. You can learn how it works here.\",\"path\":\"15/pages/guides/preview-mode\",\"version\":\"legacy\",\"source\":\"docs/15/02-pages/02-guides/preview-mode.mdx\",\"children\":[],\"lastModified\":\"2025-05-21\"},{\"title\":\"Production\",\"description\":\"Recommendations to ensure the best performance and user experience before taking your Next.js application to production.\",\"path\":\"15/pages/guides/production-checklist\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/production-checklist.mdx\",\"children\":[],\"lastModified\":\"2025-04-17\"},{\"title\":\"Redirecting\",\"description\":\"Learn the different ways to handle redirects in Next.js.\",\"path\":\"15/pages/guides/redirecting\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/redirecting.mdx\",\"children\":[],\"lastModified\":\"2025-05-27\"},{\"title\":\"Sass\",\"description\":\"Learn how to use Sass in your Next.js application.\",\"path\":\"15/pages/guides/sass\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/sass.mdx\",\"children\":[],\"lastModified\":\"2025-04-25\"},{\"title\":\"Scripts\",\"description\":\"Optimize 3rd party scripts with the built-in Script component.\",\"path\":\"15/pages/guides/scripts\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/scripts.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"Self-Hosting\",\"description\":\"Learn how to self-host your Next.js application on a Node.js server, Docker image, or static HTML files (static exports).\",\"path\":\"15/pages/guides/self-hosting\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/self-hosting.mdx\",\"children\":[],\"lastModified\":\"2025-04-22\"},{\"title\":\"Static Exports\",\"description\":\"Next.js enables starting as a static site or Single-Page Application (SPA), then later optionally upgrading to use features that require a server.\",\"path\":\"15/pages/guides/static-exports\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/static-exports.mdx\",\"children\":[],\"lastModified\":\"2025-05-12\"},{\"title\":\"Tailwind CSS\",\"description\":\"Style your Next.js Application using Tailwind CSS.\",\"path\":\"15/pages/guides/tailwind-v3-css\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/tailwind-v3-css.mdx\",\"children\":[],\"lastModified\":\"2025-08-06\"},{\"title\":\"Testing\",\"description\":\"Learn how to set up Next.js with three commonly used testing tools — Cypress, Playwright, Vitest, and Jest.\",\"path\":\"15/pages/guides/testing\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/testing/index.mdx\",\"children\":[{\"title\":\"Cypress\",\"description\":\"Learn how to set up Next.js with Cypress for End-to-End (E2E) and Component Testing.\",\"path\":\"15/pages/guides/testing/cypress\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/testing/cypress.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"Jest\",\"description\":\"Learn how to set up Next.js with Jest for Unit Testing.\",\"path\":\"15/pages/guides/testing/jest\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/testing/jest.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"Playwright\",\"description\":\"Learn how to set up Next.js with Playwright for End-to-End (E2E) and Integration testing.\",\"path\":\"15/pages/guides/testing/playwright\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/testing/playwright.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"Vitest\",\"description\":\"Learn how to set up Next.js with Vitest and React Testing Library - two popular unit testing libraries.\",\"path\":\"15/pages/guides/testing/vitest\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/testing/vitest.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"}],\"lastModified\":\"2025-04-24\"},{\"title\":\"Third Party Libraries\",\"description\":\"Optimize the performance of third-party libraries in your application with the `@next/third-parties` package.\",\"path\":\"15/pages/guides/third-party-libraries\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/third-party-libraries.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"Upgrading\",\"description\":\"Learn how to upgrade to the latest versions of Next.js.\",\"path\":\"15/pages/guides/upgrading\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/upgrading/index.mdx\",\"children\":[{\"title\":\"Codemods\",\"description\":\"Use codemods to upgrade your Next.js codebase when new features are released.\",\"path\":\"15/pages/guides/upgrading/codemods\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/upgrading/codemods.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Version 10\",\"description\":\"Upgrade your Next.js Application from Version 9 to Version 10.\",\"path\":\"15/pages/guides/upgrading/version-10\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/upgrading/version-10.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Version 11\",\"description\":\"Upgrade your Next.js Application from Version 10 to Version 11.\",\"path\":\"15/pages/guides/upgrading/version-11\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/upgrading/version-11.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Version 12\",\"description\":\"Upgrade your Next.js Application from Version 11 to Version 12.\",\"path\":\"15/pages/guides/upgrading/version-12\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/upgrading/version-12.mdx\",\"children\":[],\"lastModified\":\"2025-05-08\"},{\"title\":\"Version 13\",\"description\":\"Upgrade your Next.js Application from Version 12 to 13.\",\"path\":\"15/pages/guides/upgrading/version-13\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/upgrading/version-13.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"Version 14\",\"description\":\"Upgrade your Next.js Application from Version 13 to 14.\",\"path\":\"15/pages/guides/upgrading/version-14\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/upgrading/version-14.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Version 9\",\"description\":\"Upgrade your Next.js Application from Version 8 to Version 9.\",\"path\":\"15/pages/guides/upgrading/version-9\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/02-guides/upgrading/version-9.mdx\",\"children\":[],\"lastModified\":\"2025-04-25\"}],\"lastModified\":\"2025-04-15\"}],\"lastModified\":\"2025-04-15\"},{\"title\":\"Building Your Application\",\"description\":\"Learn how to use Next.js features to build your application.\",\"path\":\"15/pages/building-your-application\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/03-building-your-application/index.mdx\",\"children\":[{\"title\":\"Routing\",\"description\":\"Learn the fundamentals of routing for front-end applications with the Pages Router.\",\"path\":\"15/pages/building-your-application/routing\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/03-building-your-application/01-routing/index.mdx\",\"children\":[{\"title\":\"Pages and Layouts\",\"description\":\"Create your first page and shared layout with the Pages Router.\",\"path\":\"15/pages/building-your-application/routing/pages-and-layouts\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/03-building-your-application/01-routing/01-pages-and-layouts.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Dynamic Routes\",\"description\":\"Dynamic Routes are pages that allow you to add custom params to your URLs. Start creating Dynamic Routes and learn more here.\",\"path\":\"15/pages/building-your-application/routing/dynamic-routes\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/03-building-your-application/01-routing/02-dynamic-routes.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Linking and Navigating\",\"description\":\"Learn how navigation works in Next.js, and how to use the Link Component and `useRouter` hook.\",\"path\":\"15/pages/building-your-application/routing/linking-and-navigating\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/03-building-your-application/01-routing/03-linking-and-navigating.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Custom App\",\"description\":\"Control page initialization and add a layout that persists for all pages by overriding the default App component used by Next.js.\",\"path\":\"15/pages/building-your-application/routing/custom-app\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/03-building-your-application/01-routing/05-custom-app.mdx\",\"children\":[],\"lastModified\":\"2025-05-27\"},{\"title\":\"Custom Document\",\"description\":\"Extend the default document markup added by Next.js.\",\"path\":\"15/pages/building-your-application/routing/custom-document\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/03-building-your-application/01-routing/06-custom-document.mdx\",\"children\":[],\"lastModified\":\"2025-05-27\"},{\"title\":\"API Routes\",\"description\":\"Next.js supports API Routes, which allow you to build your API without leaving your Next.js app. Learn how it works here.\",\"path\":\"15/pages/building-your-application/routing/api-routes\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/03-building-your-application/01-routing/07-api-routes.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"Custom Errors\",\"description\":\"Override and extend the built-in Error page to handle custom errors.\",\"path\":\"15/pages/building-your-application/routing/custom-error\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/03-building-your-application/01-routing/08-custom-error.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"}],\"lastModified\":\"2025-04-15\"},{\"title\":\"Rendering\",\"description\":\"Learn the fundamentals of rendering in React and Next.js.\",\"path\":\"15/pages/building-your-application/rendering\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/03-building-your-application/02-rendering/index.mdx\",\"children\":[{\"title\":\"Server-side Rendering (SSR)\",\"description\":\"Use Server-side Rendering to render pages on each request.\",\"path\":\"15/pages/building-your-application/rendering/server-side-rendering\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/03-building-your-application/02-rendering/01-server-side-rendering.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Static Site Generation (SSG)\",\"description\":\"Use Static Site Generation (SSG) to pre-render pages at build time.\",\"path\":\"15/pages/building-your-application/rendering/static-site-generation\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/03-building-your-application/02-rendering/02-static-site-generation.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Automatic Static Optimization\",\"description\":\"Next.js automatically optimizes your app to be static HTML whenever possible. Learn how it works here.\",\"path\":\"15/pages/building-your-application/rendering/automatic-static-optimization\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/03-building-your-application/02-rendering/04-automatic-static-optimization.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Client-side Rendering (CSR)\",\"description\":\"Learn how to implement client-side rendering in the Pages Router.\",\"path\":\"15/pages/building-your-application/rendering/client-side-rendering\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/03-building-your-application/02-rendering/05-client-side-rendering.mdx\",\"children\":[],\"lastModified\":\"2025-06-06\"}],\"lastModified\":\"2025-04-15\"},{\"title\":\"Data Fetching\",\"description\":\"Next.js allows you to fetch data in multiple ways, with pre-rendering, server-side rendering or static-site generation, and incremental static regeneration. Learn how to manage your application data in Next.js.\",\"path\":\"15/pages/building-your-application/data-fetching\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/03-building-your-application/03-data-fetching/index.mdx\",\"children\":[{\"title\":\"getStaticProps\",\"description\":\"Fetch data and generate static pages with `getStaticProps`. Learn more about this API for data fetching in Next.js.\",\"path\":\"15/pages/building-your-application/data-fetching/get-static-props\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/03-building-your-application/03-data-fetching/01-get-static-props.mdx\",\"children\":[],\"lastModified\":\"2025-06-10\"},{\"title\":\"getStaticPaths\",\"description\":\"Fetch data and generate static pages with `getStaticPaths`. Learn more about this API for data fetching in Next.js.\",\"path\":\"15/pages/building-your-application/data-fetching/get-static-paths\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/03-building-your-application/03-data-fetching/02-get-static-paths.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Forms and Mutations\",\"description\":\"Learn how to handle form submissions and data mutations with Next.js.\",\"path\":\"15/pages/building-your-application/data-fetching/forms-and-mutations\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/03-building-your-application/03-data-fetching/03-forms-and-mutations.mdx\",\"children\":[],\"lastModified\":\"2025-06-10\"},{\"title\":\"getServerSideProps\",\"description\":\"Fetch data on each request with `getServerSideProps`.\",\"path\":\"15/pages/building-your-application/data-fetching/get-server-side-props\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/03-building-your-application/03-data-fetching/03-get-server-side-props.mdx\",\"children\":[],\"lastModified\":\"2025-05-21\"},{\"title\":\"Client-side Fetching\",\"description\":\"Learn about client-side data fetching, and how to use SWR, a data fetching React Hook library that handles caching, revalidation, focus tracking, refetching on interval and more.\",\"path\":\"15/pages/building-your-application/data-fetching/client-side\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/03-building-your-application/03-data-fetching/05-client-side.mdx\",\"children\":[],\"lastModified\":\"2025-04-23\"}],\"lastModified\":\"2025-04-15\"},{\"title\":\"Configuring\",\"description\":\"Learn how to configure your Next.js application.\",\"path\":\"15/pages/building-your-application/configuring\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/03-building-your-application/06-configuring/index.mdx\",\"children\":[{\"title\":\"Error Handling\",\"description\":\"Handle errors in your Next.js app.\",\"path\":\"15/pages/building-your-application/configuring/error-handling\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/03-building-your-application/06-configuring/12-error-handling.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"}],\"lastModified\":\"2025-04-24\"}],\"lastModified\":\"2025-06-16\"},{\"title\":\"API Reference\",\"description\":\"Next.js API Reference for the Pages Router.\",\"path\":\"15/pages/api-reference\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/index.mdx\",\"children\":[{\"title\":\"Components\",\"description\":\"API Reference for Next.js built-in components in the Pages Router.\",\"path\":\"15/pages/api-reference/components\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/01-components/index.mdx\",\"children\":[{\"title\":\"Font\",\"description\":\"API Reference for the Font Module\",\"path\":\"15/pages/api-reference/components/font\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/01-components/font.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Form\",\"description\":\"Learn how to use the `\u003cForm\u003e` component to handle form submissions and search params updates with client-side navigation.\",\"path\":\"15/pages/api-reference/components/form\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/01-components/form.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Head\",\"description\":\"Add custom elements to the `head` of your page with the built-in Head component.\",\"path\":\"15/pages/api-reference/components/head\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/01-components/head.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"Image\",\"description\":\"Optimize Images in your Next.js Application using the built-in `next/image` Component.\",\"path\":\"15/pages/api-reference/components/image\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/01-components/image.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Image (Legacy)\",\"description\":\"Backwards compatible Image Optimization with the Legacy Image component.\",\"path\":\"15/pages/api-reference/components/image-legacy\",\"version\":\"legacy\",\"source\":\"docs/15/02-pages/04-api-reference/01-components/image-legacy.mdx\",\"children\":[],\"lastModified\":\"2025-08-14\"},{\"title\":\"Link\",\"description\":\"API reference for the `\u003cLink\u003e` component.\",\"path\":\"15/pages/api-reference/components/link\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/01-components/link.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Script\",\"description\":\"Optimize third-party scripts in your Next.js application using the built-in `next/script` Component.\",\"path\":\"15/pages/api-reference/components/script\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/01-components/script.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"}],\"lastModified\":\"2025-04-15\"},{\"title\":\"File-system conventions\",\"description\":\"API Reference for Next.js file-system conventions.\",\"path\":\"15/pages/api-reference/file-conventions\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/02-file-conventions/index.mdx\",\"children\":[{\"title\":\"instrumentation.js\",\"description\":\"API reference for the instrumentation.js file.\",\"path\":\"15/pages/api-reference/file-conventions/instrumentation\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/02-file-conventions/instrumentation.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Middleware\",\"description\":\"Learn how to use Middleware to run code before a request is completed.\",\"path\":\"15/pages/api-reference/file-conventions/middleware\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/02-file-conventions/middleware.mdx\",\"children\":[],\"lastModified\":\"2025-06-10\"},{\"title\":\"public\",\"description\":\"Next.js allows you to serve static files, like images, in the public directory. You can learn how it works here.\",\"path\":\"15/pages/api-reference/file-conventions/public-folder\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/02-file-conventions/public-folder.mdx\",\"children\":[],\"lastModified\":\"2025-04-25\"},{\"title\":\"src Directory\",\"description\":\"Save pages under the `src` folder as an alternative to the root `pages` directory.\",\"path\":\"15/pages/api-reference/file-conventions/src-folder\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/02-file-conventions/src-folder.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"}],\"lastModified\":\"2025-04-24\"},{\"title\":\"Functions\",\"description\":\"API Reference for Functions and Hooks in Pages Router.\",\"path\":\"15/pages/api-reference/functions\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/03-functions/index.mdx\",\"children\":[{\"title\":\"getInitialProps\",\"description\":\"Fetch dynamic data on the server for your React component with getInitialProps.\",\"path\":\"15/pages/api-reference/functions/get-initial-props\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/03-functions/get-initial-props.mdx\",\"children\":[],\"lastModified\":\"2025-06-10\"},{\"title\":\"getServerSideProps\",\"description\":\"API reference for `getServerSideProps`. Learn how to fetch data on each request with Next.js.\",\"path\":\"15/pages/api-reference/functions/get-server-side-props\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/03-functions/get-server-side-props.mdx\",\"children\":[],\"lastModified\":\"2025-06-10\"},{\"title\":\"getStaticPaths\",\"description\":\"API reference for `getStaticPaths`. Learn how to fetch data and generate static pages with `getStaticPaths`.\",\"path\":\"15/pages/api-reference/functions/get-static-paths\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/03-functions/get-static-paths.mdx\",\"children\":[],\"lastModified\":\"2025-06-10\"},{\"title\":\"getStaticProps\",\"description\":\"API reference for `getStaticProps`. Learn how to use `getStaticProps` to generate static pages with Next.js.\",\"path\":\"15/pages/api-reference/functions/get-static-props\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/03-functions/get-static-props.mdx\",\"children\":[],\"lastModified\":\"2025-06-10\"},{\"title\":\"NextRequest\",\"description\":\"API Reference for NextRequest.\",\"path\":\"15/pages/api-reference/functions/next-request\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/03-functions/next-request.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"NextResponse\",\"description\":\"API Reference for NextResponse.\",\"path\":\"15/pages/api-reference/functions/next-response\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/03-functions/next-response.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"useAmp\",\"description\":\"Enable AMP in a page, and control the way Next.js adds AMP to the page with the AMP config.\",\"path\":\"15/pages/api-reference/functions/use-amp\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/03-functions/use-amp.mdx\",\"children\":[],\"lastModified\":\"2025-08-19\"},{\"title\":\"useReportWebVitals\",\"description\":\"useReportWebVitals\",\"path\":\"15/pages/api-reference/functions/use-report-web-vitals\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/03-functions/use-report-web-vitals.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"useRouter\",\"description\":\"Learn more about the API of the Next.js Router, and access the router instance in your page with the useRouter hook.\",\"path\":\"15/pages/api-reference/functions/use-router\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/03-functions/use-router.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"userAgent\",\"description\":\"The userAgent helper extends the Web Request API with additional properties and methods to interact with the user agent object from the request.\",\"path\":\"15/pages/api-reference/functions/userAgent\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/03-functions/userAgent.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"}],\"lastModified\":\"2025-04-15\"},{\"title\":\"Configuration\",\"description\":\"Learn how to configure your Next.js application.\",\"path\":\"15/pages/api-reference/config\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/index.mdx\",\"children\":[{\"title\":\"next.config.js Options\",\"description\":\"Learn about the options available in next.config.js for the Pages Router.\",\"path\":\"15/pages/api-reference/config/next-config-js\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/index.mdx\",\"children\":[{\"title\":\"allowedDevOrigins\",\"description\":\"Use `allowedDevOrigins` to configure additional origins that can request the dev server.\",\"path\":\"15/pages/api-reference/config/next-config-js/allowedDevOrigins\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/allowedDevOrigins.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"assetPrefix\",\"description\":\"Learn how to use the assetPrefix config option to configure your CDN.\",\"path\":\"15/pages/api-reference/config/next-config-js/assetPrefix\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/assetPrefix.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"basePath\",\"description\":\"Use `basePath` to deploy a Next.js application under a sub-path of a domain.\",\"path\":\"15/pages/api-reference/config/next-config-js/basePath\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/basePath.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"bundlePagesRouterDependencies\",\"description\":\"Enable automatic dependency bundling for Pages Router\",\"path\":\"15/pages/api-reference/config/next-config-js/bundlePagesRouterDependencies\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/bundlePagesRouterDependencies.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"compress\",\"description\":\"Next.js provides gzip compression to compress rendered content and static files, it only works with the server target. Learn more about it here.\",\"path\":\"15/pages/api-reference/config/next-config-js/compress\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/compress.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"crossOrigin\",\"description\":\"Use the `crossOrigin` option to add a crossOrigin tag on the `script` tags generated by `next/script` and `next/head`.\",\"path\":\"15/pages/api-reference/config/next-config-js/crossOrigin\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/crossOrigin.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"devIndicators\",\"description\":\"Optimized pages include an indicator to let you know if it's being statically optimized. You can opt-out of it here.\",\"path\":\"15/pages/api-reference/config/next-config-js/devIndicators\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/devIndicators.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"distDir\",\"description\":\"Set a custom build directory to use instead of the default .next directory.\",\"path\":\"15/pages/api-reference/config/next-config-js/distDir\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/distDir.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"env\",\"description\":\"Learn to add and access environment variables in your Next.js application at build time.\",\"path\":\"15/pages/api-reference/config/next-config-js/env\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/env.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"eslint\",\"description\":\"Next.js reports ESLint errors and warnings during builds by default. Learn how to opt-out of this behavior here.\",\"path\":\"15/pages/api-reference/config/next-config-js/eslint\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/eslint.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"exportPathMap\",\"description\":\"Customize the pages that will be exported as HTML files when using `next export`.\",\"path\":\"15/pages/api-reference/config/next-config-js/exportPathMap\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/exportPathMap.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"generateBuildId\",\"description\":\"Configure the build id, which is used to identify the current build in which your application is being served.\",\"path\":\"15/pages/api-reference/config/next-config-js/generateBuildId\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/generateBuildId.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"generateEtags\",\"description\":\"Next.js will generate etags for every page by default. Learn more about how to disable etag generation here.\",\"path\":\"15/pages/api-reference/config/next-config-js/generateEtags\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/generateEtags.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"headers\",\"description\":\"Add custom HTTP headers to your Next.js app.\",\"path\":\"15/pages/api-reference/config/next-config-js/headers\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/headers.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"httpAgentOptions\",\"description\":\"Next.js will automatically use HTTP Keep-Alive by default. Learn more about how to disable HTTP Keep-Alive here.\",\"path\":\"15/pages/api-reference/config/next-config-js/httpAgentOptions\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/httpAgentOptions.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"images\",\"description\":\"Custom configuration for the next/image loader\",\"path\":\"15/pages/api-reference/config/next-config-js/images\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/images.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"experimental.middlewareClientMaxBodySize\",\"description\":\"Configure the maximum request body size when using middleware.\",\"path\":\"15/pages/api-reference/config/next-config-js/middlewareClientMaxBodySize\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/middlewareClientMaxBodySize.mdx\",\"children\":[],\"lastModified\":\"2025-10-09\"},{\"title\":\"onDemandEntries\",\"description\":\"Configure how Next.js will dispose and keep in memory pages created in development.\",\"path\":\"15/pages/api-reference/config/next-config-js/onDemandEntries\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/onDemandEntries.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"optimizePackageImports\",\"description\":\"API Reference for optimizePackageImports Next.js Config Option\",\"path\":\"15/pages/api-reference/config/next-config-js/optimizePackageImports\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/optimizePackageImports.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"output\",\"description\":\"Next.js automatically traces which files are needed by each page to allow for easy deployment of your application. Learn how it works here.\",\"path\":\"15/pages/api-reference/config/next-config-js/output\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/output.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"pageExtensions\",\"description\":\"Extend the default page extensions used by Next.js when resolving pages in the Pages Router.\",\"path\":\"15/pages/api-reference/config/next-config-js/pageExtensions\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/pageExtensions.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"poweredByHeader\",\"description\":\"Next.js will add the `x-powered-by` header by default. Learn to opt-out of it here.\",\"path\":\"15/pages/api-reference/config/next-config-js/poweredByHeader\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/poweredByHeader.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"productionBrowserSourceMaps\",\"description\":\"Enables browser source map generation during the production build.\",\"path\":\"15/pages/api-reference/config/next-config-js/productionBrowserSourceMaps\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/productionBrowserSourceMaps.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"reactStrictMode\",\"description\":\"The complete Next.js runtime is now Strict Mode-compliant, learn how to opt-in\",\"path\":\"15/pages/api-reference/config/next-config-js/reactStrictMode\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/reactStrictMode.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"redirects\",\"description\":\"Add redirects to your Next.js app.\",\"path\":\"15/pages/api-reference/config/next-config-js/redirects\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/redirects.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"rewrites\",\"description\":\"Add rewrites to your Next.js app.\",\"path\":\"15/pages/api-reference/config/next-config-js/rewrites\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/rewrites.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Runtime Config\",\"description\":\"Add client and server runtime configuration to your Next.js app.\",\"path\":\"15/pages/api-reference/config/next-config-js/runtime-configuration\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/runtime-configuration.mdx\",\"children\":[],\"lastModified\":\"2025-05-15\"},{\"title\":\"serverExternalPackages\",\"description\":\"Opt-out specific dependencies from the dependency bundling enabled by `bundlePagesRouterDependencies`.\",\"path\":\"15/pages/api-reference/config/next-config-js/serverExternalPackages\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/serverExternalPackages.mdx\",\"children\":[],\"lastModified\":\"2025-07-09\"},{\"title\":\"trailingSlash\",\"description\":\"Configure Next.js pages to resolve with or without a trailing slash.\",\"path\":\"15/pages/api-reference/config/next-config-js/trailingSlash\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/trailingSlash.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"transpilePackages\",\"description\":\"Automatically transpile and bundle dependencies from local packages (like monorepos) or from external dependencies (`node_modules`).\",\"path\":\"15/pages/api-reference/config/next-config-js/transpilePackages\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/transpilePackages.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"turbo\",\"description\":\"Configure Next.js with Turbopack-specific options\",\"path\":\"15/pages/api-reference/config/next-config-js/turbo\",\"version\":\"experimental\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/turbo.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"typescript\",\"description\":\"Next.js reports TypeScript errors by default. Learn to opt-out of this behavior here.\",\"path\":\"15/pages/api-reference/config/next-config-js/typescript\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/typescript.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"urlImports\",\"description\":\"Configure Next.js to allow importing modules from external URLs.\",\"path\":\"15/pages/api-reference/config/next-config-js/urlImports\",\"version\":\"experimental\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/urlImports.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"useLightningcss\",\"description\":\"Enable experimental support for Lightning CSS.\",\"path\":\"15/pages/api-reference/config/next-config-js/useLightningcss\",\"version\":\"experimental\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/useLightningcss.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"webpack\",\"description\":\"Learn how to customize the webpack config used by Next.js\",\"path\":\"15/pages/api-reference/config/next-config-js/webpack\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/webpack.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"webVitalsAttribution\",\"description\":\"Learn how to use the webVitalsAttribution option to pinpoint the source of Web Vitals issues.\",\"path\":\"15/pages/api-reference/config/next-config-js/webVitalsAttribution\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-next-config-js/webVitalsAttribution.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"}],\"lastModified\":\"2025-04-15\"},{\"title\":\"TypeScript\",\"description\":\"Next.js provides a TypeScript-first development experience for building your React application.\",\"path\":\"15/pages/api-reference/config/typescript\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/01-typescript.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"ESLint\",\"description\":\"Next.js reports ESLint errors and warnings during builds by default. Learn how to opt-out of this behavior here.\",\"path\":\"15/pages/api-reference/config/eslint\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/04-config/02-eslint.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"}],\"lastModified\":\"2025-04-15\"},{\"title\":\"CLI\",\"description\":\"API Reference for the Next.js Command Line Interface (CLI) tools.\",\"path\":\"15/pages/api-reference/cli\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/05-cli/index.mdx\",\"children\":[{\"title\":\"create-next-app CLI\",\"description\":\"Create Next.js apps using one command with the create-next-app CLI.\",\"path\":\"15/pages/api-reference/cli/create-next-app\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/05-cli/create-next-app.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"next CLI\",\"description\":\"Learn how to run and build your application with the Next.js CLI.\",\"path\":\"15/pages/api-reference/cli/next\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/05-cli/next.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"}],\"lastModified\":\"2025-04-15\"},{\"title\":\"Edge Runtime\",\"description\":\"API Reference for the Edge Runtime.\",\"path\":\"15/pages/api-reference/edge\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/06-edge.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Turbopack\",\"description\":\"Turbopack is an incremental bundler optimized for JavaScript and TypeScript, written in Rust, and built into Next.js.\",\"path\":\"15/pages/api-reference/turbopack\",\"version\":\"$undefined\",\"source\":\"docs/15/02-pages/04-api-reference/08-turbopack.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"}],\"lastModified\":\"2025-04-15\"},{\"title\":\"Architecture\",\"description\":\"How Next.js Works\",\"path\":\"15/architecture\",\"version\":\"$undefined\",\"source\":\"docs/15/03-architecture/index.mdx\",\"children\":[{\"title\":\"Accessibility\",\"description\":\"The built-in accessibility features of Next.js.\",\"path\":\"15/architecture/accessibility\",\"version\":\"$undefined\",\"source\":\"docs/15/03-architecture/accessibility.mdx\",\"children\":[],\"lastModified\":\"2024-11-06\"},{\"title\":\"Fast Refresh\",\"description\":\"Fast Refresh is a hot module reloading experience that gives you instantaneous feedback on edits made to your React components.\",\"path\":\"15/architecture/fast-refresh\",\"version\":\"$undefined\",\"source\":\"docs/15/03-architecture/fast-refresh.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Next.js Compiler\",\"description\":\"Next.js Compiler, written in Rust, which transforms and minifies your Next.js application.\",\"path\":\"15/architecture/nextjs-compiler\",\"version\":\"$undefined\",\"source\":\"docs/15/03-architecture/nextjs-compiler.mdx\",\"children\":[],\"lastModified\":\"2025-05-19\"},{\"title\":\"Supported Browsers\",\"description\":\"Browser support and which JavaScript features are supported by Next.js.\",\"path\":\"15/architecture/supported-browsers\",\"version\":\"$undefined\",\"source\":\"docs/15/03-architecture/supported-browsers.mdx\",\"children\":[],\"lastModified\":\"2025-08-08\"}],\"lastModified\":\"2024-11-06\"},{\"title\":\"Community\",\"description\":\"Get involved in the Next.js community.\",\"path\":\"15/community\",\"version\":\"$undefined\",\"source\":\"docs/15/04-community/index.mdx\",\"children\":[{\"title\":\"Contribution Guide\",\"description\":\"Learn how to contribute to Next.js Documentation\",\"path\":\"15/community/contribution-guide\",\"version\":\"$undefined\",\"source\":\"docs/15/04-community/01-contribution-guide.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"Rspack\",\"description\":\"Use the `next-rspack` plugin to bundle your Next.js with Rspack.\",\"path\":\"15/community/rspack\",\"version\":\"experimental\",\"source\":\"docs/15/04-community/02-rspack.mdx\",\"children\":[],\"lastModified\":\"2025-06-09\"}],\"lastModified\":\"2024-11-06\"}],\"stable\":[{\"title\":\"Getting Started\",\"description\":\"Learn how to create full-stack web applications with the Next.js App Router.\",\"path\":\"app/getting-started\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/01-getting-started/index.mdx\",\"children\":[{\"title\":\"Installation\",\"description\":\"Learn how to create a new Next.js application with the `create-next-app` CLI, and set up TypeScript, ESLint, and Module Path Aliases.\",\"path\":\"app/getting-started/installation\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/01-getting-started/01-installation.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"Project Structure\",\"description\":\"Learn the folder and file conventions in Next.js, and how to organize your project.\",\"path\":\"app/getting-started/project-structure\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/01-getting-started/02-project-structure.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"Layouts and Pages\",\"description\":\"Learn how to create your first pages and layouts, and link between them with the Link component.\",\"path\":\"app/getting-started/layouts-and-pages\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/01-getting-started/03-layouts-and-pages.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"Linking and Navigating\",\"description\":\"Learn how the built-in navigation optimizations work, including prefetching, prerendering, and client-side navigation, and how to optimize navigation for dynamic routes and slow networks.\",\"path\":\"app/getting-started/linking-and-navigating\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/01-getting-started/04-linking-and-navigating.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"Server and Client Components\",\"description\":\"Learn how you can use React Server and Client Components to render parts of your application on the server or the client.\",\"path\":\"app/getting-started/server-and-client-components\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/01-getting-started/05-server-and-client-components.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"Fetching Data\",\"description\":\"Learn how to fetch data and stream content that depends on data.\",\"path\":\"app/getting-started/fetching-data\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/01-getting-started/06-fetching-data.mdx\",\"children\":[],\"lastModified\":\"2026-03-13\"},{\"title\":\"Mutating Data\",\"description\":\"Learn how to mutate data using Server Functions and Server Actions in Next.js.\",\"path\":\"app/getting-started/mutating-data\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/01-getting-started/07-mutating-data.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"Caching\",\"description\":\"Learn how to cache data and UI in Next.js\",\"path\":\"app/getting-started/caching\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/01-getting-started/08-caching.mdx\",\"children\":[],\"lastModified\":\"2026-05-13\"},{\"title\":\"Revalidating\",\"description\":\"Learn how to revalidate cached data using time-based and on-demand strategies.\",\"path\":\"app/getting-started/revalidating\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/01-getting-started/09-revalidating.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"Error Handling\",\"description\":\"Learn how to display expected errors and handle uncaught exceptions.\",\"path\":\"app/getting-started/error-handling\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/01-getting-started/10-error-handling.mdx\",\"children\":[],\"lastModified\":\"2026-03-25\"},{\"title\":\"CSS\",\"description\":\"Learn about the different ways to add CSS to your application, including Tailwind CSS, CSS Modules, Global CSS, and more.\",\"path\":\"app/getting-started/css\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/01-getting-started/11-css.mdx\",\"children\":[],\"lastModified\":\"2026-03-20\"},{\"title\":\"Image Optimization\",\"description\":\"Learn how to optimize images in Next.js\",\"path\":\"app/getting-started/images\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/01-getting-started/12-images.mdx\",\"children\":[],\"lastModified\":\"2026-04-02\"},{\"title\":\"Font Optimization\",\"description\":\"Learn how to optimize fonts in Next.js\",\"path\":\"app/getting-started/fonts\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/01-getting-started/13-fonts.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"Metadata and OG images\",\"description\":\"Learn how to add metadata to your pages and create dynamic OG images.\",\"path\":\"app/getting-started/metadata-and-og-images\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/01-getting-started/14-metadata-and-og-images.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"Route Handlers\",\"description\":\"Learn how to use Route Handlers\",\"path\":\"app/getting-started/route-handlers\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/01-getting-started/15-route-handlers.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"Proxy\",\"description\":\"Learn how to use Proxy\",\"path\":\"app/getting-started/proxy\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/01-getting-started/16-proxy.mdx\",\"children\":[],\"lastModified\":\"2025-12-20\"},{\"title\":\"Deploying\",\"description\":\"Learn how to deploy your Next.js application.\",\"path\":\"app/getting-started/deploying\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/01-getting-started/17-deploying.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"Upgrading\",\"description\":\"Learn how to upgrade your Next.js application to the latest version or canary.\",\"path\":\"app/getting-started/upgrading\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/01-getting-started/18-upgrading.mdx\",\"children\":[],\"lastModified\":\"2026-02-24\"}],\"lastModified\":\"2025-05-02\"},{\"title\":\"Guides\",\"description\":\"Learn how to implement common patterns and real-world use cases using Next.js\",\"path\":\"app/guides\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/index.mdx\",\"children\":[{\"title\":\"AI Coding Agents\",\"description\":\"Learn how to configure your Next.js project so AI coding agents use up-to-date documentation instead of outdated training data.\",\"path\":\"app/guides/ai-agents\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/ai-agents.mdx\",\"children\":[],\"lastModified\":\"2026-03-20\"},{\"title\":\"Analytics\",\"description\":\"Measure and track page performance using Next.js Speed Insights\",\"path\":\"app/guides/analytics\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/analytics.mdx\",\"children\":[],\"lastModified\":\"2025-05-13\"},{\"title\":\"Authentication\",\"description\":\"Learn how to implement authentication in your Next.js application.\",\"path\":\"app/guides/authentication\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/authentication.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"Backend for Frontend\",\"description\":\"Learn how to use Next.js as a backend framework\",\"path\":\"app/guides/backend-for-frontend\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/backend-for-frontend.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"Caching (Previous Model)\",\"description\":\"Learn how to cache and revalidate data using fetch options, unstable_cache, and route segment configs for projects not using Cache Components.\",\"path\":\"app/guides/caching-without-cache-components\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/caching-without-cache-components.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"CDN Caching\",\"description\":\"Learn how CDN caching works with Next.js, including what works today, cache variability, and the direction toward pathname-based cache keying.\",\"path\":\"app/guides/cdn-caching\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/cdn-caching.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"CI Build Caching\",\"description\":\"Learn how to configure CI to cache Next.js builds\",\"path\":\"app/guides/ci-build-caching\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/ci-build-caching.mdx\",\"children\":[],\"lastModified\":\"2025-04-22\"},{\"title\":\"Content Security Policy\",\"description\":\"Learn how to set a Content Security Policy (CSP) for your Next.js application.\",\"path\":\"app/guides/content-security-policy\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/content-security-policy.mdx\",\"children\":[],\"lastModified\":\"2026-03-20\"},{\"title\":\"CSS-in-JS\",\"description\":\"Use CSS-in-JS libraries with Next.js\",\"path\":\"app/guides/css-in-js\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/css-in-js.mdx\",\"children\":[],\"lastModified\":\"2025-07-28\"},{\"title\":\"Custom Server\",\"description\":\"Start a Next.js app programmatically using a custom server.\",\"path\":\"app/guides/custom-server\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/custom-server.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"Data Security\",\"description\":\"Learn the built-in data security features in Next.js and learn best practices for protecting your application's data.\",\"path\":\"app/guides/data-security\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/data-security.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"Debugging\",\"description\":\"Learn how to debug your Next.js application with VS Code, Chrome DevTools, or Firefox DevTools.\",\"path\":\"app/guides/debugging\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/debugging.mdx\",\"children\":[],\"lastModified\":\"2026-02-11\"},{\"title\":\"Deploying to Platforms\",\"description\":\"Understand which Next.js features require specific platform capabilities and how to choose the right deployment target.\",\"path\":\"app/guides/deploying-to-platforms\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/deploying-to-platforms.mdx\",\"children\":[],\"lastModified\":\"2026-03-31\"},{\"title\":\"Draft Mode\",\"description\":\"Bypass Next.js caching for a request so editors can preview unpublished content from a headless CMS.\",\"path\":\"app/guides/draft-mode\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/draft-mode.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"Environment Variables\",\"description\":\"Learn to add and access environment variables in your Next.js application.\",\"path\":\"app/guides/environment-variables\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/environment-variables.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"Forms\",\"description\":\"Learn how to create forms in Next.js with React Server Actions.\",\"path\":\"app/guides/forms\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/forms.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"How Revalidation Works\",\"description\":\"A deep dive into how Next.js revalidates cached content, including the tag system, cache consistency, and multi-instance coordination.\",\"path\":\"app/guides/how-revalidation-works\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/how-revalidation-works.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"ISR\",\"description\":\"Learn how to create or update static pages at runtime with Incremental Static Regeneration.\",\"path\":\"app/guides/incremental-static-regeneration\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/incremental-static-regeneration.mdx\",\"children\":[],\"lastModified\":\"2026-03-25\"},{\"title\":\"Instrumentation\",\"description\":\"Learn how to use instrumentation to run code at server startup in your Next.js app\",\"path\":\"app/guides/instrumentation\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/instrumentation.mdx\",\"children\":[],\"lastModified\":\"2026-02-16\"},{\"title\":\"Internationalization\",\"description\":\"Add support for multiple languages with internationalized routing and localized content.\",\"path\":\"app/guides/internationalization\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/internationalization.mdx\",\"children\":[],\"lastModified\":\"2025-12-09\"},{\"title\":\"JSON-LD\",\"description\":\"Learn how to add JSON-LD to your Next.js application to describe your content to search engines and AI.\",\"path\":\"app/guides/json-ld\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/json-ld.mdx\",\"children\":[],\"lastModified\":\"2026-03-02\"},{\"title\":\"Lazy Loading\",\"description\":\"Lazy load imported libraries and React Components to improve your application's loading performance.\",\"path\":\"app/guides/lazy-loading\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/lazy-loading.mdx\",\"children\":[],\"lastModified\":\"2026-03-10\"},{\"title\":\"Development Environment\",\"description\":\"Learn how to optimize your local development environment with Next.js.\",\"path\":\"app/guides/local-development\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/local-development.mdx\",\"children\":[],\"lastModified\":\"2026-02-11\"},{\"title\":\"Next.js MCP Server\",\"description\":\"Learn how to use Next.js MCP support to allow coding agents access to your application state\",\"path\":\"app/guides/mcp\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/mcp.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"MDX\",\"description\":\"Learn how to configure MDX and use it in your Next.js apps.\",\"path\":\"app/guides/mdx\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/mdx.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"Memory Usage\",\"description\":\"Optimize memory used by your application in development and production.\",\"path\":\"app/guides/memory-usage\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/memory-usage.mdx\",\"children\":[],\"lastModified\":\"2025-10-18\"},{\"title\":\"Migrating\",\"description\":\"Learn how to migrate from popular frameworks to Next.js\",\"path\":\"app/guides/migrating\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/migrating/index.mdx\",\"children\":[{\"title\":\"App Router\",\"description\":\"Learn how to upgrade your existing Next.js application from the Pages Router to the App Router.\",\"path\":\"app/guides/migrating/app-router-migration\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/migrating/app-router-migration.mdx\",\"children\":[],\"lastModified\":\"2026-03-13\"},{\"title\":\"Create React App\",\"description\":\"Learn how to migrate your existing React application from Create React App to Next.js.\",\"path\":\"app/guides/migrating/from-create-react-app\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/migrating/from-create-react-app.mdx\",\"children\":[],\"lastModified\":\"2026-02-11\"},{\"title\":\"Vite\",\"description\":\"Learn how to migrate your existing React application from Vite to Next.js.\",\"path\":\"app/guides/migrating/from-vite\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/migrating/from-vite.mdx\",\"children\":[],\"lastModified\":\"2026-02-11\"}],\"lastModified\":\"2025-04-15\"},{\"title\":\"Migrating to Cache Components\",\"description\":\"Learn how to migrate from route segment configs to Cache Components in Next.js.\",\"path\":\"app/guides/migrating-to-cache-components\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/migrating-to-cache-components.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"Multi-tenant\",\"description\":\"Learn how to build multi-tenant apps with the App Router.\",\"path\":\"app/guides/multi-tenant\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/multi-tenant.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Multi-zones\",\"description\":\"Learn how to build micro-frontends using Next.js Multi-Zones to deploy multiple Next.js apps under a single domain.\",\"path\":\"app/guides/multi-zones\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/multi-zones.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"OpenTelemetry\",\"description\":\"Learn how to instrument your Next.js app with OpenTelemetry.\",\"path\":\"app/guides/open-telemetry\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/open-telemetry.mdx\",\"children\":[],\"lastModified\":\"2026-02-11\"},{\"title\":\"Package Bundling\",\"description\":\"Learn how to analyze and optimize your application's server and client bundles with the Next.js Bundle Analyzer for Turbopack, and the `@next/bundle-analyzer` plugin for Webpack.\",\"path\":\"app/guides/package-bundling\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/package-bundling.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"PPR Platform Guide\",\"description\":\"A guide for platform engineers on implementing PPR support, from basic origin rendering to optimized CDN integration.\",\"path\":\"app/guides/ppr-platform-guide\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/ppr-platform-guide.mdx\",\"children\":[],\"lastModified\":\"2026-03-31\"},{\"title\":\"Prefetching\",\"description\":\"Learn how to configure prefetching in Next.js\",\"path\":\"app/guides/prefetching\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/prefetching.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"Preserving UI state\",\"description\":\"Learn how React's Activity component preserves UI state across navigations in Next.js and how to control what resets.\",\"path\":\"app/guides/preserving-ui-state\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/preserving-ui-state.mdx\",\"children\":[],\"lastModified\":\"2026-05-13\"},{\"title\":\"Preventing Flash\",\"description\":\"Learn how to correct server-rendered content before the browser paints, avoiding visible flash when the page hydrates.\",\"path\":\"app/guides/preventing-flash-before-hydration\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/preventing-flash-before-hydration.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"Production\",\"description\":\"Recommendations to ensure the best performance and user experience before taking your Next.js application to production.\",\"path\":\"app/guides/production-checklist\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/production-checklist.mdx\",\"children\":[],\"lastModified\":\"2026-03-10\"},{\"title\":\"PWAs\",\"description\":\"Learn how to build a Progressive Web Application (PWA) with Next.js.\",\"path\":\"app/guides/progressive-web-apps\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/progressive-web-apps.mdx\",\"children\":[],\"lastModified\":\"2026-02-11\"},{\"title\":\"Public pages\",\"description\":\"Learn how to build public, \\\"static\\\" pages that share data across users, such as landing pages, list pages (products, blogs, etc.), marketing and news sites.\",\"path\":\"app/guides/public-static-pages\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/public-static-pages.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"Redirecting\",\"description\":\"Learn the different ways to handle redirects in Next.js.\",\"path\":\"app/guides/redirecting\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/redirecting.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"Rendering Philosophy\",\"description\":\"Learn how Next.js treats static and dynamic rendering as a spectrum at the component level, and what this means for deployment.\",\"path\":\"app/guides/rendering-philosophy\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/rendering-philosophy.mdx\",\"children\":[],\"lastModified\":\"2026-03-31\"},{\"title\":\"Sass\",\"description\":\"Style your Next.js application using Sass.\",\"path\":\"app/guides/sass\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/sass.mdx\",\"children\":[],\"lastModified\":\"2026-02-11\"},{\"title\":\"Scripts\",\"description\":\"Optimize 3rd party scripts with the built-in Script component.\",\"path\":\"app/guides/scripts\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/scripts.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"Self-Hosting\",\"description\":\"Learn how to self-host your Next.js application on a Node.js server, Docker image, or static HTML files (static exports).\",\"path\":\"app/guides/self-hosting\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/self-hosting.mdx\",\"children\":[],\"lastModified\":\"2026-03-25\"},{\"title\":\"Server Actions\",\"description\":\"How Server Actions work in Next.js, including the single-roundtrip response model, sequential dispatch, security, and caching integration.\",\"path\":\"app/guides/server-actions\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/server-actions.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"SPAs\",\"description\":\"Next.js fully supports building Single-Page Applications (SPAs).\",\"path\":\"app/guides/single-page-applications\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/single-page-applications.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"Static Exports\",\"description\":\"Next.js enables starting as a static site or Single-Page Application (SPA), then later optionally upgrading to use features that require a server.\",\"path\":\"app/guides/static-exports\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/static-exports.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"Streaming\",\"description\":\"Learn how streaming works in Next.js and how to use it to progressively render UI as data becomes available.\",\"path\":\"app/guides/streaming\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/streaming.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"Tailwind CSS v3\",\"description\":\"Style your Next.js Application using Tailwind CSS v3 for broader browser support.\",\"path\":\"app/guides/tailwind-v3-css\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/tailwind-v3-css.mdx\",\"children\":[],\"lastModified\":\"2025-08-06\"},{\"title\":\"Testing\",\"description\":\"Learn how to set up Next.js with four commonly used testing tools — Cypress, Playwright, Vitest, and Jest.\",\"path\":\"app/guides/testing\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/testing/index.mdx\",\"children\":[{\"title\":\"Cypress\",\"description\":\"Learn how to set up Cypress with Next.js for End-to-End (E2E) and Component Testing.\",\"path\":\"app/guides/testing/cypress\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/testing/cypress.mdx\",\"children\":[],\"lastModified\":\"2026-02-11\"},{\"title\":\"Jest\",\"description\":\"Learn how to set up Jest with Next.js for Unit Testing and Snapshot Testing.\",\"path\":\"app/guides/testing/jest\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/testing/jest.mdx\",\"children\":[],\"lastModified\":\"2026-02-11\"},{\"title\":\"Playwright\",\"description\":\"Learn how to set up Playwright with Next.js for End-to-End (E2E) Testing.\",\"path\":\"app/guides/testing/playwright\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/testing/playwright.mdx\",\"children\":[],\"lastModified\":\"2026-02-11\"},{\"title\":\"Vitest\",\"description\":\"Learn how to set up Vitest with Next.js for Unit Testing.\",\"path\":\"app/guides/testing/vitest\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/testing/vitest.mdx\",\"children\":[],\"lastModified\":\"2026-02-11\"}],\"lastModified\":\"2026-02-03\"},{\"title\":\"Third Party Libraries\",\"description\":\"Optimize the performance of third-party libraries in your application with the `@next/third-parties` package.\",\"path\":\"app/guides/third-party-libraries\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/third-party-libraries.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"Upgrading\",\"description\":\"Learn how to upgrade to the latest versions of Next.js.\",\"path\":\"app/guides/upgrading\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/upgrading/index.mdx\",\"children\":[{\"title\":\"Codemods\",\"description\":\"Use codemods to upgrade your Next.js codebase when new features are released.\",\"path\":\"app/guides/upgrading/codemods\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/upgrading/codemods.mdx\",\"children\":[],\"lastModified\":\"2026-03-13\"},{\"title\":\"Version 14\",\"description\":\"Upgrade your Next.js Application from Version 13 to 14.\",\"path\":\"app/guides/upgrading/version-14\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/upgrading/version-14.mdx\",\"children\":[],\"lastModified\":\"2025-04-22\"},{\"title\":\"Version 15\",\"description\":\"Upgrade your Next.js Application from Version 14 to 15.\",\"path\":\"app/guides/upgrading/version-15\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/upgrading/version-15.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"Version 16\",\"description\":\"Upgrade your Next.js Application from Version 15 to 16.\",\"path\":\"app/guides/upgrading/version-16\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/upgrading/version-16.mdx\",\"children\":[],\"lastModified\":\"2026-05-13\"}],\"lastModified\":\"2025-04-15\"},{\"title\":\"Videos\",\"description\":\"Recommendations and best practices for optimizing videos in your Next.js application.\",\"path\":\"app/guides/videos\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/videos.mdx\",\"children\":[],\"lastModified\":\"2025-09-03\"},{\"title\":\"View transitions\",\"description\":\"Learn how to use view transitions to communicate meaning during navigation, loading, and content changes in a Next.js app.\",\"path\":\"app/guides/view-transitions\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/02-guides/view-transitions.mdx\",\"children\":[],\"lastModified\":\"2026-05-13\"}],\"lastModified\":\"2025-06-11\"},{\"title\":\"API Reference\",\"description\":\"Next.js API Reference for the App Router.\",\"path\":\"app/api-reference\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/index.mdx\",\"children\":[{\"title\":\"Directives\",\"description\":\"Directives are used to modify the behavior of your Next.js application.\",\"path\":\"app/api-reference/directives\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/01-directives/index.mdx\",\"children\":[{\"title\":\"use cache\",\"description\":\"Learn how to use the \\\"use cache\\\" directive to cache data in your Next.js application.\",\"path\":\"app/api-reference/directives/use-cache\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/01-directives/use-cache.mdx\",\"children\":[],\"lastModified\":\"2026-05-13\"},{\"title\":\"use cache: private\",\"description\":\"Learn how to use the \\\"use cache: private\\\" directive to cache functions that access runtime request APIs.\",\"path\":\"app/api-reference/directives/use-cache-private\",\"version\":\"experimental\",\"source\":\"docs/stable/01-app/03-api-reference/01-directives/use-cache-private.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"use cache: remote\",\"description\":\"Learn how to use the \\\"use cache: remote\\\" directive for persistent, shared caching using remote cache handlers.\",\"path\":\"app/api-reference/directives/use-cache-remote\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/01-directives/use-cache-remote.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"use client\",\"description\":\"Learn how to use the use client directive to render a component on the client.\",\"path\":\"app/api-reference/directives/use-client\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/01-directives/use-client.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"use server\",\"description\":\"Learn how to use the use server directive to execute code on the server.\",\"path\":\"app/api-reference/directives/use-server\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/01-directives/use-server.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"}],\"lastModified\":\"2025-06-16\"},{\"title\":\"Components\",\"description\":\"API Reference for Next.js built-in components.\",\"path\":\"app/api-reference/components\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/02-components/index.mdx\",\"children\":[{\"title\":\"Font\",\"description\":\"Optimizing loading web fonts with the built-in `next/font` loaders.\",\"path\":\"app/api-reference/components/font\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/02-components/font.mdx\",\"children\":[],\"lastModified\":\"2025-08-06\"},{\"title\":\"Form Component\",\"description\":\"Learn how to use the `\u003cForm\u003e` component to handle form submissions and search params updates with client-side navigation.\",\"path\":\"app/api-reference/components/form\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/02-components/form.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"Image Component\",\"description\":\"Optimize Images in your Next.js Application using the built-in `next/image` Component.\",\"path\":\"app/api-reference/components/image\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/02-components/image.mdx\",\"children\":[],\"lastModified\":\"2026-03-10\"},{\"title\":\"Link Component\",\"description\":\"Enable fast client-side navigation with the built-in `next/link` component.\",\"path\":\"app/api-reference/components/link\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/02-components/link.mdx\",\"children\":[],\"lastModified\":\"2026-05-13\"},{\"title\":\"Script Component\",\"description\":\"Optimize third-party scripts in your Next.js application using the built-in `next/script` Component.\",\"path\":\"app/api-reference/components/script\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/02-components/script.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"}],\"lastModified\":\"2025-06-16\"},{\"title\":\"File-system conventions\",\"description\":\"API Reference for Next.js file-system conventions.\",\"path\":\"app/api-reference/file-conventions\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/03-file-conventions/index.mdx\",\"children\":[{\"title\":\"default.js\",\"description\":\"API Reference for the default.js file.\",\"path\":\"app/api-reference/file-conventions/default\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/03-file-conventions/default.mdx\",\"children\":[],\"lastModified\":\"2025-10-09\"},{\"title\":\"Dynamic Segments\",\"description\":\"Use Dynamic Segments to read URL path params and generate routes from dynamic data.\",\"path\":\"app/api-reference/file-conventions/dynamic-routes\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/03-file-conventions/dynamic-routes.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"error.js\",\"description\":\"API reference for the error.js special file.\",\"path\":\"app/api-reference/file-conventions/error\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/03-file-conventions/error.mdx\",\"children\":[],\"lastModified\":\"2026-03-25\"},{\"title\":\"forbidden.js\",\"description\":\"API reference for the forbidden.js special file.\",\"path\":\"app/api-reference/file-conventions/forbidden\",\"version\":\"experimental\",\"source\":\"docs/stable/01-app/03-api-reference/03-file-conventions/forbidden.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"instrumentation.js\",\"description\":\"API reference for the instrumentation.js file.\",\"path\":\"app/api-reference/file-conventions/instrumentation\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/03-file-conventions/instrumentation.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"instrumentation-client.js\",\"description\":\"Learn how to add client-side instrumentation to track and monitor your Next.js application's frontend performance.\",\"path\":\"app/api-reference/file-conventions/instrumentation-client\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/03-file-conventions/instrumentation-client.mdx\",\"children\":[],\"lastModified\":\"2025-08-06\"},{\"title\":\"Intercepting Routes\",\"description\":\"Use intercepting routes to load a new route within the current layout while masking the browser URL, useful for advanced routing patterns such as modals.\",\"path\":\"app/api-reference/file-conventions/intercepting-routes\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/03-file-conventions/intercepting-routes.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"layout.js\",\"description\":\"API reference for the layout.js file.\",\"path\":\"app/api-reference/file-conventions/layout\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/03-file-conventions/layout.mdx\",\"children\":[],\"lastModified\":\"2026-03-05\"},{\"title\":\"loading.js\",\"description\":\"API reference for the loading.js file.\",\"path\":\"app/api-reference/file-conventions/loading\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/03-file-conventions/loading.mdx\",\"children\":[],\"lastModified\":\"2026-03-13\"},{\"title\":\"mdx-components.js\",\"description\":\"API reference for the mdx-components.js file.\",\"path\":\"app/api-reference/file-conventions/mdx-components\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/03-file-conventions/mdx-components.mdx\",\"children\":[],\"lastModified\":\"2025-07-29\"},{\"title\":\"not-found.js\",\"description\":\"API reference for the not-found.js file.\",\"path\":\"app/api-reference/file-conventions/not-found\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/03-file-conventions/not-found.mdx\",\"children\":[],\"lastModified\":\"2026-03-05\"},{\"title\":\"page.js\",\"description\":\"API reference for the page.js file.\",\"path\":\"app/api-reference/file-conventions/page\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/03-file-conventions/page.mdx\",\"children\":[],\"lastModified\":\"2026-03-05\"},{\"title\":\"Parallel Routes\",\"description\":\"Simultaneously render one or more pages in the same view that can be navigated independently. A pattern for highly dynamic applications.\",\"path\":\"app/api-reference/file-conventions/parallel-routes\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/03-file-conventions/parallel-routes.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"proxy.js\",\"description\":\"API reference for the proxy.js file.\",\"path\":\"app/api-reference/file-conventions/proxy\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/03-file-conventions/proxy.mdx\",\"children\":[],\"lastModified\":\"2026-05-13\"},{\"title\":\"public\",\"description\":\"Next.js allows you to serve static files, like images, in the public directory. You can learn how it works here.\",\"path\":\"app/api-reference/file-conventions/public-folder\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/03-file-conventions/public-folder.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"route.js\",\"description\":\"API reference for the route.js special file.\",\"path\":\"app/api-reference/file-conventions/route\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/03-file-conventions/route.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"Route Groups\",\"description\":\"Route Groups can be used to partition your Next.js application into different sections.\",\"path\":\"app/api-reference/file-conventions/route-groups\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/03-file-conventions/route-groups.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"src\",\"description\":\"Save pages under the `src` folder as an alternative to the root `pages` directory.\",\"path\":\"app/api-reference/file-conventions/src-folder\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/03-file-conventions/src-folder.mdx\",\"children\":[],\"lastModified\":\"2025-10-17\"},{\"title\":\"template.js\",\"description\":\"API Reference for the template.js file.\",\"path\":\"app/api-reference/file-conventions/template\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/03-file-conventions/template.mdx\",\"children\":[],\"lastModified\":\"2026-03-05\"},{\"title\":\"unauthorized.js\",\"description\":\"API reference for the unauthorized.js special file.\",\"path\":\"app/api-reference/file-conventions/unauthorized\",\"version\":\"experimental\",\"source\":\"docs/stable/01-app/03-api-reference/03-file-conventions/unauthorized.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"Metadata Files\",\"description\":\"API documentation for the metadata file conventions.\",\"path\":\"app/api-reference/file-conventions/metadata\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/03-file-conventions/01-metadata/index.mdx\",\"children\":[{\"title\":\"favicon, icon, and apple-icon\",\"description\":\"API Reference for the Favicon, Icon and Apple Icon file conventions.\",\"path\":\"app/api-reference/file-conventions/metadata/app-icons\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/03-file-conventions/01-metadata/app-icons.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"manifest.json\",\"description\":\"API Reference for manifest.json file.\",\"path\":\"app/api-reference/file-conventions/metadata/manifest\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/03-file-conventions/01-metadata/manifest.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"opengraph-image and twitter-image\",\"description\":\"API Reference for the Open Graph Image and Twitter Image file conventions.\",\"path\":\"app/api-reference/file-conventions/metadata/opengraph-image\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/03-file-conventions/01-metadata/opengraph-image.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"robots.txt\",\"description\":\"API Reference for robots.txt file.\",\"path\":\"app/api-reference/file-conventions/metadata/robots\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/03-file-conventions/01-metadata/robots.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"sitemap.xml\",\"description\":\"API Reference for the sitemap.xml file.\",\"path\":\"app/api-reference/file-conventions/metadata/sitemap\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/03-file-conventions/01-metadata/sitemap.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"}],\"lastModified\":\"2025-10-17\"},{\"title\":\"Route Segment Config\",\"description\":\"Learn about how to configure options for Next.js route segments.\",\"path\":\"app/api-reference/file-conventions/route-segment-config\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/03-file-conventions/02-route-segment-config/index.mdx\",\"children\":[{\"title\":\"dynamicParams\",\"description\":\"API reference for the dynamicParams route segment config option.\",\"path\":\"app/api-reference/file-conventions/route-segment-config/dynamicParams\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/03-file-conventions/02-route-segment-config/dynamicParams.mdx\",\"children\":[],\"lastModified\":\"2026-03-13\"},{\"title\":\"maxDuration\",\"description\":\"API reference for the maxDuration route segment config option.\",\"path\":\"app/api-reference/file-conventions/route-segment-config/maxDuration\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/03-file-conventions/02-route-segment-config/maxDuration.mdx\",\"children\":[],\"lastModified\":\"2026-03-13\"},{\"title\":\"preferredRegion\",\"description\":\"API reference for the preferredRegion route segment config option.\",\"path\":\"app/api-reference/file-conventions/route-segment-config/preferredRegion\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/03-file-conventions/02-route-segment-config/preferredRegion.mdx\",\"children\":[],\"lastModified\":\"2026-03-13\"},{\"title\":\"runtime\",\"description\":\"API reference for the runtime route segment config option.\",\"path\":\"app/api-reference/file-conventions/route-segment-config/runtime\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/03-file-conventions/02-route-segment-config/runtime.mdx\",\"children\":[],\"lastModified\":\"2026-03-13\"}],\"lastModified\":\"2026-03-13\"}],\"lastModified\":\"2025-06-16\"},{\"title\":\"Functions\",\"description\":\"API Reference for Next.js Functions and Hooks.\",\"path\":\"app/api-reference/functions\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/index.mdx\",\"children\":[{\"title\":\"after\",\"description\":\"API Reference for the after function.\",\"path\":\"app/api-reference/functions/after\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/after.mdx\",\"children\":[],\"lastModified\":\"2026-03-13\"},{\"title\":\"cacheLife\",\"description\":\"Learn how to use the cacheLife function to set the cache expiration time for a cached function or component.\",\"path\":\"app/api-reference/functions/cacheLife\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/cacheLife.mdx\",\"children\":[],\"lastModified\":\"2026-05-13\"},{\"title\":\"cacheTag\",\"description\":\"Learn how to use the cacheTag function to manage cache invalidation in your Next.js application.\",\"path\":\"app/api-reference/functions/cacheTag\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/cacheTag.mdx\",\"children\":[],\"lastModified\":\"2026-05-13\"},{\"title\":\"unstable_catchError\",\"description\":\"API Reference for the unstable_catchError function.\",\"path\":\"app/api-reference/functions/catchError\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/catchError.mdx\",\"children\":[],\"lastModified\":\"2026-05-13\"},{\"title\":\"connection\",\"description\":\"API Reference for the connection function.\",\"path\":\"app/api-reference/functions/connection\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/connection.mdx\",\"children\":[],\"lastModified\":\"2026-05-13\"},{\"title\":\"cookies\",\"description\":\"API Reference for the cookies function.\",\"path\":\"app/api-reference/functions/cookies\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/cookies.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"draftMode\",\"description\":\"API Reference for the draftMode function.\",\"path\":\"app/api-reference/functions/draft-mode\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/draft-mode.mdx\",\"children\":[],\"lastModified\":\"2026-05-13\"},{\"title\":\"fetch\",\"description\":\"API reference for the extended fetch function.\",\"path\":\"app/api-reference/functions/fetch\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/fetch.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"forbidden\",\"description\":\"API Reference for the forbidden function.\",\"path\":\"app/api-reference/functions/forbidden\",\"version\":\"experimental\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/forbidden.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"generateImageMetadata\",\"description\":\"Learn how to generate multiple images in a single Metadata API special file.\",\"path\":\"app/api-reference/functions/generate-image-metadata\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/generate-image-metadata.mdx\",\"children\":[],\"lastModified\":\"2025-10-08\"},{\"title\":\"generateMetadata\",\"description\":\"Learn how to add Metadata to your Next.js application for improved search engine optimization (SEO) and web shareability.\",\"path\":\"app/api-reference/functions/generate-metadata\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/generate-metadata.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"generateSitemaps\",\"description\":\"Learn how to use the generateSiteMaps function to create multiple sitemaps for your application.\",\"path\":\"app/api-reference/functions/generate-sitemaps\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/generate-sitemaps.mdx\",\"children\":[],\"lastModified\":\"2025-12-09\"},{\"title\":\"generateStaticParams\",\"description\":\"API reference for the generateStaticParams function.\",\"path\":\"app/api-reference/functions/generate-static-params\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/generate-static-params.mdx\",\"children\":[],\"lastModified\":\"2026-03-13\"},{\"title\":\"generateViewport\",\"description\":\"API Reference for the generateViewport function.\",\"path\":\"app/api-reference/functions/generate-viewport\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/generate-viewport.mdx\",\"children\":[],\"lastModified\":\"2026-03-05\"},{\"title\":\"headers\",\"description\":\"API reference for the headers function.\",\"path\":\"app/api-reference/functions/headers\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/headers.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"ImageResponse\",\"description\":\"API Reference for the ImageResponse constructor.\",\"path\":\"app/api-reference/functions/image-response\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/image-response.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"NextRequest\",\"description\":\"API Reference for NextRequest.\",\"path\":\"app/api-reference/functions/next-request\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/next-request.mdx\",\"children\":[],\"lastModified\":\"2025-12-04\"},{\"title\":\"NextResponse\",\"description\":\"API Reference for NextResponse.\",\"path\":\"app/api-reference/functions/next-response\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/next-response.mdx\",\"children\":[],\"lastModified\":\"2025-12-04\"},{\"title\":\"notFound\",\"description\":\"API Reference for the notFound function.\",\"path\":\"app/api-reference/functions/not-found\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/not-found.mdx\",\"children\":[],\"lastModified\":\"2026-02-24\"},{\"title\":\"permanentRedirect\",\"description\":\"API Reference for the permanentRedirect function.\",\"path\":\"app/api-reference/functions/permanentRedirect\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/permanentRedirect.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"redirect\",\"description\":\"API Reference for the redirect function.\",\"path\":\"app/api-reference/functions/redirect\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/redirect.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"refresh\",\"description\":\"API Reference for the refresh function.\",\"path\":\"app/api-reference/functions/refresh\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/refresh.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"revalidatePath\",\"description\":\"API Reference for the revalidatePath function.\",\"path\":\"app/api-reference/functions/revalidatePath\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/revalidatePath.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"revalidateTag\",\"description\":\"API Reference for the revalidateTag function.\",\"path\":\"app/api-reference/functions/revalidateTag\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/revalidateTag.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"unauthorized\",\"description\":\"API Reference for the unauthorized function.\",\"path\":\"app/api-reference/functions/unauthorized\",\"version\":\"experimental\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/unauthorized.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"unstable_cache\",\"description\":\"API Reference for the unstable_cache function.\",\"path\":\"app/api-reference/functions/unstable_cache\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/unstable_cache.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"unstable_noStore\",\"description\":\"API Reference for the unstable_noStore function.\",\"path\":\"app/api-reference/functions/unstable_noStore\",\"version\":\"legacy\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/unstable_noStore.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"unstable_rethrow\",\"description\":\"API Reference for the unstable_rethrow function.\",\"path\":\"app/api-reference/functions/unstable_rethrow\",\"version\":\"unstable\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/unstable_rethrow.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"updateTag\",\"description\":\"API Reference for the updateTag function.\",\"path\":\"app/api-reference/functions/updateTag\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/updateTag.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"useLinkStatus\",\"description\":\"API Reference for the useLinkStatus hook.\",\"path\":\"app/api-reference/functions/use-link-status\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/use-link-status.mdx\",\"children\":[],\"lastModified\":\"2025-09-02\"},{\"title\":\"useParams\",\"description\":\"API Reference for the useParams hook.\",\"path\":\"app/api-reference/functions/use-params\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/use-params.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"usePathname\",\"description\":\"API Reference for the usePathname hook.\",\"path\":\"app/api-reference/functions/use-pathname\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/use-pathname.mdx\",\"children\":[],\"lastModified\":\"2026-05-13\"},{\"title\":\"useReportWebVitals\",\"description\":\"API Reference for the useReportWebVitals function.\",\"path\":\"app/api-reference/functions/use-report-web-vitals\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/use-report-web-vitals.mdx\",\"children\":[],\"lastModified\":\"2026-02-27\"},{\"title\":\"useRouter\",\"description\":\"API reference for the useRouter hook.\",\"path\":\"app/api-reference/functions/use-router\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/use-router.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"useSearchParams\",\"description\":\"API Reference for the useSearchParams hook.\",\"path\":\"app/api-reference/functions/use-search-params\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/use-search-params.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"useSelectedLayoutSegment\",\"description\":\"API Reference for the useSelectedLayoutSegment hook.\",\"path\":\"app/api-reference/functions/use-selected-layout-segment\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/use-selected-layout-segment.mdx\",\"children\":[],\"lastModified\":\"2026-02-12\"},{\"title\":\"useSelectedLayoutSegments\",\"description\":\"API Reference for the useSelectedLayoutSegments hook.\",\"path\":\"app/api-reference/functions/use-selected-layout-segments\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/use-selected-layout-segments.mdx\",\"children\":[],\"lastModified\":\"2026-02-12\"},{\"title\":\"userAgent\",\"description\":\"The userAgent helper extends the Web Request API with additional properties and methods to interact with the user agent object from the request.\",\"path\":\"app/api-reference/functions/userAgent\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/04-functions/userAgent.mdx\",\"children\":[],\"lastModified\":\"2025-10-17\"}],\"lastModified\":\"2025-06-16\"},{\"title\":\"Configuration\",\"description\":\"Learn how to configure Next.js applications.\",\"path\":\"app/api-reference/config\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/index.mdx\",\"children\":[{\"title\":\"next.config.js\",\"description\":\"Learn how to configure your application with next.config.js.\",\"path\":\"app/api-reference/config/next-config-js\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/index.mdx\",\"children\":[{\"title\":\"adapterPath\",\"description\":\"Configure a custom adapter for Next.js to hook into the build process.\",\"path\":\"app/api-reference/config/next-config-js/adapterPath\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/adapterPath.mdx\",\"children\":[],\"lastModified\":\"2026-03-31\"},{\"title\":\"allowedDevOrigins\",\"description\":\"Use `allowedDevOrigins` to configure additional origins that can request the dev server.\",\"path\":\"app/api-reference/config/next-config-js/allowedDevOrigins\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/allowedDevOrigins.mdx\",\"children\":[],\"lastModified\":\"2026-03-17\"},{\"title\":\"appDir\",\"description\":\"Enable the App Router to use layouts, streaming, and more.\",\"path\":\"app/api-reference/config/next-config-js/appDir\",\"version\":\"legacy\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/appDir.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"assetPrefix\",\"description\":\"Learn how to use the assetPrefix config option to configure your CDN.\",\"path\":\"app/api-reference/config/next-config-js/assetPrefix\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/assetPrefix.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"authInterrupts\",\"description\":\"Learn how to enable the experimental `authInterrupts` configuration option to use `forbidden` and `unauthorized`.\",\"path\":\"app/api-reference/config/next-config-js/authInterrupts\",\"version\":\"canary\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/authInterrupts.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"basePath\",\"description\":\"Use `basePath` to deploy a Next.js application under a sub-path of a domain.\",\"path\":\"app/api-reference/config/next-config-js/basePath\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/basePath.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"cacheComponents\",\"description\":\"Learn how to enable the cacheComponents flag in Next.js.\",\"path\":\"app/api-reference/config/next-config-js/cacheComponents\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/cacheComponents.mdx\",\"children\":[],\"lastModified\":\"2026-05-13\"},{\"title\":\"cacheHandlers\",\"description\":\"Configure custom cache handlers for use cache directives in Next.js.\",\"path\":\"app/api-reference/config/next-config-js/cacheHandlers\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/cacheHandlers.mdx\",\"children\":[],\"lastModified\":\"2026-03-25\"},{\"title\":\"cacheLife\",\"description\":\"Learn how to set up cacheLife configurations in Next.js.\",\"path\":\"app/api-reference/config/next-config-js/cacheLife\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/cacheLife.mdx\",\"children\":[],\"lastModified\":\"2025-11-11\"},{\"title\":\"compress\",\"description\":\"Next.js provides gzip compression to compress rendered content and static files, it only works with the server target. Learn more about it here.\",\"path\":\"app/api-reference/config/next-config-js/compress\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/compress.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"crossOrigin\",\"description\":\"Use the `crossOrigin` option to add a crossOrigin tag on the `script` tags generated by `next/script`.\",\"path\":\"app/api-reference/config/next-config-js/crossOrigin\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/crossOrigin.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"cssChunking\",\"description\":\"Use the `cssChunking` option to control how CSS files are chunked in your Next.js application.\",\"path\":\"app/api-reference/config/next-config-js/cssChunking\",\"version\":\"experimental\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/cssChunking.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"deploymentId\",\"description\":\"Configure a deployment identifier used for version skew protection and cache busting.\",\"path\":\"app/api-reference/config/next-config-js/deploymentId\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/deploymentId.mdx\",\"children\":[],\"lastModified\":\"2026-02-12\"},{\"title\":\"devIndicators\",\"description\":\"Configuration options for the on-screen indicator that gives context about the current route you're viewing during development.\",\"path\":\"app/api-reference/config/next-config-js/devIndicators\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/devIndicators.mdx\",\"children\":[],\"lastModified\":\"2026-05-13\"},{\"title\":\"distDir\",\"description\":\"Set a custom build directory to use instead of the default .next directory.\",\"path\":\"app/api-reference/config/next-config-js/distDir\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/distDir.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"env\",\"description\":\"Learn to add and access environment variables in your Next.js application at build time.\",\"path\":\"app/api-reference/config/next-config-js/env\",\"version\":\"legacy\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/env.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"expireTime\",\"description\":\"Customize stale-while-revalidate expire time for ISR enabled pages.\",\"path\":\"app/api-reference/config/next-config-js/expireTime\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/expireTime.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"exportPathMap\",\"description\":\"Customize the pages that will be exported as HTML files when using `next export`.\",\"path\":\"app/api-reference/config/next-config-js/exportPathMap\",\"version\":\"legacy\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/exportPathMap.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"generateBuildId\",\"description\":\"Configure the build id, which is used to identify the current build in which your application is being served.\",\"path\":\"app/api-reference/config/next-config-js/generateBuildId\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/generateBuildId.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"generateEtags\",\"description\":\"Next.js will generate etags for every page by default. Learn more about how to disable etag generation here.\",\"path\":\"app/api-reference/config/next-config-js/generateEtags\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/generateEtags.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"headers\",\"description\":\"Add custom HTTP headers to your Next.js app.\",\"path\":\"app/api-reference/config/next-config-js/headers\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/headers.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"htmlLimitedBots\",\"description\":\"Specify a list of user agents that should receive blocking metadata.\",\"path\":\"app/api-reference/config/next-config-js/htmlLimitedBots\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/htmlLimitedBots.mdx\",\"children\":[],\"lastModified\":\"2025-10-03\"},{\"title\":\"httpAgentOptions\",\"description\":\"Next.js will automatically use HTTP Keep-Alive by default. Learn more about how to disable HTTP Keep-Alive here.\",\"path\":\"app/api-reference/config/next-config-js/httpAgentOptions\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/httpAgentOptions.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"images\",\"description\":\"Custom configuration for the next/image loader\",\"path\":\"app/api-reference/config/next-config-js/images\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/images.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"cacheHandler\",\"description\":\"Configure the Next.js cache used for storing and revalidating data to use any external service like Redis, Memcached, or others.\",\"path\":\"app/api-reference/config/next-config-js/incrementalCacheHandlerPath\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/incrementalCacheHandlerPath.mdx\",\"children\":[],\"lastModified\":\"2026-01-08\"},{\"title\":\"inlineCss\",\"description\":\"Enable inline CSS support.\",\"path\":\"app/api-reference/config/next-config-js/inlineCss\",\"version\":\"experimental\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/inlineCss.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"logging\",\"description\":\"Configure logging behavior in the terminal when running Next.js in development mode, including fetch logging, incoming requests, and forwarding browser console logs to the terminal.\",\"path\":\"app/api-reference/config/next-config-js/logging\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/logging.mdx\",\"children\":[],\"lastModified\":\"2026-02-12\"},{\"title\":\"mdxRs\",\"description\":\"Use the new Rust compiler to compile MDX files in the App Router.\",\"path\":\"app/api-reference/config/next-config-js/mdxRs\",\"version\":\"experimental\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/mdxRs.mdx\",\"children\":[],\"lastModified\":\"2025-11-05\"},{\"title\":\"onDemandEntries\",\"description\":\"Configure how Next.js will dispose and keep in memory pages created in development.\",\"path\":\"app/api-reference/config/next-config-js/onDemandEntries\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/onDemandEntries.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"optimizePackageImports\",\"description\":\"API Reference for optimizePackageImports Next.js Config Option\",\"path\":\"app/api-reference/config/next-config-js/optimizePackageImports\",\"version\":\"experimental\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/optimizePackageImports.mdx\",\"children\":[],\"lastModified\":\"2025-12-19\"},{\"title\":\"output\",\"description\":\"Next.js automatically traces which files are needed by each page to allow for easy deployment of your application. Learn how it works here.\",\"path\":\"app/api-reference/config/next-config-js/output\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/output.mdx\",\"children\":[],\"lastModified\":\"2025-10-08\"},{\"title\":\"pageExtensions\",\"description\":\"Extend the default page extensions used by Next.js when resolving pages in the Pages Router.\",\"path\":\"app/api-reference/config/next-config-js/pageExtensions\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/pageExtensions.mdx\",\"children\":[],\"lastModified\":\"2025-10-17\"},{\"title\":\"poweredByHeader\",\"description\":\"Next.js will add the `x-powered-by` header by default. Learn to opt-out of it here.\",\"path\":\"app/api-reference/config/next-config-js/poweredByHeader\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/poweredByHeader.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"productionBrowserSourceMaps\",\"description\":\"Enables browser source map generation during the production build.\",\"path\":\"app/api-reference/config/next-config-js/productionBrowserSourceMaps\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/productionBrowserSourceMaps.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"proxyClientMaxBodySize\",\"description\":\"Configure the maximum request body size when using proxy.\",\"path\":\"app/api-reference/config/next-config-js/proxyClientMaxBodySize\",\"version\":\"experimental\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/proxyClientMaxBodySize.mdx\",\"children\":[],\"lastModified\":\"2025-10-20\"},{\"title\":\"reactCompiler\",\"description\":\"Enable the React Compiler to automatically optimize component rendering.\",\"path\":\"app/api-reference/config/next-config-js/reactCompiler\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/reactCompiler.mdx\",\"children\":[],\"lastModified\":\"2026-02-11\"},{\"title\":\"reactMaxHeadersLength\",\"description\":\"The maximum length of the headers that are emitted by React and added to the response.\",\"path\":\"app/api-reference/config/next-config-js/reactMaxHeadersLength\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/reactMaxHeadersLength.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"reactStrictMode\",\"description\":\"The complete Next.js runtime is now Strict Mode-compliant, learn how to opt-in\",\"path\":\"app/api-reference/config/next-config-js/reactStrictMode\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/reactStrictMode.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"redirects\",\"description\":\"Add redirects to your Next.js app.\",\"path\":\"app/api-reference/config/next-config-js/redirects\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/redirects.mdx\",\"children\":[],\"lastModified\":\"2025-11-12\"},{\"title\":\"rewrites\",\"description\":\"Add rewrites to your Next.js app.\",\"path\":\"app/api-reference/config/next-config-js/rewrites\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/rewrites.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"sassOptions\",\"description\":\"Configure Sass options.\",\"path\":\"app/api-reference/config/next-config-js/sassOptions\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/sassOptions.mdx\",\"children\":[],\"lastModified\":\"2025-10-19\"},{\"title\":\"serverActions\",\"description\":\"Configure Server Actions behavior in your Next.js application.\",\"path\":\"app/api-reference/config/next-config-js/serverActions\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/serverActions.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"serverComponentsHmrCache\",\"description\":\"Configure whether fetch responses in Server Components are cached across HMR refresh requests.\",\"path\":\"app/api-reference/config/next-config-js/serverComponentsHmrCache\",\"version\":\"experimental\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/serverComponentsHmrCache.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"serverExternalPackages\",\"description\":\"Opt-out specific dependencies from the Server Components bundling and use native Node.js `require`.\",\"path\":\"app/api-reference/config/next-config-js/serverExternalPackages\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/serverExternalPackages.mdx\",\"children\":[],\"lastModified\":\"2025-12-05\"},{\"title\":\"staleTimes\",\"description\":\"Learn how to override the invalidation time of the client cache.\",\"path\":\"app/api-reference/config/next-config-js/staleTimes\",\"version\":\"experimental\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/staleTimes.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"staticGeneration*\",\"description\":\"Learn how to configure static generation in your Next.js application.\",\"path\":\"app/api-reference/config/next-config-js/staticGeneration\",\"version\":\"experimental\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/staticGeneration.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"taint\",\"description\":\"Enable tainting Objects and Values.\",\"path\":\"app/api-reference/config/next-config-js/taint\",\"version\":\"experimental\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/taint.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"trailingSlash\",\"description\":\"Configure Next.js pages to resolve with or without a trailing slash.\",\"path\":\"app/api-reference/config/next-config-js/trailingSlash\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/trailingSlash.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"transpilePackages\",\"description\":\"Transpile and bundle dependencies from monorepo workspace packages or `node_modules` libraries that ship TypeScript, JSX, or modern syntax.\",\"path\":\"app/api-reference/config/next-config-js/transpilePackages\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/transpilePackages.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"turbopack\",\"description\":\"Configure Next.js with Turbopack-specific options\",\"path\":\"app/api-reference/config/next-config-js/turbopack\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/turbopack.mdx\",\"children\":[],\"lastModified\":\"2026-02-13\"},{\"title\":\"turbopackFileSystemCache\",\"description\":\"Learn how to enable FileSystem Caching for Turbopack builds\",\"path\":\"app/api-reference/config/next-config-js/turbopackFileSystemCache\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/turbopackFileSystemCache.mdx\",\"children\":[],\"lastModified\":\"2025-12-01\"},{\"title\":\"turbopack.ignoreIssue\",\"description\":\"Suppress specific Turbopack errors and warnings from the CLI output and error overlay.\",\"path\":\"app/api-reference/config/next-config-js/turbopackIgnoreIssue\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/turbopackIgnoreIssue.mdx\",\"children\":[],\"lastModified\":\"2026-02-13\"},{\"title\":\"turbopackLocalPostcssConfig\",\"description\":\"Enable per-directory PostCSS config resolution in Turbopack so that the config closest to each CSS file takes precedence over the project root config.\",\"path\":\"app/api-reference/config/next-config-js/turbopackLocalPostcssConfig\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/turbopackLocalPostcssConfig.mdx\",\"children\":[],\"lastModified\":\"2026-05-31\"},{\"title\":\"typedRoutes\",\"description\":\"Enable support for statically typed links.\",\"path\":\"app/api-reference/config/next-config-js/typedRoutes\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/typedRoutes.mdx\",\"children\":[],\"lastModified\":\"2025-08-19\"},{\"title\":\"typescript\",\"description\":\"Configure how Next.js handles TypeScript errors during production builds and specify a custom tsconfig file.\",\"path\":\"app/api-reference/config/next-config-js/typescript\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/typescript.mdx\",\"children\":[],\"lastModified\":\"2026-03-18\"},{\"title\":\"urlImports\",\"description\":\"Configure Next.js to allow importing modules from external URLs.\",\"path\":\"app/api-reference/config/next-config-js/urlImports\",\"version\":\"experimental\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/urlImports.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"useLightningcss\",\"description\":\"Enable experimental support for Lightning CSS.\",\"path\":\"app/api-reference/config/next-config-js/useLightningcss\",\"version\":\"experimental\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/useLightningcss.mdx\",\"children\":[],\"lastModified\":\"2026-03-11\"},{\"title\":\"viewTransition\",\"description\":\"Enable ViewTransition API from React in App Router\",\"path\":\"app/api-reference/config/next-config-js/viewTransition\",\"version\":\"experimental\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/viewTransition.mdx\",\"children\":[],\"lastModified\":\"2026-04-02\"},{\"title\":\"webpack\",\"description\":\"Learn how to customize the webpack config used by Next.js\",\"path\":\"app/api-reference/config/next-config-js/webpack\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/webpack.mdx\",\"children\":[],\"lastModified\":\"2025-10-17\"},{\"title\":\"webVitalsAttribution\",\"description\":\"Learn how to use the webVitalsAttribution option to pinpoint the source of Web Vitals issues.\",\"path\":\"app/api-reference/config/next-config-js/webVitalsAttribution\",\"version\":\"experimental\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/01-next-config-js/webVitalsAttribution.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"}],\"lastModified\":\"2025-11-04\"},{\"title\":\"TypeScript\",\"description\":\"Next.js provides a TypeScript-first development experience for building your React application.\",\"path\":\"app/api-reference/config/typescript\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/02-typescript.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"ESLint\",\"description\":\"Learn how to use and configure the ESLint plugin to catch common issues and problems in a Next.js application.\",\"path\":\"app/api-reference/config/eslint\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/05-config/03-eslint.mdx\",\"children\":[],\"lastModified\":\"2025-11-10\"}],\"lastModified\":\"2025-06-16\"},{\"title\":\"CLI\",\"description\":\"API Reference for the Next.js Command Line Interface (CLI) tools.\",\"path\":\"app/api-reference/cli\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/06-cli/index.mdx\",\"children\":[{\"title\":\"create-next-app\",\"description\":\"Create Next.js apps using one command with the create-next-app CLI.\",\"path\":\"app/api-reference/cli/create-next-app\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/06-cli/create-next-app.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"next CLI\",\"description\":\"Learn how to run and build your application with the Next.js CLI.\",\"path\":\"app/api-reference/cli/next\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/06-cli/next.mdx\",\"children\":[],\"lastModified\":\"2026-05-13\"}],\"lastModified\":\"2025-06-16\"},{\"title\":\"Adapters\",\"description\":\"Build deployment adapters for Next.js platforms and infrastructure.\",\"path\":\"app/api-reference/adapters\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/07-adapters/index.mdx\",\"children\":[{\"title\":\"Configuration\",\"description\":\"Configure `adapterPath` or `NEXT_ADAPTER_PATH` to use a custom deployment adapter.\",\"path\":\"app/api-reference/adapters/configuration\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/07-adapters/01-configuration.mdx\",\"children\":[],\"lastModified\":\"2026-03-31\"},{\"title\":\"Creating an Adapter\",\"description\":\"Create an adapter module that implements the `NextAdapter` interface.\",\"path\":\"app/api-reference/adapters/creating-an-adapter\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/07-adapters/02-creating-an-adapter.mdx\",\"children\":[],\"lastModified\":\"2026-03-31\"},{\"title\":\"API Reference\",\"description\":\"Reference for `modifyConfig` and `onBuildComplete` in the `NextAdapter` interface.\",\"path\":\"app/api-reference/adapters/api-reference\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/07-adapters/03-api-reference.mdx\",\"children\":[],\"lastModified\":\"2026-03-31\"},{\"title\":\"Testing Adapters\",\"description\":\"Validate adapters with the Next.js compatibility test harness and custom lifecycle scripts.\",\"path\":\"app/api-reference/adapters/testing-adapters\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/07-adapters/04-testing-adapters.mdx\",\"children\":[],\"lastModified\":\"2026-04-02\"},{\"title\":\"Routing with @next/routing\",\"description\":\"Use `@next/routing` to apply Next.js route matching behavior in adapters.\",\"path\":\"app/api-reference/adapters/routing-with-next-routing\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/07-adapters/05-routing-with-next-routing.mdx\",\"children\":[],\"lastModified\":\"2026-04-02\"},{\"title\":\"Implementing PPR in an Adapter\",\"description\":\"Implement Partial Prerendering support in an adapter using fallback output and cache hooks.\",\"path\":\"app/api-reference/adapters/implementing-ppr-in-an-adapter\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/07-adapters/06-implementing-ppr-in-an-adapter.mdx\",\"children\":[],\"lastModified\":\"2026-03-31\"},{\"title\":\"Runtime Integration\",\"description\":\"Understand how build-time adapters and runtime cache interfaces work together.\",\"path\":\"app/api-reference/adapters/runtime-integration\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/07-adapters/07-runtime-integration.mdx\",\"children\":[],\"lastModified\":\"2026-03-31\"},{\"title\":\"Invoking Entrypoints\",\"description\":\"Invoke Node.js and Edge build entrypoints with adapter runtime context.\",\"path\":\"app/api-reference/adapters/invoking-entrypoints\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/07-adapters/08-invoking-entrypoints.mdx\",\"children\":[],\"lastModified\":\"2026-03-31\"},{\"title\":\"Output Types\",\"description\":\"Reference for all build output types exposed to adapters.\",\"path\":\"app/api-reference/adapters/output-types\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/07-adapters/09-output-types.mdx\",\"children\":[],\"lastModified\":\"2026-04-02\"},{\"title\":\"Routing Information\",\"description\":\"Reference for routing phases and route fields exposed in `onBuildComplete`.\",\"path\":\"app/api-reference/adapters/routing-information\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/07-adapters/10-routing-information.mdx\",\"children\":[],\"lastModified\":\"2026-03-31\"},{\"title\":\"Use Cases\",\"description\":\"Common patterns and examples for deployment adapter implementations.\",\"path\":\"app/api-reference/adapters/use-cases\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/07-adapters/11-use-cases.mdx\",\"children\":[],\"lastModified\":\"2026-03-31\"}],\"lastModified\":\"2026-03-31\"},{\"title\":\"Edge Runtime\",\"description\":\"API Reference for the Edge Runtime.\",\"path\":\"app/api-reference/edge\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/07-edge.mdx\",\"children\":[],\"lastModified\":\"2026-02-02\"},{\"title\":\"Turbopack\",\"description\":\"Turbopack is an incremental bundler optimized for JavaScript and TypeScript, written in Rust, and built into Next.js.\",\"path\":\"app/api-reference/turbopack\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/03-api-reference/08-turbopack.mdx\",\"children\":[],\"lastModified\":\"2026-05-31\"}],\"lastModified\":\"2025-06-16\"},{\"title\":\"Glossary\",\"description\":\"A glossary of common terms used in Next.js.\",\"path\":\"app/glossary\",\"version\":\"$undefined\",\"source\":\"docs/stable/01-app/04-glossary.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"Getting Started\",\"description\":\"Learn how to create full-stack web applications with Next.js with the Pages Router.\",\"path\":\"pages/getting-started\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/01-getting-started/index.mdx\",\"children\":[{\"title\":\"Installation\",\"description\":\"How to create a new Next.js application with `create-next-app`. Set up TypeScript, ESLint,and configure your `next.config.js` file.\",\"path\":\"pages/getting-started/installation\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/01-getting-started/01-installation.mdx\",\"children\":[],\"lastModified\":\"2024-11-06\"},{\"title\":\"Project Structure\",\"description\":\"Learn about the folder and file conventions in a Next.js project, and how to organize your project.\",\"path\":\"pages/getting-started/project-structure\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/01-getting-started/02-project-structure.mdx\",\"children\":[],\"lastModified\":\"2024-11-07\"},{\"title\":\"Images\",\"description\":\"Optimize your images with the built-in `next/image` component.\",\"path\":\"pages/getting-started/images\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/01-getting-started/04-images.mdx\",\"children\":[],\"lastModified\":\"2025-05-08\"},{\"title\":\"Fonts\",\"description\":\"Learn how to use fonts in Next.js\",\"path\":\"pages/getting-started/fonts\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/01-getting-started/05-fonts.mdx\",\"children\":[],\"lastModified\":\"2025-05-08\"},{\"title\":\"CSS\",\"description\":\"Learn about the different ways to add CSS to your application, including CSS Modules, Global CSS, Tailwind CSS, and more.\",\"path\":\"pages/getting-started/css\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/01-getting-started/06-css.mdx\",\"children\":[],\"lastModified\":\"2025-08-06\"},{\"title\":\"Deploying\",\"description\":\"Learn how to deploy your Next.js application.\",\"path\":\"pages/getting-started/deploying\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/01-getting-started/11-deploying.mdx\",\"children\":[],\"lastModified\":\"2025-04-22\"}],\"lastModified\":\"2024-11-07\"},{\"title\":\"Guides\",\"description\":\"Learn how to implement common UI patterns and use cases using Next.js\",\"path\":\"pages/guides\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/index.mdx\",\"children\":[{\"title\":\"Analytics\",\"description\":\"Measure and track page performance using Next.js\",\"path\":\"pages/guides/analytics\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/analytics.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"Authentication\",\"description\":\"Learn how to implement authentication in Next.js, covering best practices, securing routes, authorization techniques, and session management.\",\"path\":\"pages/guides/authentication\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/authentication.mdx\",\"children\":[],\"lastModified\":\"2025-04-22\"},{\"title\":\"Babel\",\"description\":\"Extend the babel preset added by Next.js with your own configs.\",\"path\":\"pages/guides/babel\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/babel.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"CI Build Caching\",\"description\":\"Learn how to configure CI to cache Next.js builds\",\"path\":\"pages/guides/ci-build-caching\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/ci-build-caching.mdx\",\"children\":[],\"lastModified\":\"2025-04-22\"},{\"title\":\"Content Security Policy\",\"description\":\"Learn how to set a Content Security Policy (CSP) for your Next.js application.\",\"path\":\"pages/guides/content-security-policy\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/content-security-policy.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"CSS-in-JS\",\"description\":\"Use CSS-in-JS libraries with Next.js\",\"path\":\"pages/guides/css-in-js\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/css-in-js.mdx\",\"children\":[],\"lastModified\":\"2025-04-25\"},{\"title\":\"Custom Server\",\"description\":\"Start a Next.js app programmatically using a custom server.\",\"path\":\"pages/guides/custom-server\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/custom-server.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"Debugging\",\"description\":\"Learn how to debug your Next.js application with VS Code or Chrome DevTools.\",\"path\":\"pages/guides/debugging\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/debugging.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"Draft Mode\",\"description\":\"Next.js has draft mode to toggle between static and dynamic pages. You can learn how it works with Pages Router.\",\"path\":\"pages/guides/draft-mode\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/draft-mode.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"Environment Variables\",\"description\":\"Learn to add and access environment variables in your Next.js application.\",\"path\":\"pages/guides/environment-variables\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/environment-variables.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"Forms\",\"description\":\"Learn how to handle form submissions and data mutations with Next.js.\",\"path\":\"pages/guides/forms\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/forms.mdx\",\"children\":[],\"lastModified\":\"2026-02-24\"},{\"title\":\"ISR\",\"description\":\"Learn how to create or update static pages at runtime with Incremental Static Regeneration.\",\"path\":\"pages/guides/incremental-static-regeneration\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/incremental-static-regeneration.mdx\",\"children\":[],\"lastModified\":\"2025-05-21\"},{\"title\":\"Instrumentation\",\"description\":\"Learn how to use instrumentation to run code at server startup in your Next.js app\",\"path\":\"pages/guides/instrumentation\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/instrumentation.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"Internationalization\",\"description\":\"Next.js has built-in support for internationalized routing and language detection. Learn more here.\",\"path\":\"pages/guides/internationalization\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/internationalization.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"Lazy Loading\",\"description\":\"Lazy load imported libraries and React Components to improve your application's overall loading performance.\",\"path\":\"pages/guides/lazy-loading\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/lazy-loading.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"MDX\",\"description\":\"Learn how to configure MDX to write JSX in your markdown files.\",\"path\":\"pages/guides/mdx\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/mdx.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"Migrating\",\"description\":\"Learn how to migrate from popular frameworks to Next.js\",\"path\":\"pages/guides/migrating\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/migrating/index.mdx\",\"children\":[{\"title\":\"App Router\",\"description\":\"Learn how to upgrade your existing Next.js application from the Pages Router to the App Router.\",\"path\":\"pages/guides/migrating/app-router-migration\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/migrating/app-router-migration.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Create React App\",\"description\":\"Learn how to migrate your existing React application from Create React App to Next.js.\",\"path\":\"pages/guides/migrating/from-create-react-app\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/migrating/from-create-react-app.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Vite\",\"description\":\"Learn how to migrate your existing React application from Vite to Next.js.\",\"path\":\"pages/guides/migrating/from-vite\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/migrating/from-vite.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"}],\"lastModified\":\"2025-04-15\"},{\"title\":\"Multi-Zones\",\"description\":\"Learn how to build micro-frontends using Next.js Multi-Zones to deploy multiple Next.js apps under a single domain.\",\"path\":\"pages/guides/multi-zones\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/multi-zones.mdx\",\"children\":[],\"lastModified\":\"2025-04-16\"},{\"title\":\"OpenTelemetry\",\"description\":\"Learn how to instrument your Next.js app with OpenTelemetry.\",\"path\":\"pages/guides/open-telemetry\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/open-telemetry.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"Package Bundling\",\"description\":\"Learn how to optimize your application's server and client bundles.\",\"path\":\"pages/guides/package-bundling\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/package-bundling.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"PostCSS\",\"description\":\"Extend the PostCSS config and plugins added by Next.js with your own.\",\"path\":\"pages/guides/post-css\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/post-css.mdx\",\"children\":[],\"lastModified\":\"2025-05-12\"},{\"title\":\"Preview Mode\",\"description\":\"Next.js has the preview mode for statically generated pages. You can learn how it works here.\",\"path\":\"pages/guides/preview-mode\",\"version\":\"legacy\",\"source\":\"docs/stable/02-pages/02-guides/preview-mode.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"Production\",\"description\":\"Recommendations to ensure the best performance and user experience before taking your Next.js application to production.\",\"path\":\"pages/guides/production-checklist\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/production-checklist.mdx\",\"children\":[],\"lastModified\":\"2025-04-17\"},{\"title\":\"Redirecting\",\"description\":\"Learn the different ways to handle redirects in Next.js.\",\"path\":\"pages/guides/redirecting\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/redirecting.mdx\",\"children\":[],\"lastModified\":\"2025-05-27\"},{\"title\":\"Sass\",\"description\":\"Learn how to use Sass in your Next.js application.\",\"path\":\"pages/guides/sass\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/sass.mdx\",\"children\":[],\"lastModified\":\"2025-04-25\"},{\"title\":\"Scripts\",\"description\":\"Optimize 3rd party scripts with the built-in Script component.\",\"path\":\"pages/guides/scripts\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/scripts.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"Self-Hosting\",\"description\":\"Learn how to self-host your Next.js application on a Node.js server, Docker image, or static HTML files (static exports).\",\"path\":\"pages/guides/self-hosting\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/self-hosting.mdx\",\"children\":[],\"lastModified\":\"2025-04-22\"},{\"title\":\"Static Exports\",\"description\":\"Next.js enables starting as a static site or Single-Page Application (SPA), then later optionally upgrading to use features that require a server.\",\"path\":\"pages/guides/static-exports\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/static-exports.mdx\",\"children\":[],\"lastModified\":\"2025-05-12\"},{\"title\":\"Tailwind CSS\",\"description\":\"Style your Next.js Application using Tailwind CSS.\",\"path\":\"pages/guides/tailwind-v3-css\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/tailwind-v3-css.mdx\",\"children\":[],\"lastModified\":\"2025-08-06\"},{\"title\":\"Testing\",\"description\":\"Learn how to set up Next.js with three commonly used testing tools — Cypress, Playwright, Vitest, and Jest.\",\"path\":\"pages/guides/testing\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/testing/index.mdx\",\"children\":[{\"title\":\"Cypress\",\"description\":\"Learn how to set up Next.js with Cypress for End-to-End (E2E) and Component Testing.\",\"path\":\"pages/guides/testing/cypress\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/testing/cypress.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"Jest\",\"description\":\"Learn how to set up Next.js with Jest for Unit Testing.\",\"path\":\"pages/guides/testing/jest\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/testing/jest.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"Playwright\",\"description\":\"Learn how to set up Next.js with Playwright for End-to-End (E2E) and Integration testing.\",\"path\":\"pages/guides/testing/playwright\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/testing/playwright.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"Vitest\",\"description\":\"Learn how to set up Next.js with Vitest and React Testing Library - two popular unit testing libraries.\",\"path\":\"pages/guides/testing/vitest\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/testing/vitest.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"}],\"lastModified\":\"2025-04-24\"},{\"title\":\"Third Party Libraries\",\"description\":\"Optimize the performance of third-party libraries in your application with the `@next/third-parties` package.\",\"path\":\"pages/guides/third-party-libraries\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/third-party-libraries.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"Upgrading\",\"description\":\"Learn how to upgrade to the latest versions of Next.js.\",\"path\":\"pages/guides/upgrading\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/upgrading/index.mdx\",\"children\":[{\"title\":\"Codemods\",\"description\":\"Use codemods to upgrade your Next.js codebase when new features are released.\",\"path\":\"pages/guides/upgrading/codemods\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/upgrading/codemods.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Version 10\",\"description\":\"Upgrade your Next.js Application from Version 9 to Version 10.\",\"path\":\"pages/guides/upgrading/version-10\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/upgrading/version-10.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Version 11\",\"description\":\"Upgrade your Next.js Application from Version 10 to Version 11.\",\"path\":\"pages/guides/upgrading/version-11\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/upgrading/version-11.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"Version 12\",\"description\":\"Upgrade your Next.js Application from Version 11 to Version 12.\",\"path\":\"pages/guides/upgrading/version-12\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/upgrading/version-12.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"Version 13\",\"description\":\"Upgrade your Next.js Application from Version 12 to 13.\",\"path\":\"pages/guides/upgrading/version-13\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/upgrading/version-13.mdx\",\"children\":[],\"lastModified\":\"2025-06-16\"},{\"title\":\"Version 14\",\"description\":\"Upgrade your Next.js Application from Version 13 to 14.\",\"path\":\"pages/guides/upgrading/version-14\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/upgrading/version-14.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Version 9\",\"description\":\"Upgrade your Next.js Application from Version 8 to Version 9.\",\"path\":\"pages/guides/upgrading/version-9\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/02-guides/upgrading/version-9.mdx\",\"children\":[],\"lastModified\":\"2025-04-25\"}],\"lastModified\":\"2025-04-15\"}],\"lastModified\":\"2025-04-15\"},{\"title\":\"Building Your Application\",\"description\":\"Learn how to use Next.js features to build your application.\",\"path\":\"pages/building-your-application\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/03-building-your-application/index.mdx\",\"children\":[{\"title\":\"Routing\",\"description\":\"Learn the fundamentals of routing for front-end applications with the Pages Router.\",\"path\":\"pages/building-your-application/routing\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/03-building-your-application/01-routing/index.mdx\",\"children\":[{\"title\":\"Pages and Layouts\",\"description\":\"Create your first page and shared layout with the Pages Router.\",\"path\":\"pages/building-your-application/routing/pages-and-layouts\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/03-building-your-application/01-routing/01-pages-and-layouts.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Dynamic Routes\",\"description\":\"Dynamic Routes are pages that allow you to add custom params to your URLs. Start creating Dynamic Routes and learn more here.\",\"path\":\"pages/building-your-application/routing/dynamic-routes\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/03-building-your-application/01-routing/02-dynamic-routes.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Linking and Navigating\",\"description\":\"Learn how navigation works in Next.js, and how to use the Link Component and `useRouter` hook.\",\"path\":\"pages/building-your-application/routing/linking-and-navigating\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/03-building-your-application/01-routing/03-linking-and-navigating.mdx\",\"children\":[],\"lastModified\":\"2025-10-17\"},{\"title\":\"Custom App\",\"description\":\"Control page initialization and add a layout that persists for all pages by overriding the default App component used by Next.js.\",\"path\":\"pages/building-your-application/routing/custom-app\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/03-building-your-application/01-routing/05-custom-app.mdx\",\"children\":[],\"lastModified\":\"2025-05-27\"},{\"title\":\"Custom Document\",\"description\":\"Extend the default document markup added by Next.js.\",\"path\":\"pages/building-your-application/routing/custom-document\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/03-building-your-application/01-routing/06-custom-document.mdx\",\"children\":[],\"lastModified\":\"2025-05-27\"},{\"title\":\"API Routes\",\"description\":\"Next.js supports API Routes, which allow you to build your API without leaving your Next.js app. Learn how it works here.\",\"path\":\"pages/building-your-application/routing/api-routes\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/03-building-your-application/01-routing/07-api-routes.mdx\",\"children\":[],\"lastModified\":\"2026-02-13\"},{\"title\":\"Custom Errors\",\"description\":\"Override and extend the built-in Error page to handle custom errors.\",\"path\":\"pages/building-your-application/routing/custom-error\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/03-building-your-application/01-routing/08-custom-error.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"}],\"lastModified\":\"2025-04-15\"},{\"title\":\"Rendering\",\"description\":\"Learn the fundamentals of rendering in React and Next.js.\",\"path\":\"pages/building-your-application/rendering\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/03-building-your-application/02-rendering/index.mdx\",\"children\":[{\"title\":\"Server-side Rendering (SSR)\",\"description\":\"Use Server-side Rendering to render pages on each request.\",\"path\":\"pages/building-your-application/rendering/server-side-rendering\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/03-building-your-application/02-rendering/01-server-side-rendering.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"Static Site Generation (SSG)\",\"description\":\"Use Static Site Generation (SSG) to prerender pages at build time.\",\"path\":\"pages/building-your-application/rendering/static-site-generation\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/03-building-your-application/02-rendering/02-static-site-generation.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"Automatic Static Optimization\",\"description\":\"Next.js automatically optimizes your app to be static HTML whenever possible. Learn how it works here.\",\"path\":\"pages/building-your-application/rendering/automatic-static-optimization\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/03-building-your-application/02-rendering/04-automatic-static-optimization.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Client-side Rendering (CSR)\",\"description\":\"Learn how to implement client-side rendering in the Pages Router.\",\"path\":\"pages/building-your-application/rendering/client-side-rendering\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/03-building-your-application/02-rendering/05-client-side-rendering.mdx\",\"children\":[],\"lastModified\":\"2025-06-06\"}],\"lastModified\":\"2026-03-03\"},{\"title\":\"Data Fetching\",\"description\":\"Next.js allows you to fetch data in multiple ways, with prerendering, server-side rendering or static-site generation, and incremental static regeneration. Learn how to manage your application data in Next.js.\",\"path\":\"pages/building-your-application/data-fetching\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/03-building-your-application/03-data-fetching/index.mdx\",\"children\":[{\"title\":\"getStaticProps\",\"description\":\"Fetch data and generate static pages with `getStaticProps`. Learn more about this API for data fetching in Next.js.\",\"path\":\"pages/building-your-application/data-fetching/get-static-props\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/03-building-your-application/03-data-fetching/01-get-static-props.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"getStaticPaths\",\"description\":\"Fetch data and generate static pages with `getStaticPaths`. Learn more about this API for data fetching in Next.js.\",\"path\":\"pages/building-your-application/data-fetching/get-static-paths\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/03-building-your-application/03-data-fetching/02-get-static-paths.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"getServerSideProps\",\"description\":\"Fetch data on each request with `getServerSideProps`.\",\"path\":\"pages/building-your-application/data-fetching/get-server-side-props\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/03-building-your-application/03-data-fetching/03-get-server-side-props.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"Client-side Fetching\",\"description\":\"Learn about client-side data fetching, and how to use SWR, a data fetching React Hook library that handles caching, revalidation, focus tracking, refetching on interval and more.\",\"path\":\"pages/building-your-application/data-fetching/client-side\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/03-building-your-application/03-data-fetching/05-client-side.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"}],\"lastModified\":\"2026-03-03\"},{\"title\":\"Configuring\",\"description\":\"Learn how to configure your Next.js application.\",\"path\":\"pages/building-your-application/configuring\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/03-building-your-application/06-configuring/index.mdx\",\"children\":[{\"title\":\"Error Handling\",\"description\":\"Handle errors in your Next.js app.\",\"path\":\"pages/building-your-application/configuring/error-handling\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/03-building-your-application/06-configuring/12-error-handling.mdx\",\"children\":[],\"lastModified\":\"2026-05-13\"}],\"lastModified\":\"2025-04-24\"}],\"lastModified\":\"2025-06-16\"},{\"title\":\"API Reference\",\"description\":\"Next.js API Reference for the Pages Router.\",\"path\":\"pages/api-reference\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/index.mdx\",\"children\":[{\"title\":\"Components\",\"description\":\"API Reference for Next.js built-in components in the Pages Router.\",\"path\":\"pages/api-reference/components\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/01-components/index.mdx\",\"children\":[{\"title\":\"Font\",\"description\":\"API Reference for the Font Module\",\"path\":\"pages/api-reference/components/font\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/01-components/font.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Form\",\"description\":\"Learn how to use the `\u003cForm\u003e` component to handle form submissions and search params updates with client-side navigation.\",\"path\":\"pages/api-reference/components/form\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/01-components/form.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Head\",\"description\":\"Add custom elements to the `head` of your page with the built-in Head component.\",\"path\":\"pages/api-reference/components/head\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/01-components/head.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"},{\"title\":\"Image\",\"description\":\"Optimize Images in your Next.js Application using the built-in `next/image` Component.\",\"path\":\"pages/api-reference/components/image\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/01-components/image.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Image (Legacy)\",\"description\":\"Backwards compatible Image Optimization with the Legacy Image component.\",\"path\":\"pages/api-reference/components/image-legacy\",\"version\":\"legacy\",\"source\":\"docs/stable/02-pages/04-api-reference/01-components/image-legacy.mdx\",\"children\":[],\"lastModified\":\"2026-02-02\"},{\"title\":\"Link\",\"description\":\"API reference for the `\u003cLink\u003e` component.\",\"path\":\"pages/api-reference/components/link\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/01-components/link.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Script\",\"description\":\"Optimize third-party scripts in your Next.js application using the built-in `next/script` Component.\",\"path\":\"pages/api-reference/components/script\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/01-components/script.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"}],\"lastModified\":\"2025-04-15\"},{\"title\":\"File-system conventions\",\"description\":\"API Reference for Next.js file-system conventions.\",\"path\":\"pages/api-reference/file-conventions\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/02-file-conventions/index.mdx\",\"children\":[{\"title\":\"instrumentation.js\",\"description\":\"API reference for the instrumentation.js file.\",\"path\":\"pages/api-reference/file-conventions/instrumentation\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/02-file-conventions/instrumentation.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Proxy\",\"description\":\"Learn how to use Proxy to run code before a request is completed.\",\"path\":\"pages/api-reference/file-conventions/proxy\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/02-file-conventions/proxy.mdx\",\"children\":[],\"lastModified\":\"2025-10-17\"},{\"title\":\"public\",\"description\":\"Next.js allows you to serve static files, like images, in the public directory. You can learn how it works here.\",\"path\":\"pages/api-reference/file-conventions/public-folder\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/02-file-conventions/public-folder.mdx\",\"children\":[],\"lastModified\":\"2025-04-25\"},{\"title\":\"src Directory\",\"description\":\"Save pages under the `src` folder as an alternative to the root `pages` directory.\",\"path\":\"pages/api-reference/file-conventions/src-folder\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/02-file-conventions/src-folder.mdx\",\"children\":[],\"lastModified\":\"2025-04-24\"}],\"lastModified\":\"2025-04-24\"},{\"title\":\"Functions\",\"description\":\"API Reference for Functions and Hooks in Pages Router.\",\"path\":\"pages/api-reference/functions\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/03-functions/index.mdx\",\"children\":[{\"title\":\"getInitialProps\",\"description\":\"Fetch dynamic data on the server for your React component with getInitialProps.\",\"path\":\"pages/api-reference/functions/get-initial-props\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/03-functions/get-initial-props.mdx\",\"children\":[],\"lastModified\":\"2025-11-24\"},{\"title\":\"getServerSideProps\",\"description\":\"API reference for `getServerSideProps`. Learn how to fetch data on each request with Next.js.\",\"path\":\"pages/api-reference/functions/get-server-side-props\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/03-functions/get-server-side-props.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"getStaticPaths\",\"description\":\"API reference for `getStaticPaths`. Learn how to fetch data and generate static pages with `getStaticPaths`.\",\"path\":\"pages/api-reference/functions/get-static-paths\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/03-functions/get-static-paths.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"getStaticProps\",\"description\":\"API reference for `getStaticProps`. Learn how to use `getStaticProps` to generate static pages with Next.js.\",\"path\":\"pages/api-reference/functions/get-static-props\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/03-functions/get-static-props.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"NextRequest\",\"description\":\"API Reference for NextRequest.\",\"path\":\"pages/api-reference/functions/next-request\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/03-functions/next-request.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"NextResponse\",\"description\":\"API Reference for NextResponse.\",\"path\":\"pages/api-reference/functions/next-response\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/03-functions/next-response.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"useParams\",\"description\":\"API Reference for the useParams hook in the Pages Router.\",\"path\":\"pages/api-reference/functions/use-params\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/03-functions/use-params.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"useReportWebVitals\",\"description\":\"useReportWebVitals\",\"path\":\"pages/api-reference/functions/use-report-web-vitals\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/03-functions/use-report-web-vitals.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"useRouter\",\"description\":\"Learn more about the API of the Next.js Router, and access the router instance in your page with the useRouter hook.\",\"path\":\"pages/api-reference/functions/use-router\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/03-functions/use-router.mdx\",\"children\":[],\"lastModified\":\"2026-02-02\"},{\"title\":\"useSearchParams\",\"description\":\"API Reference for the useSearchParams hook in the Pages Router.\",\"path\":\"pages/api-reference/functions/use-search-params\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/03-functions/use-search-params.mdx\",\"children\":[],\"lastModified\":\"2026-03-03\"},{\"title\":\"userAgent\",\"description\":\"The userAgent helper extends the Web Request API with additional properties and methods to interact with the user agent object from the request.\",\"path\":\"pages/api-reference/functions/userAgent\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/03-functions/userAgent.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"}],\"lastModified\":\"2025-04-15\"},{\"title\":\"Configuration\",\"description\":\"Learn how to configure your Next.js application.\",\"path\":\"pages/api-reference/config\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/index.mdx\",\"children\":[{\"title\":\"next.config.js Options\",\"description\":\"Learn about the options available in next.config.js for the Pages Router.\",\"path\":\"pages/api-reference/config/next-config-js\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/index.mdx\",\"children\":[{\"title\":\"adapterPath\",\"description\":\"Configure a custom adapter for Next.js to hook into the build process.\",\"path\":\"pages/api-reference/config/next-config-js/adapterPath\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/adapterPath.mdx\",\"children\":[],\"lastModified\":\"2026-03-31\"},{\"title\":\"allowedDevOrigins\",\"description\":\"Use `allowedDevOrigins` to configure additional origins that can request the dev server.\",\"path\":\"pages/api-reference/config/next-config-js/allowedDevOrigins\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/allowedDevOrigins.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"assetPrefix\",\"description\":\"Learn how to use the assetPrefix config option to configure your CDN.\",\"path\":\"pages/api-reference/config/next-config-js/assetPrefix\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/assetPrefix.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"basePath\",\"description\":\"Use `basePath` to deploy a Next.js application under a sub-path of a domain.\",\"path\":\"pages/api-reference/config/next-config-js/basePath\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/basePath.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"bundlePagesRouterDependencies\",\"description\":\"Enable automatic dependency bundling for Pages Router\",\"path\":\"pages/api-reference/config/next-config-js/bundlePagesRouterDependencies\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/bundlePagesRouterDependencies.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"compress\",\"description\":\"Next.js provides gzip compression to compress rendered content and static files, it only works with the server target. Learn more about it here.\",\"path\":\"pages/api-reference/config/next-config-js/compress\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/compress.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"crossOrigin\",\"description\":\"Use the `crossOrigin` option to add a crossOrigin tag on the `script` tags generated by `next/script` and `next/head`.\",\"path\":\"pages/api-reference/config/next-config-js/crossOrigin\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/crossOrigin.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"deploymentId\",\"description\":\"Configure a deployment identifier used for version skew protection and cache busting.\",\"path\":\"pages/api-reference/config/next-config-js/deploymentId\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/deploymentId.mdx\",\"children\":[],\"lastModified\":\"2026-02-12\"},{\"title\":\"devIndicators\",\"description\":\"Optimized pages include an indicator to let you know if it's being statically optimized. You can opt-out of it here.\",\"path\":\"pages/api-reference/config/next-config-js/devIndicators\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/devIndicators.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"distDir\",\"description\":\"Set a custom build directory to use instead of the default .next directory.\",\"path\":\"pages/api-reference/config/next-config-js/distDir\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/distDir.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"env\",\"description\":\"Learn to add and access environment variables in your Next.js application at build time.\",\"path\":\"pages/api-reference/config/next-config-js/env\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/env.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"exportPathMap\",\"description\":\"Customize the pages that will be exported as HTML files when using `next export`.\",\"path\":\"pages/api-reference/config/next-config-js/exportPathMap\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/exportPathMap.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"generateBuildId\",\"description\":\"Configure the build id, which is used to identify the current build in which your application is being served.\",\"path\":\"pages/api-reference/config/next-config-js/generateBuildId\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/generateBuildId.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"generateEtags\",\"description\":\"Next.js will generate etags for every page by default. Learn more about how to disable etag generation here.\",\"path\":\"pages/api-reference/config/next-config-js/generateEtags\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/generateEtags.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"headers\",\"description\":\"Add custom HTTP headers to your Next.js app.\",\"path\":\"pages/api-reference/config/next-config-js/headers\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/headers.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"httpAgentOptions\",\"description\":\"Next.js will automatically use HTTP Keep-Alive by default. Learn more about how to disable HTTP Keep-Alive here.\",\"path\":\"pages/api-reference/config/next-config-js/httpAgentOptions\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/httpAgentOptions.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"images\",\"description\":\"Custom configuration for the next/image loader\",\"path\":\"pages/api-reference/config/next-config-js/images\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/images.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"logging\",\"description\":\"Configure logging behavior in the terminal when running Next.js in development mode.\",\"path\":\"pages/api-reference/config/next-config-js/logging\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/logging.mdx\",\"children\":[],\"lastModified\":\"2026-02-12\"},{\"title\":\"onDemandEntries\",\"description\":\"Configure how Next.js will dispose and keep in memory pages created in development.\",\"path\":\"pages/api-reference/config/next-config-js/onDemandEntries\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/onDemandEntries.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"optimizePackageImports\",\"description\":\"API Reference for optimizePackageImports Next.js Config Option\",\"path\":\"pages/api-reference/config/next-config-js/optimizePackageImports\",\"version\":\"experimental\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/optimizePackageImports.mdx\",\"children\":[],\"lastModified\":\"2025-12-19\"},{\"title\":\"output\",\"description\":\"Next.js automatically traces which files are needed by each page to allow for easy deployment of your application. Learn how it works here.\",\"path\":\"pages/api-reference/config/next-config-js/output\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/output.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"pageExtensions\",\"description\":\"Extend the default page extensions used by Next.js when resolving pages in the Pages Router.\",\"path\":\"pages/api-reference/config/next-config-js/pageExtensions\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/pageExtensions.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"poweredByHeader\",\"description\":\"Next.js will add the `x-powered-by` header by default. Learn to opt-out of it here.\",\"path\":\"pages/api-reference/config/next-config-js/poweredByHeader\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/poweredByHeader.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"productionBrowserSourceMaps\",\"description\":\"Enables browser source map generation during the production build.\",\"path\":\"pages/api-reference/config/next-config-js/productionBrowserSourceMaps\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/productionBrowserSourceMaps.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"experimental.proxyClientMaxBodySize\",\"description\":\"Configure the maximum request body size when using proxy.\",\"path\":\"pages/api-reference/config/next-config-js/proxyClientMaxBodySize\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/proxyClientMaxBodySize.mdx\",\"children\":[],\"lastModified\":\"2025-10-17\"},{\"title\":\"reactStrictMode\",\"description\":\"The complete Next.js runtime is now Strict Mode-compliant, learn how to opt-in\",\"path\":\"pages/api-reference/config/next-config-js/reactStrictMode\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/reactStrictMode.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"redirects\",\"description\":\"Add redirects to your Next.js app.\",\"path\":\"pages/api-reference/config/next-config-js/redirects\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/redirects.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"rewrites\",\"description\":\"Add rewrites to your Next.js app.\",\"path\":\"pages/api-reference/config/next-config-js/rewrites\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/rewrites.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"serverExternalPackages\",\"description\":\"Opt-out specific dependencies from the dependency bundling enabled by `bundlePagesRouterDependencies`.\",\"path\":\"pages/api-reference/config/next-config-js/serverExternalPackages\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/serverExternalPackages.mdx\",\"children\":[],\"lastModified\":\"2025-12-05\"},{\"title\":\"trailingSlash\",\"description\":\"Configure Next.js pages to resolve with or without a trailing slash.\",\"path\":\"pages/api-reference/config/next-config-js/trailingSlash\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/trailingSlash.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"transpilePackages\",\"description\":\"Automatically transpile and bundle dependencies from local packages (like monorepos) or from external dependencies (`node_modules`).\",\"path\":\"pages/api-reference/config/next-config-js/transpilePackages\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/transpilePackages.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"turbopack\",\"description\":\"Configure Next.js with Turbopack-specific options\",\"path\":\"pages/api-reference/config/next-config-js/turbopack\",\"version\":\"experimental\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/turbopack.mdx\",\"children\":[],\"lastModified\":\"2025-09-22\"},{\"title\":\"typescript\",\"description\":\"Next.js reports TypeScript errors by default. Learn to opt-out of this behavior here.\",\"path\":\"pages/api-reference/config/next-config-js/typescript\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/typescript.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"urlImports\",\"description\":\"Configure Next.js to allow importing modules from external URLs.\",\"path\":\"pages/api-reference/config/next-config-js/urlImports\",\"version\":\"experimental\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/urlImports.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"useLightningcss\",\"description\":\"Enable experimental support for Lightning CSS.\",\"path\":\"pages/api-reference/config/next-config-js/useLightningcss\",\"version\":\"experimental\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/useLightningcss.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"webpack\",\"description\":\"Learn how to customize the webpack config used by Next.js\",\"path\":\"pages/api-reference/config/next-config-js/webpack\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/webpack.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"webVitalsAttribution\",\"description\":\"Learn how to use the webVitalsAttribution option to pinpoint the source of Web Vitals issues.\",\"path\":\"pages/api-reference/config/next-config-js/webVitalsAttribution\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-next-config-js/webVitalsAttribution.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"}],\"lastModified\":\"2025-04-15\"},{\"title\":\"TypeScript\",\"description\":\"Next.js provides a TypeScript-first development experience for building your React application.\",\"path\":\"pages/api-reference/config/typescript\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/01-typescript.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"ESLint\",\"description\":\"Next.js reports ESLint errors and warnings during builds by default. Learn how to opt-out of this behavior here.\",\"path\":\"pages/api-reference/config/eslint\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/04-config/02-eslint.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"}],\"lastModified\":\"2025-04-15\"},{\"title\":\"CLI\",\"description\":\"API Reference for the Next.js Command Line Interface (CLI) tools.\",\"path\":\"pages/api-reference/cli\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/05-cli/index.mdx\",\"children\":[{\"title\":\"create-next-app CLI\",\"description\":\"Create Next.js apps using one command with the create-next-app CLI.\",\"path\":\"pages/api-reference/cli/create-next-app\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/05-cli/create-next-app.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"next CLI\",\"description\":\"Learn how to run and build your application with the Next.js CLI.\",\"path\":\"pages/api-reference/cli/next\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/05-cli/next.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"}],\"lastModified\":\"2025-04-15\"},{\"title\":\"Adapters\",\"description\":\"Build deployment adapters for Next.js platforms and infrastructure.\",\"path\":\"pages/api-reference/adapters\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/06-adapters/index.mdx\",\"children\":[{\"title\":\"Configuration\",\"description\":\"Configure `adapterPath` or `NEXT_ADAPTER_PATH` to use a custom deployment adapter.\",\"path\":\"pages/api-reference/adapters/configuration\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/06-adapters/01-configuration.mdx\",\"children\":[],\"lastModified\":\"2026-03-31\"},{\"title\":\"Creating an Adapter\",\"description\":\"Create an adapter module that implements the `NextAdapter` interface.\",\"path\":\"pages/api-reference/adapters/creating-an-adapter\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/06-adapters/02-creating-an-adapter.mdx\",\"children\":[],\"lastModified\":\"2026-03-31\"},{\"title\":\"API Reference\",\"description\":\"Reference for `modifyConfig` and `onBuildComplete` in the `NextAdapter` interface.\",\"path\":\"pages/api-reference/adapters/api-reference\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/06-adapters/03-api-reference.mdx\",\"children\":[],\"lastModified\":\"2026-03-31\"},{\"title\":\"Testing Adapters\",\"description\":\"Validate adapters with the Next.js compatibility test harness and custom lifecycle scripts.\",\"path\":\"pages/api-reference/adapters/testing-adapters\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/06-adapters/04-testing-adapters.mdx\",\"children\":[],\"lastModified\":\"2026-03-31\"},{\"title\":\"Routing with @next/routing\",\"description\":\"Use `@next/routing` to apply Next.js route matching behavior in adapters.\",\"path\":\"pages/api-reference/adapters/routing-with-next-routing\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/06-adapters/05-routing-with-next-routing.mdx\",\"children\":[],\"lastModified\":\"2026-03-31\"},{\"title\":\"Implementing PPR in an Adapter\",\"description\":\"Implement Partial Prerendering support in an adapter using fallback output and cache hooks.\",\"path\":\"pages/api-reference/adapters/implementing-ppr-in-an-adapter\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/06-adapters/06-implementing-ppr-in-an-adapter.mdx\",\"children\":[],\"lastModified\":\"2026-03-31\"},{\"title\":\"Runtime Integration\",\"description\":\"Understand how build-time adapters and runtime cache interfaces work together.\",\"path\":\"pages/api-reference/adapters/runtime-integration\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/06-adapters/07-runtime-integration.mdx\",\"children\":[],\"lastModified\":\"2026-03-31\"},{\"title\":\"Invoking Entrypoints\",\"description\":\"Invoke Node.js and Edge build entrypoints with adapter runtime context.\",\"path\":\"pages/api-reference/adapters/invoking-entrypoints\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/06-adapters/08-invoking-entrypoints.mdx\",\"children\":[],\"lastModified\":\"2026-03-31\"},{\"title\":\"Output Types\",\"description\":\"Reference for all build output types exposed to adapters.\",\"path\":\"pages/api-reference/adapters/output-types\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/06-adapters/09-output-types.mdx\",\"children\":[],\"lastModified\":\"2026-03-31\"},{\"title\":\"Routing Information\",\"description\":\"Reference for routing phases and route fields exposed in `onBuildComplete`.\",\"path\":\"pages/api-reference/adapters/routing-information\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/06-adapters/10-routing-information.mdx\",\"children\":[],\"lastModified\":\"2026-03-31\"},{\"title\":\"Use Cases\",\"description\":\"Common patterns and examples for deployment adapter implementations.\",\"path\":\"pages/api-reference/adapters/use-cases\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/06-adapters/11-use-cases.mdx\",\"children\":[],\"lastModified\":\"2026-03-31\"}],\"lastModified\":\"2026-03-31\"},{\"title\":\"Edge Runtime\",\"description\":\"API Reference for the Edge Runtime.\",\"path\":\"pages/api-reference/edge\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/06-edge.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"},{\"title\":\"Turbopack\",\"description\":\"Turbopack is an incremental bundler optimized for JavaScript and TypeScript, written in Rust, and built into Next.js.\",\"path\":\"pages/api-reference/turbopack\",\"version\":\"$undefined\",\"source\":\"docs/stable/02-pages/04-api-reference/08-turbopack.mdx\",\"children\":[],\"lastModified\":\"2025-04-15\"}],\"lastModified\":\"2025-04-15\"},{\"title\":\"Architecture\",\"description\":\"How Next.js Works\",\"path\":\"architecture\",\"version\":\"$undefined\",\"source\":\"docs/stable/03-architecture/index.mdx\",\"children\":[{\"title\":\"Accessibility\",\"description\":\"The built-in accessibility features of Next.js.\",\"path\":\"architecture/accessibility\",\"version\":\"$undefined\",\"source\":\"docs/stable/03-architecture/accessibility.mdx\",\"children\":[],\"lastModified\":\"2024-11-06\"},{\"title\":\"Fast Refresh\",\"description\":\"Fast Refresh is a hot module reloading experience that gives you instantaneous feedback on edits made to your React components.\",\"path\":\"architecture/fast-refresh\",\"version\":\"$undefined\",\"source\":\"docs/stable/03-architecture/fast-refresh.mdx\",\"children\":[],\"lastModified\":\"2025-10-27\"},{\"title\":\"Next.js Compiler\",\"description\":\"Next.js Compiler, written in Rust, which transforms and minifies your Next.js application.\",\"path\":\"architecture/nextjs-compiler\",\"version\":\"$undefined\",\"source\":\"docs/stable/03-architecture/nextjs-compiler.mdx\",\"children\":[],\"lastModified\":\"2025-05-19\"},{\"title\":\"Supported Browsers\",\"description\":\"Browser support and which JavaScript features are supported by Next.js.\",\"path\":\"architecture/supported-browsers\",\"version\":\"$undefined\",\"source\":\"docs/stable/03-architecture/supported-browsers.mdx\",\"children\":[],\"lastModified\":\"2025-10-01\"}],\"lastModified\":\"2024-11-06\"},{\"title\":\"Community\",\"description\":\"Get involved in the Next.js community.\",\"path\":\"community\",\"version\":\"$undefined\",\"source\":\"docs/stable/04-community/index.mdx\",\"children\":[{\"title\":\"Contribution Guide\",\"description\":\"Learn how to contribute to Next.js Documentation\",\"path\":\"community/contribution-guide\",\"version\":\"$undefined\",\"source\":\"docs/stable/04-community/01-contribution-guide.mdx\",\"children\":[],\"lastModified\":\"2026-06-23\"},{\"title\":\"Rspack\",\"description\":\"Use the `next-rspack` plugin to bundle your Next.js with Rspack.\",\"path\":\"community/rspack\",\"version\":\"experimental\",\"source\":\"docs/stable/04-community/02-rspack.mdx\",\"children\":[],\"lastModified\":\"2025-06-09\"}],\"lastModified\":\"2025-12-09\"}]},\"children\":[\"$L36\",\"$L37\"]}]]}]\n"])</script><script>self.__next_f.push([1,"14:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\n15:[\"$\",\"$1\",\"c\",{\"children\":[\"$L38\",[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/immutable/chunks/2k_16qb116v9d.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/immutable/chunks/34czdxd89m8hc.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L39\",null,{\"children\":[\"$\",\"$3a\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@3b\"}]}]]}]\n1a:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L3c\",null,{\"children\":\"$L3d\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L3e\",null,{\"children\":[\"$\",\"$3a\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L3f\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\n"])</script><script>self.__next_f.push([1,"40:I[797252,[\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"/_next/static/immutable/chunks/16yu5hnhikfuz.js\",\"/_next/static/immutable/chunks/36wnellv-yn9q.js\",\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"/_next/static/immutable/chunks/41mpz_qh0bqa2.js\",\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"/_next/static/immutable/chunks/33h268ieyla48.js\"],\"ExternalFooterLink\"]\n41:I[756205,[\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"/_next/static/immutable/chunks/16yu5hnhikfuz.js\",\"/_next/static/immutable/chunks/36wnellv-yn9q.js\",\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"/_next/static/immutable/chunks/41mpz_qh0bqa2.js\",\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"/_next/static/immutable/chunks/33h268ieyla48.js\"],\"NewsletterForm\"]\n43:I[962329,[\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"/_next/static/immutable/chunks/16yu5hnhikfuz.js\",\"/_next/static/immutable/chunks/36wnellv-yn9q.js\",\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"/_next/static/immutable/chunks/41mpz_qh0bqa2.js\",\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"/_next/static/immutable/chunks/33h268ieyla48.js\"],\"ThemeSwitcher\"]\n44:I[125350,[\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"/_next/static/immutable/chunks/16yu5hnhikfuz.js\",\"/_next/static/immutable/chunks/36wnellv-yn9q.js\",\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"/_next/static/immutable/chunks/41mpz_qh0bqa2.js\",\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"/_next/static/immutable/chunks/33h268ieyla48.js\"],\"Cmdk\"]\n45:I[28879,[\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"/_next/static/immutable/chunks/16yu5hnhikfuz.js\",\"/_next/static/immutable/chunks/36wnellv-yn9q.js\",\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"/_next/static/immutable/chunks/41mpz_qh0bqa2.js\",\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"/_next/static/immutable/chunks/33h268ieyla48.js\"],\"TrackPageView\"]\n46:I[328149,[\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"/_next/static/immutable/chunks/16yu5hnhikfuz.js\",\"/_next/static/immutable/chunks/36wnellv-yn9q.js\",\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"/_next/static/immutable/chunks/"])</script><script>self.__next_f.push([1,"41mpz_qh0bqa2.js\",\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"/_next/static/immutable/chunks/33h268ieyla48.js\",\"/_next/static/immutable/chunks/2rrj9zsrpzi4o.js\",\"/_next/static/immutable/chunks/3_xgjnhjj5nm_.js\"],\"MobileNav\"]\n47:I[296380,[\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"/_next/static/immutable/chunks/16yu5hnhikfuz.js\",\"/_next/static/immutable/chunks/36wnellv-yn9q.js\",\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"/_next/static/immutable/chunks/41mpz_qh0bqa2.js\",\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"/_next/static/immutable/chunks/33h268ieyla48.js\",\"/_next/static/immutable/chunks/2rrj9zsrpzi4o.js\",\"/_next/static/immutable/chunks/3_xgjnhjj5nm_.js\"],\"NavList\"]\n48:I[829183,[\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"/_next/static/immutable/chunks/16yu5hnhikfuz.js\",\"/_next/static/immutable/chunks/36wnellv-yn9q.js\",\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"/_next/static/immutable/chunks/41mpz_qh0bqa2.js\",\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"/_next/static/immutable/chunks/33h268ieyla48.js\",\"/_next/static/immutable/chunks/2rrj9zsrpzi4o.js\",\"/_next/static/immutable/chunks/3_xgjnhjj5nm_.js\"],\"SkipNavContent\"]\n17:C\n1e:300\n2c:[\"$\",\"div\",null,{\"children\":[[\"$\",\"h4\",null,{\"children\":\"Resources\"}],[\"$\",\"a\",null,{\"href\":\"/docs\",\"children\":\"Docs\"}],[\"$\",\"$L21\",null,{\"href\":\"/support-policy\",\"prefetch\":false,\"children\":\"Support Policy\"}],[\"$\",\"$L21\",null,{\"href\":\"/learn\",\"prefetch\":false,\"children\":\"Learn\"}],[\"$\",\"$L21\",null,{\"href\":\"/showcase\",\"prefetch\":false,\"children\":\"Showcase\"}],[\"$\",\"$L21\",null,{\"href\":\"/blog\",\"prefetch\":false,\"children\":\"Blog\"}],[\"$\",\"$L21\",null,{\"href\":\"/team\",\"prefetch\":false,\"children\":\"Team\"}],[\"$\",\"$3a\",null,{\"fallback\":null,\"children\":[\"$\",\"$L40\",null,{\"path\":\"/analytics\",\"children\":\"Analytics\"}]}],[\"$\",\"$L21\",null,{\"href\":\"/conf\",\"prefetch\":false,\"children\":\"Next.js Conf\"}],[\"$\",\"$3a\",null,{\"fallback\":null,\"children\":[\"$\",\"$L40\",null,{\"path\":\"/products/previews\",\"children\":\"Previews\"}]}],[\"$\",\"$L21\",null,{\"href\":\"/evals\",\"prefetch\":false,\"children\":\"Evals\"}]]}]\n2d:[\"$\",\"div\",null,{\"children\":[[\"$\",\"h4\",null,{\"children\":\"More\"}],[\"$\",\"$3a\",null,{\"fallback\":null,\"children\":[\"$\",\"$L40\",null,{\"path\":\"/templates/next.js/nextjs-commerce\",\"children\":\"Next.js Commerce\"}]}],[\"$\",\"$3a\",null,{\"fallback\":null,\"children\":[\"$\",\"$L40\",null,{\"path\":\"/contact/sales\",\"children\":\"Contact Sales\"}]}],[\"$\",\"a\",null,{\"href\":\"https://community.vercel.com\",\"rel\":\"noopener noreferrer\",\"target\":\"_blank\",\"children\":\"Community\"}],[\"$\",\"a\",null,{\"href\":\"https://github.com/vercel/next.js\",\"rel\":\"noopener noreferrer\",\"target\":\"_blank\",\"children\":\"GitHub\"}],[\"$\",\"a\",null,{\"href\":\"https://github.com/vercel/next.js/releases\",\"rel\":\"noopener noreferrer\",\"target\":\"_blank\",\"children\":\"Releases\"}],[\"$\",\"$L21\",null,{\"href\":\"/telemetry\",\"prefetch\":false,\"children\":\"Telemetry\"}],[\"$\",\"$L21\",null,{\"href\":\"/governance\",\"prefetch\":false,\"children\":\"Governance\"}],[\"$\",\"$L21\",null,{\"href\":\"/ecosystem-working-group\",\"prefetch\":false,\"children\":\"Ecosystem Working Group\"}]]}]\n2e:[\"$\",\"div\",null,{\"children\":[[\"$\",\"h4\",null,{\"children\":\"About Vercel\"}],[\"$\",\"$3a\",null,{\"fallback\":null,\"children\":[\"$\",\"$L40\",null,{\"path\":\"/solutions/nextjs\",\"children\":\"Ne"])</script><script>self.__next_f.push([1,"xt.js + Vercel\"}]}],[\"$\",\"$3a\",null,{\"fallback\":null,\"children\":[\"$\",\"$L40\",null,{\"path\":\"/oss\",\"children\":\"Open Source Software\"}]}],[\"$\",\"a\",null,{\"href\":\"https://github.com/vercel\",\"rel\":\"noopener noreferrer\",\"target\":\"_blank\",\"children\":\"GitHub\"}],[\"$\",\"a\",null,{\"href\":\"https://bsky.app/profile/vercel.com\",\"rel\":\"noopener noreferrer\",\"target\":\"_blank\",\"children\":\"Bluesky\"}],[\"$\",\"a\",null,{\"href\":\"https://x.com/vercel\",\"rel\":\"noopener noreferrer\",\"target\":\"_blank\",\"children\":\"X\"}]]}]\n2f:[\"$\",\"div\",null,{\"children\":[[\"$\",\"h4\",null,{\"children\":\"Legal\"}],[\"$\",\"a\",null,{\"href\":\"https://vercel.com/legal/privacy-policy\",\"rel\":\"noopener\",\"target\":\"_blank\",\"children\":\"Privacy Policy\"}],[\"$\",\"button\",null,{\"id\":\"fides-modal-link\",\"type\":\"button\",\"children\":\"Cookie Preferences\"}]]}]\n30:[\"$\",\"$L41\",null,{}]\n"])</script><script>self.__next_f.push([1,"31:[\"$\",\"div\",null,{\"className\":\"flex flex-row items-center justify-between flex-initial footer-module__rV1DKq__copyright\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col items-stretch justify-start gap-4 flex-initial\",\"children\":[\"$L42\",[\"$\",\"div\",null,{\"className\":\"flex flex-row items-center justify-start gap-3 flex-initial footer-module__rV1DKq__socials\",\"children\":[[\"$\",\"a\",null,{\"aria-label\":\"GitHub\",\"href\":\"https://github.com/vercel/next.js\",\"rel\":\"noopener\",\"target\":\"_blank\",\"style\":{\"mixBlendMode\":\"luminosity\"},\"children\":[[\"$\",\"$L22\",null,{\"alt\":\"\",\"className\":\"geist-hide-on-dark\",\"data-slot\":\"geist-logo-icon\",\"height\":16,\"loading\":\"eager\",\"src\":\"$11:props:children:1:props:children:props:children:props:children:props:children:0:props:children:0:props:children:1:props:children:0:props:children:0:props:src\",\"style\":\"$undefined\",\"width\":16,\"aria-hidden\":true}],[\"$\",\"$L22\",null,{\"alt\":\"\",\"className\":\"geist-hide-on-light\",\"data-slot\":\"geist-logo-icon\",\"height\":16,\"loading\":\"eager\",\"src\":\"$11:props:children:1:props:children:props:children:props:children:props:children:0:props:children:0:props:children:1:props:children:0:props:children:1:props:src\",\"style\":\"$undefined\",\"width\":16,\"aria-hidden\":true}]]}],[\"$\",\"hr\",null,{}],[\"$\",\"a\",null,{\"aria-label\":\"Twitter\",\"href\":\"https://x.com/nextjs\",\"rel\":\"noopener\",\"target\":\"_blank\",\"style\":{\"mixBlendMode\":\"luminosity\"},\"children\":[[\"$\",\"$L22\",null,{\"alt\":\"\",\"className\":\"geist-hide-on-dark\",\"data-slot\":\"geist-logo-icon\",\"height\":16,\"loading\":\"eager\",\"src\":\"$11:props:children:1:props:children:props:children:props:children:props:children:0:props:children:0:props:children:1:props:children:2:props:children:0:props:src\",\"style\":\"$undefined\",\"width\":16,\"aria-hidden\":true}],[\"$\",\"$L22\",null,{\"alt\":\"\",\"className\":\"geist-hide-on-light\",\"data-slot\":\"geist-logo-icon\",\"height\":16,\"loading\":\"eager\",\"src\":\"$11:props:children:1:props:children:props:children:props:children:props:children:0:props:children:0:props:children:1:props:children:2:props:children:1:props:src\",\"style\":\"$undefined\",\"width\":16,\"aria-hidden\":true}]]}],[\"$\",\"hr\",null,{}],[\"$\",\"a\",null,{\"aria-label\":\"Bluesky\",\"href\":\"https://bsky.app/profile/nextjs.org\",\"rel\":\"noopener\",\"target\":\"_blank\",\"style\":{\"mixBlendMode\":\"luminosity\"},\"children\":[[\"$\",\"$L22\",null,{\"alt\":\"\",\"className\":\"geist-hide-on-dark\",\"data-slot\":\"geist-logo-icon\",\"height\":16,\"loading\":\"eager\",\"src\":\"$11:props:children:1:props:children:props:children:props:children:props:children:0:props:children:0:props:children:1:props:children:4:props:children:0:props:src\",\"style\":\"$undefined\",\"width\":16,\"aria-hidden\":true}],[\"$\",\"$L22\",null,{\"alt\":\"\",\"className\":\"geist-hide-on-light\",\"data-slot\":\"geist-logo-icon\",\"height\":16,\"loading\":\"eager\",\"src\":\"$11:props:children:1:props:children:props:children:props:children:props:children:0:props:children:0:props:children:1:props:children:4:props:children:1:props:src\",\"style\":\"$undefined\",\"width\":16,\"aria-hidden\":true}]]}]]}]]}],[\"$\",\"$3a\",null,{\"fallback\":null,\"children\":[\"$\",\"$L43\",null,{}]}]]}]\n"])</script><script>self.__next_f.push([1,"32:[\"$\",\"$L2a\",null,{\"children\":[\"$\",\"$L44\",null,{}]}]\n33:[\"$\",\"$L2a\",null,{\"children\":[\"$\",\"$L45\",null,{}]}]\n36:[\"$\",\"$L46\",null,{\"children\":[\"$\",\"$L47\",null,{\"isMobile\":true,\"items\":\"$13:props:children:1:props:items\",\"versions\":{\"13\":\"13.5.11\",\"14\":\"14.2.35\",\"15\":\"15.5.20\",\"stable\":\"16.2.10\"}}]}]\n37:[\"$\",\"div\",null,{\"className\":\"px-6\",\"children\":[\"$\",\"div\",null,{\"className\":\"relative mx-auto max-w-(--ds-page-width) py-10 md:flex md:flex-row\",\"children\":[[\"$\",\"div\",null,{\"className\":\"sticky top-[121px] hidden h-[calc(100vh-121px)] w-[284px] md:flex md:shrink-0 md:flex-col md:justify-between\",\"children\":[\"$\",\"$L47\",null,{\"items\":\"$13:props:children:1:props:items\",\"versions\":\"$36:props:children:props:versions\"}]}],[\"$\",\"$L48\",null,{}],[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]}]\n"])</script><script>self.__next_f.push([1,"16:T4,slug1e:300\n42:[\"$\",\"p\",null,{\"children\":[\"© \",\"2026\",\" Vercel, Inc.\"]}]\n"])</script><script>self.__next_f.push([1,"49:I[208929,[\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"/_next/static/immutable/chunks/16yu5hnhikfuz.js\",\"/_next/static/immutable/chunks/36wnellv-yn9q.js\",\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"/_next/static/immutable/chunks/41mpz_qh0bqa2.js\",\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"/_next/static/immutable/chunks/33h268ieyla48.js\",\"/_next/static/immutable/chunks/2rrj9zsrpzi4o.js\",\"/_next/static/immutable/chunks/3_xgjnhjj5nm_.js\",\"/_next/static/immutable/chunks/2k_16qb116v9d.js\",\"/_next/static/immutable/chunks/34czdxd89m8hc.js\"],\"ActiveHashProvider\"]\n4a:I[208929,[\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"/_next/static/immutable/chunks/16yu5hnhikfuz.js\",\"/_next/static/immutable/chunks/36wnellv-yn9q.js\",\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"/_next/static/immutable/chunks/41mpz_qh0bqa2.js\",\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"/_next/static/immutable/chunks/33h268ieyla48.js\",\"/_next/static/immutable/chunks/2rrj9zsrpzi4o.js\",\"/_next/static/immutable/chunks/3_xgjnhjj5nm_.js\",\"/_next/static/immutable/chunks/2k_16qb116v9d.js\",\"/_next/static/immutable/chunks/34czdxd89m8hc.js\"],\"ActiveHashObserver\"]\n4b:I[604565,[\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"/_next/static/immutable/chunks/16yu5hnhikfuz.js\",\"/_next/static/immutable/chunks/36wnellv-yn9q.js\",\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"/_next/static/immutable/chunks/41mpz_qh0bqa2.js\",\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"/_next/static/immutable/chunks/33h268ieyla48.js\",\"/_next/static/immutable/chunks/2rrj9zsrpzi4o.js\",\"/_next/static/immutable/chunks/3_xgjnhjj5nm_.js\",\"/_next/static/immutable/chunks/2k_16qb116v9d.js\",\"/_next/static/immutable/chunks/34czdxd89m8hc.js\"],\"TableOfContents\"]\n4c:I[382690,[\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"/_next/static/immutable/chunks/16yu5hnhikfuz.js\",\"/_next/static/immutable/chunks/36wnellv-yn9q.js\",\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"/_next/static/immutable/chunks/41mpz_qh0bqa2.js\",\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"/_next/static/immutable/chunks/33h268ieyla48.js\",\"/_next/static/immutable/chunks/2rrj9zsrpzi4o.js\",\"/_next/static/immutable/chunks/3_xgjnhjj5nm_.js\",\"/_next/static/immutable/chunks/2k_16qb116v9d.js\",\"/_next/static/immutable/chunks/34czdxd89m8hc.js\"],\"ScrollToTopButton\"]\n4d:I[620828,[\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"/_next/static/immutable/chunks/16yu5hnhikfuz.js\",\"/_next/static/immutable/chunks/36wnellv-yn"])</script><script>self.__next_f.push([1,"9q.js\",\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"/_next/static/immutable/chunks/41mpz_qh0bqa2.js\",\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"/_next/static/immutable/chunks/33h268ieyla48.js\",\"/_next/static/immutable/chunks/2rrj9zsrpzi4o.js\",\"/_next/static/immutable/chunks/3_xgjnhjj5nm_.js\",\"/_next/static/immutable/chunks/2k_16qb116v9d.js\",\"/_next/static/immutable/chunks/34czdxd89m8hc.js\"],\"VersionBanner\"]\n4e:I[765398,[\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"/_next/static/immutable/chunks/16yu5hnhikfuz.js\",\"/_next/static/immutable/chunks/36wnellv-yn9q.js\",\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"/_next/static/immutable/chunks/41mpz_qh0bqa2.js\",\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"/_next/static/immutable/chunks/33h268ieyla48.js\",\"/_next/static/immutable/chunks/2rrj9zsrpzi4o.js\",\"/_next/static/immutable/chunks/3_xgjnhjj5nm_.js\",\"/_next/static/immutable/chunks/2k_16qb116v9d.js\",\"/_next/static/immutable/chunks/34czdxd89m8hc.js\"],\"\"]\n"])</script><script>self.__next_f.push([1,"38:[\"$\",\"$L49\",null,{\"children\":[\"$\",\"$L4a\",null,{\"containerAttr\":\"data-docs-container\",\"itemAttr\":\"data-docs-heading\",\"children\":[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"author\\\":{\\\"@type\\\":\\\"Organization\\\",\\\"name\\\":\\\"Vercel\\\"},\\\"headline\\\":\\\"Next.js Docs\\\",\\\"description\\\":\\\"Welcome to the Next.js Documentation.\\\",\\\"url\\\":\\\"https://nextjs.org/docs\\\",\\\"image\\\":\\\"https://nextjs.org/api/docs-og?title=Next.js Docs\u0026amp;sig=10b5e00dde2672ad\\\",\\\"@type\\\":\\\"TechArticle\\\"}\"}}],[\"$\",\"nav\",null,{\"className\":\"order-last hidden w-56 shrink-0 lg:block mx-auto\",\"children\":[\"$\",\"div\",null,{\"className\":\"sticky top-[126px] h-[calc(100vh-121px)]\",\"children\":[[\"$\",\"$L4b\",null,{\"headings\":[{\"level\":2,\"slug\":\"what-is-nextjs\",\"text\":\"What is Next.js?\"},{\"level\":2,\"slug\":\"how-to-use-the-docs\",\"text\":\"How to use the docs\"},{\"level\":2,\"slug\":\"app-router-and-pages-router\",\"text\":\"App Router and Pages Router\"},{\"level\":3,\"slug\":\"react-version-handling\",\"text\":\"React version handling\"},{\"level\":2,\"slug\":\"pre-requisite-knowledge\",\"text\":\"Pre-requisite knowledge\"},{\"level\":2,\"slug\":\"accessibility\",\"text\":\"Accessibility\"},{\"level\":2,\"slug\":\"join-our-community\",\"text\":\"Join our Community\"},{\"text\":\"Next Steps\",\"slug\":\"next-steps\",\"level\":2}]}],[\"$\",\"a\",null,{\"className\":\"hover:text-gray-1000 mb-3 flex items-center gap-x-1.5 text-sm text-gray-900 transition-opacity\",\"href\":\"https://github.com/vercel/next.js/edit/canary/docs/index.mdx\",\"children\":[\"Edit this page on GitHub \",[\"$\",\"svg\",null,{\"viewBox\":\"0 0 16 16\",\"height\":16,\"width\":16,\"data-slot\":\"geist-icon\",\"style\":{\"color\":\"currentColor\"},\"children\":[\"$\",\"path\",null,{\"fill\":\"currentColor\",\"fillRule\":\"evenodd\",\"d\":\"M11.5 9.75v1.5q-.02.23-.25.25h-6.5a.25.25 0 0 1-.25-.25v-6.5c0-.14.11-.25.25-.25H7V3H4.75C3.78 3 3 3.78 3 4.75v6.5c0 .97.78 1.75 1.75 1.75h6.5c.97 0 1.75-.78 1.75-1.75V9h-1.5zM8.5 3h3.75c.41 0 .75.34.75.75V7.5h-1.5V5.56L8.53 8.53 8 9.06 6.94 8l.53-.53 2.97-2.97H8.5z\",\"clipRule\":\"evenodd\"}]}]]}],[\"$\",\"$L4c\",null,{}]]}]}],[\"$\",\"article\",null,{\"className\":\"mt-4 w-full min-w-0 px-1 md:px-12 md:pr-6\",\"style\":{\"minHeight\":\"calc(100vh + 103px)\"},\"data-docs-container\":\"\",\"children\":[[\"$\",\"div\",null,{\"className\":\"prose\",\"children\":[[\"$\",\"span\",null,{\"className\":\"sr-only\",\"children\":[null,\"For an index of \",\"Next.js documentation\",\", see\",\" \",[\"$\",\"a\",null,{\"href\":\"/docs/llms.txt\",\"children\":\"/docs/llms.txt\"}],\".\"]}],null,[\"$\",\"div\",null,{\"data-docs\":true,\"children\":[[\"$\",\"$L4d\",null,{}],[\"$\",\"h1\",null,{\"className\":\"wrap-break-word hyphens-auto\",\"children\":[\"Next.js Docs\",null]}],null,null,[[\"$\",\"p\",null,{\"children\":\"Welcome to the Next.js documentation!\"}],\"\\n\",[\"$\",\"h2\",null,{\"id\":\"what-is-nextjs\",\"data-docs-heading\":\"\",\"children\":[\"What is Next.js?\",[\"$\",\"$L4e\",null,{\"href\":\"#what-is-nextjs\",\"aria-label\":\"Link to this section\",\"data-heading-link\":\"\",\"children\":[\"$\",\"span\",null,{\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 16 16\",\"height\":\"0.7em\",\"width\":\"0.7em\",\"children\":[\"$\",\"g\",null,{\"strokeWidth\":\"1.2\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"children\":[[\"$\",\"path\",null,{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeMiterlimit\":\"10\",\"d\":\"M8.995,7.005 L8.995,7.005c1.374,1.374,1.374,3.601,0,4.975l-1.99,1.99c-1.374,1.374-3.601,1.374-4.975,0l0,0c-1.374-1.374-1.374-3.601,0-4.975 l1.748-1.698\"}],[\"$\",\"path\",null,{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeMiterlimit\":\"10\",\"d\":\"M7.005,8.995 L7.005,8.995c-1.374-1.374-1.374-3.601,0-4.975l1.99-1.99c1.374-1.374,3.601-1.374,4.975,0l0,0c1.374,1.374,1.374,3.601,0,4.975 l-1.748,1.698\"}]]}]}]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Next.js is a React framework for building full-stack web applications. You use React Components to build user interfaces, and Next.js for additional features and optimizations.\"}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"It also automatically configures lower-level tools like bundlers and compilers. You can instead focus on building your product and shipping quickly.\"}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Whether you're an individual developer or part of a larger team, Next.js can help you build interactive, dynamic, and fast React applications.\"}],\"\\n\",\"$L4f\",\"\\n\",\"$L50\",\"\\n\",\"$L51\",\"\\n\",\"$L52\",\"\\n\",\"$L53\",\"\\n\",\"$L54\",\"\\n\",\"$L55\",\"\\n\",\"$L56\",\"\\n\",\"$L57\",\"\\n\",\"$L58\",\"\\n\",\"$L59\",\"\\n\",\"$L5a\",\"\\n\",\"$L5b\",\"\\n\",\"$L5c\",\"\\n\",\"$L5d\",\"\\n\",\"$L5e\",\"\\n\",\"$L5f\",\"\\n\",\"$L60\",\"\\n\",\"$L61\",\"\\n\",\"$L62\"]]}],null,\"$L63\"]}],\"$L64\",\"$L65\"]}]]}]}]\n"])</script><script>self.__next_f.push([1,"4f:[\"$\",\"h2\",null,{\"id\":\"how-to-use-the-docs\",\"data-docs-heading\":\"\",\"children\":[\"How to use the docs\",[\"$\",\"$L4e\",null,{\"href\":\"#how-to-use-the-docs\",\"aria-label\":\"Link to this section\",\"data-heading-link\":\"\",\"children\":[\"$\",\"span\",null,{\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 16 16\",\"height\":\"0.7em\",\"width\":\"0.7em\",\"children\":[\"$\",\"g\",null,{\"strokeWidth\":\"1.2\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"children\":[[\"$\",\"path\",null,{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeMiterlimit\":\"10\",\"d\":\"M8.995,7.005 L8.995,7.005c1.374,1.374,1.374,3.601,0,4.975l-1.99,1.99c-1.374,1.374-3.601,1.374-4.975,0l0,0c-1.374-1.374-1.374-3.601,0-4.975 l1.748-1.698\"}],[\"$\",\"path\",null,{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeMiterlimit\":\"10\",\"d\":\"M7.005,8.995 L7.005,8.995c-1.374-1.374-1.374-3.601,0-4.975l1.99-1.99c1.374-1.374,3.601-1.374,4.975,0l0,0c1.374,1.374,1.374,3.601,0,4.975 l-1.748,1.698\"}]]}]}]}]}]]}]\n50:[\"$\",\"p\",null,{\"children\":\"The docs are organized into 3 sections:\"}]\n51:[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"$L4e\",null,{\"href\":\"/docs/app/getting-started\",\"children\":\"Getting Started\"}],\": Step-by-step tutorials to help you create a new application and learn the core Next.js features.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"$L4e\",null,{\"href\":\"/docs/app/guides\",\"children\":\"Guides\"}],\": Tutorials on specific use cases, choose what's relevant to you.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"$L4e\",null,{\"href\":\"/docs/app/api-reference\",\"children\":\"API Reference\"}],\": Detailed technical reference for every feature.\"]}],\"\\n\"]}]\n52:[\"$\",\"p\",null,{\"children\":[\"Use the sidebar to navigate through the sections, or search (\",[\"$\",\"code\",null,{\"children\":\"Ctrl+K\"}],\" or \",[\"$\",\"code\",null,{\"children\":\"Cmd+K\"}],\") to quickly find a page.\"]}]\n53:[\"$\",\"h2\",null,{\"id\":\"app-router-and-pages-router\",\"data-docs-heading\":\"\",\"children\":[\"App Router and Pages Router\",[\"$\",\"$L4e\",null,{\"href\":\"#app-router-and-pages-router\",\"aria-label\":\"Link to this section\",\"data-heading-link\":\"\",\"children\":[\"$\",\"span\",null,{\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 16 16\",\"height\":\"0.7em\",\"width\":\"0.7em\",\"children\":[\"$\",\"g\",null,{\"strokeWidth\":\"1.2\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"children\":[[\"$\",\"path\",null,{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeMiterlimit\":\"10\",\"d\":\"M8.995,7.005 L8.995,7.005c1.374,1.374,1.374,3.601,0,4.975l-1.99,1.99c-1.374,1.374-3.601,1.374-4.975,0l0,0c-1.374-1.374-1.374-3.601,0-4.975 l1.748-1.698\"}],[\"$\",\"path\",null,{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeMiterlimit\":\"10\",\"d\":\"M7.005,8.995 L7.005,8.995c-1.374-1.374-1.374-3.601,0-4.975l1.99-1.99c1.374-1.374,3.601-1.374,4.975,0l0,0c1.374,1.374,1.374,3.601,0,4.975 l-1.748,1.698\"}]]}]}]}]}]]}]\n54:[\"$\",\"p\",null,{\"children\":\"Next.js has two different routers:\"}]\n55:[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"App Router\"}],\": The newer router that supports new React features like Server Components.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"Pages Router\"}],\": The original router, still supported and being improved.\"]}],\"\\n\"]}]\n56:[\"$\",\"p\",null,{\"children\":[\"At the top of the sidebar, you'll notice a dropdown menu that allows you to switch between the \",[\"$\",\"$L4e\",null,{\"href\":\"/docs/app\",\"children\":\"App Router\"}],\" and the \",[\"$\",\"$L4e\",null,{\"href\":\"/docs/pages\",\"children\":\"Pages Router\"}],\" docs.\"]}]\n57:[\"$\",\"h3\",null,{\"id\":\"react-version-handling\",\"data-docs-heading\":\"\",\"children\":[\"React version handling\",[\"$\",\"$L4e\",null,{\"href\":\"#react-version-handling\",\"aria-label\":\"Link to this section\",\"data-heading-link\":\"\",\"children\":[\"$\",\"span\",null,{\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 16 16\",\"height\":\"0.7em\",\"width\":\"0.7em\",\"children\":[\"$\",\"g\",null,{\"strokeWidth\":\"1.2\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"children\":[[\"$\",\"path\",null,{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeMiterlimit\":\"10\",\"d\":\"M8.995,7.005 L8.995,7.005c1.374,1.374,1.3"])</script><script>self.__next_f.push([1,"74,3.601,0,4.975l-1.99,1.99c-1.374,1.374-3.601,1.374-4.975,0l0,0c-1.374-1.374-1.374-3.601,0-4.975 l1.748-1.698\"}],[\"$\",\"path\",null,{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeMiterlimit\":\"10\",\"d\":\"M7.005,8.995 L7.005,8.995c-1.374-1.374-1.374-3.601,0-4.975l1.99-1.99c1.374-1.374,3.601-1.374,4.975,0l0,0c1.374,1.374,1.374,3.601,0,4.975 l-1.748,1.698\"}]]}]}]}]}]]}]\n58:[\"$\",\"p\",null,{\"children\":\"The App Router and Pages Router handle React versions differently:\"}]\n59:[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[\"\\n\",[\"$\",\"p\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"App Router\"}],\": Uses \",[\"$\",\"a\",null,{\"href\":\"https://react.dev/blog/2023/05/03/react-canaries\",\"rel\":\"noopener noreferrer nofollow\",\"target\":\"_blank\",\"children\":[\"React canary releases\",[\"$\",\"span\",null,{\"className\":\"inline-flex not-prose\",\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 16 16\",\"height\":16,\"width\":16,\"data-slot\":\"geist-icon\",\"style\":{\"color\":\"currentColor\"},\"children\":[\"$\",\"path\",null,{\"fill\":\"currentColor\",\"fillRule\":\"evenodd\",\"d\":\"M6.75 4H6v1.5h3.44L5.47 9.47l-.53.53L6 11.06l.53-.53 3.97-3.97V10H12V5a1 1 0 0 0-1-1z\",\"clipRule\":\"evenodd\"}]}]}]]}],\" built-in, which include all the stable React 19 changes, as well as newer features being validated in frameworks, prior to a new React release.\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[\"\\n\",[\"$\",\"p\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"Pages Router\"}],\": Uses the React version installed in your project's \",[\"$\",\"code\",null,{\"children\":\"package.json\"}],\".\"]}],\"\\n\"]}],\"\\n\"]}]\n5a:[\"$\",\"p\",null,{\"children\":\"This approach ensures new React features work reliably in the App Router while maintaining backwards compatibility for existing Pages Router applications.\"}]\n5b:[\"$\",\"h2\",null,{\"id\":\"pre-requisite-knowledge\",\"data-docs-heading\":\"\",\"children\":[\"Pre-requisite knowledge\",[\"$\",\"$L4e\",null,{\"href\":\"#pre-requisite-knowledge\",\"aria-label\":\"Link to this section\",\"data-heading-link\":\"\",\"children\":[\"$\",\"span\",null,{\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 16 16\",\"height\":\"0.7em\",\"width\":\"0.7em\",\"children\":[\"$\",\"g\",null,{\"strokeWidth\":\"1.2\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"children\":[[\"$\",\"path\",null,{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeMiterlimit\":\"10\",\"d\":\"M8.995,7.005 L8.995,7.005c1.374,1.374,1.374,3.601,0,4.975l-1.99,1.99c-1.374,1.374-3.601,1.374-4.975,0l0,0c-1.374-1.374-1.374-3.601,0-4.975 l1.748-1.698\"}],[\"$\",\"path\",null,{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeMiterlimit\":\"10\",\"d\":\"M7.005,8.995 L7.005,8.995c-1.374-1.374-1.374-3.601,0-4.975l1.99-1.99c1.374-1.374,3.601-1.374,4.975,0l0,0c1.374,1.374,1.374,3.601,0,4.975 l-1.748,1.698\"}]]}]}]}]}]]}]\n5c:[\"$\",\"p\",null,{\"children\":\"Our documentation assumes some familiarity with web development. Before getting started, it'll help if you're comfortable with:\"}]\n5d:[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":\"HTML\"}],\"\\n\",[\"$\",\"li\",null,{\"children\":\"CSS\"}],\"\\n\",[\"$\",\"li\",null,{\"children\":\"JavaScript\"}],\"\\n\",[\"$\",\"li\",null,{\"children\":\"React\"}],\"\\n\"]}]\n5e:[\"$\",\"p\",null,{\"children\":[\"If you're new to React or need a refresher, we recommend starting with our \",[\"$\",\"$L4e\",null,{\"href\":\"/learn/react-foundations\",\"children\":\"React Foundations course\"}],\", and the \",[\"$\",\"$L4e\",null,{\"href\":\"/learn/dashboard-app\",\"children\":\"Next.js Foundations course\"}],\" that has you building an application as you learn.\"]}]\n"])</script><script>self.__next_f.push([1,"5f:[\"$\",\"h2\",null,{\"id\":\"accessibility\",\"data-docs-heading\":\"\",\"children\":[\"Accessibility\",[\"$\",\"$L4e\",null,{\"href\":\"#accessibility\",\"aria-label\":\"Link to this section\",\"data-heading-link\":\"\",\"children\":[\"$\",\"span\",null,{\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 16 16\",\"height\":\"0.7em\",\"width\":\"0.7em\",\"children\":[\"$\",\"g\",null,{\"strokeWidth\":\"1.2\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"children\":[[\"$\",\"path\",null,{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeMiterlimit\":\"10\",\"d\":\"M8.995,7.005 L8.995,7.005c1.374,1.374,1.374,3.601,0,4.975l-1.99,1.99c-1.374,1.374-3.601,1.374-4.975,0l0,0c-1.374-1.374-1.374-3.601,0-4.975 l1.748-1.698\"}],[\"$\",\"path\",null,{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeMiterlimit\":\"10\",\"d\":\"M7.005,8.995 L7.005,8.995c-1.374-1.374-1.374-3.601,0-4.975l1.99-1.99c1.374-1.374,3.601-1.374,4.975,0l0,0c1.374,1.374,1.374,3.601,0,4.975 l-1.748,1.698\"}]]}]}]}]}]]}]\n60:[\"$\",\"p\",null,{\"children\":\"For the best experience when using a screen reader, we recommend using Firefox and NVDA, or Safari and VoiceOver.\"}]\n61:[\"$\",\"h2\",null,{\"id\":\"join-our-community\",\"data-docs-heading\":\"\",\"children\":[\"Join our Community\",[\"$\",\"$L4e\",null,{\"href\":\"#join-our-community\",\"aria-label\":\"Link to this section\",\"data-heading-link\":\"\",\"children\":[\"$\",\"span\",null,{\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 16 16\",\"height\":\"0.7em\",\"width\":\"0.7em\",\"children\":[\"$\",\"g\",null,{\"strokeWidth\":\"1.2\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"children\":[[\"$\",\"path\",null,{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeMiterlimit\":\"10\",\"d\":\"M8.995,7.005 L8.995,7.005c1.374,1.374,1.374,3.601,0,4.975l-1.99,1.99c-1.374,1.374-3.601,1.374-4.975,0l0,0c-1.374-1.374-1.374-3.601,0-4.975 l1.748-1.698\"}],[\"$\",\"path\",null,{\"fill\":\"none\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeMiterlimit\":\"10\",\"d\":\"M7.005,8.995 L7.005,8.995c-1.374-1.374-1.374-3.601,0-4.975l1.99-1.99c1.374-1.374,3.601-1.374,4.975,0l0,0c1.374,1.374,1.374,3.601,0,4.975 l-1.748,1.698\"}]]}]}]}]}]]}]\n"])</script><script>self.__next_f.push([1,"62:[\"$\",\"p\",null,{\"children\":[\"If you have questions about anything related to Next.js, you're always welcome to ask our community on \",[\"$\",\"a\",null,{\"href\":\"https://github.com/vercel/next.js/discussions\",\"rel\":\"noopener noreferrer\",\"target\":\"_blank\",\"children\":[\"GitHub Discussions\",[\"$\",\"span\",null,{\"className\":\"inline-flex not-prose\",\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 16 16\",\"height\":16,\"width\":16,\"data-slot\":\"geist-icon\",\"style\":{\"color\":\"currentColor\"},\"children\":\"$59:props:children:1:props:children:1:props:children:2:props:children:1:props:children:props:children\"}]}]]}],\", \",[\"$\",\"a\",null,{\"href\":\"https://discord.com/invite/bUG2bvbtHy\",\"rel\":\"noopener noreferrer nofollow\",\"target\":\"_blank\",\"children\":[\"Discord\",[\"$\",\"span\",null,{\"className\":\"inline-flex not-prose\",\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 16 16\",\"height\":16,\"width\":16,\"data-slot\":\"geist-icon\",\"style\":{\"color\":\"currentColor\"},\"children\":\"$59:props:children:1:props:children:1:props:children:2:props:children:1:props:children:props:children\"}]}]]}],\", \",[\"$\",\"a\",null,{\"href\":\"https://x.com/nextjs\",\"rel\":\"noopener noreferrer nofollow\",\"target\":\"_blank\",\"children\":[\"X (Twitter)\",[\"$\",\"span\",null,{\"className\":\"inline-flex not-prose\",\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 16 16\",\"height\":16,\"width\":16,\"data-slot\":\"geist-icon\",\"style\":{\"color\":\"currentColor\"},\"children\":\"$59:props:children:1:props:children:1:props:children:2:props:children:1:props:children:props:children\"}]}]]}],\", and \",[\"$\",\"a\",null,{\"href\":\"https://www.reddit.com/r/nextjs\",\"rel\":\"noopener noreferrer nofollow\",\"target\":\"_blank\",\"children\":[\"Reddit\",[\"$\",\"span\",null,{\"className\":\"inline-flex not-prose\",\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 16 16\",\"height\":16,\"width\":16,\"data-slot\":\"geist-icon\",\"style\":{\"color\":\"currentColor\"},\"children\":\"$59:props:children:1:props:children:1:props:children:2:props:children:1:props:children:props:children\"}]}]]}],\".\"]}]\n"])</script><script>self.__next_f.push([1,"63:[\"$\",\"div\",null,{\"className\":\"mt-16\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-3xl font-bold\",\"id\":\"next-steps\",\"data-docs-heading\":\"\",\"children\":\"Next Steps\"}],[\"$\",\"div\",null,{\"className\":\"mt-2 text-gray-900\",\"children\":\"Create your first application and learn the core Next.js features.\"}],[\"$\",\"div\",null,{\"className\":\"mt-8 grid grid-cols-1 gap-8 sm:grid-cols-2\",\"children\":[[\"$\",\"$L4e\",\"app/getting-started\",{\"className\":\"not-prose bg-gray-0 shadow-(--ds-shadow-border) group block space-y-2 rounded-md p-6 pt-5 transition-shadow duration-300 hover:shadow-(--ds-shadow-border-large)\",\"href\":\"/docs/app/getting-started\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-wrap items-center gap-0.5 text-xs\",\"children\":[]}],[\"$\",\"h3\",null,{\"className\":\"group-hover:text-gray-1000 truncate text-lg font-medium leading-snug\",\"children\":\"Getting Started\"}],[\"$\",\"div\",null,{\"className\":\"line-clamp-3 text-sm font-normal text-gray-900\",\"children\":\"Learn how to create full-stack web applications with the Next.js App Router.\"}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"64:[\"$\",\"nav\",null,{\"aria-label\":\"pagination\",\"className\":\"relative flex justify-between flex-wrap items-start w-full [\u0026_a]:no-underline my-12 border-t border-gray-200 pt-8\",\"children\":[[\"$\",\"$L4e\",null,{\"aria-label\":\"Go to previous page: Rspack\",\"className\":\"group p-1 rounded-md pr-2 pl-7\",\"href\":\"/docs/community/rspack\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-copy-13 !text-[var(--ds-gray-900)] mb-0.5 transition-colors duration-200 ease-in-out group-hover:!text-[var(--geist-foreground)]\",\"children\":\"Previous\"}],[\"$\",\"div\",null,{\"className\":\"relative flex [\u0026\u003espan]:max-w-[20em] [\u0026\u003espan]:inline-block [\u0026\u003espan]:truncate [\u0026\u003espan]:break-words focus-visible:outline-none focus-visible:shadow-[var(--ds-focus-ring)]\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-[16px] leading-[24px] font-medium\",\"children\":\"Rspack\"}],[\"$\",\"span\",null,{\"className\":\"absolute mt-0.5 text-[var(--ds-gray-900)] transition-colors duration-200 ease-in-out -left-[26px] group-hover:text-[var(--geist-foreground)]\",\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 16 16\",\"height\":20,\"width\":20,\"data-slot\":\"geist-icon\",\"style\":{\"color\":\"currentColor\"},\"children\":[\"$\",\"path\",null,{\"fill\":\"currentColor\",\"fillRule\":\"evenodd\",\"d\":\"m10.5 14.06-.53-.53-4.82-4.82a1 1 0 0 1 0-1.42l4.82-4.82.53-.53L11.56 3l-.53.53L6.56 8l4.47 4.47.53.53z\",\"clipRule\":\"evenodd\"}]}]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 z-2 max-xl:hidden\"}],[\"$\",\"$L4e\",null,{\"aria-label\":\"Go to next page: App Router\",\"className\":\"group p-1 rounded-md pl-2 pr-7 ml-auto\",\"href\":\"/docs/app\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-copy-13 !text-[var(--ds-gray-900)] mb-0.5 transition-colors duration-200 ease-in-out group-hover:!text-[var(--geist-foreground)]\",\"children\":\"Next\"}],[\"$\",\"div\",null,{\"className\":\"relative flex [\u0026\u003espan]:max-w-[20em] [\u0026\u003espan]:inline-block [\u0026\u003espan]:truncate [\u0026\u003espan]:break-words focus-visible:outline-none focus-visible:shadow-[var(--ds-focus-ring)]\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-[16px] leading-[24px] font-medium\",\"children\":\"App Router\"}],[\"$\",\"span\",null,{\"className\":\"absolute mt-0.5 text-[var(--ds-gray-900)] transition-colors duration-200 ease-in-out -right-[26px] group-hover:text-[var(--geist-foreground)]\",\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 16 16\",\"height\":20,\"width\":20,\"data-slot\":\"geist-icon\",\"style\":{\"color\":\"currentColor\"},\"children\":[\"$\",\"path\",null,{\"fill\":\"currentColor\",\"fillRule\":\"evenodd\",\"d\":\"m5.5 1.94.53.53 4.82 4.82a1 1 0 0 1 0 1.42l-4.82 4.82-.53.53L4.44 13l.53-.53L9.44 8 4.97 3.53 4.44 3z\",\"clipRule\":\"evenodd\"}]}]}]]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"66:I[383750,[\"/_next/static/immutable/chunks/3-xbnqwdof97w.js\",\"/_next/static/immutable/chunks/2-a1hmzk-75lr.js\",\"/_next/static/immutable/chunks/3h_--a7n6mhg2.js\",\"/_next/static/immutable/chunks/35je9r863h9cv.js\",\"/_next/static/immutable/chunks/2pnkq_r618ks5.js\",\"/_next/static/immutable/chunks/16yu5hnhikfuz.js\",\"/_next/static/immutable/chunks/36wnellv-yn9q.js\",\"/_next/static/immutable/chunks/3guzb37x90yip.js\",\"/_next/static/immutable/chunks/41mpz_qh0bqa2.js\",\"/_next/static/immutable/chunks/18ghicl887xer.js\",\"/_next/static/immutable/chunks/1uzi8jlkt-gh8.js\",\"/_next/static/immutable/chunks/435c4wla8qiy-.js\",\"/_next/static/immutable/chunks/2_iknkx9ax7s1.js\",\"/_next/static/immutable/chunks/33h268ieyla48.js\",\"/_next/static/immutable/chunks/2rrj9zsrpzi4o.js\",\"/_next/static/immutable/chunks/3_xgjnhjj5nm_.js\",\"/_next/static/immutable/chunks/2k_16qb116v9d.js\",\"/_next/static/immutable/chunks/34czdxd89m8hc.js\"],\"Feedback\"]\n65:[\"$\",\"$L66\",null,{\"label\":\"next-site\",\"siteType\":\"next-site\",\"type\":\"inline\"}]\n"])</script><script>self.__next_f.push([1,"3d:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"67:I[103529,[\"/_next/static/immutable/chunks/3o1b2g318vnd5.js\"],\"IconMark\"]\n1c:T4,slug3b:null\n3f:[[\"$\",\"title\",\"0\",{\"children\":\"Next.js Docs | Next.js\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Welcome to the Next.js Documentation.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"canonical\",\"href\":\"https://nextjs.org/docs\"}],[\"$\",\"meta\",\"3\",{\"property\":\"og:title\",\"content\":\"Next.js Docs | Next.js\"}],[\"$\",\"meta\",\"4\",{\"property\":\"og:description\",\"content\":\"Welcome to the Next.js Documentation.\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:image\",\"content\":\"https://nextjs.org/api/docs-og?title=Next.js%20Docs\u0026sig=10b5e00dde2672ad\"}],[\"$\",\"meta\",\"6\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"7\",{\"name\":\"twitter:title\",\"content\":\"Next.js Docs\"}],[\"$\",\"meta\",\"8\",{\"name\":\"twitter:description\",\"content\":\"Welcome to the Next.js Documentation.\"}],[\"$\",\"meta\",\"9\",{\"name\":\"twitter:image\",\"content\":\"https://nextjs.org/api/docs-og?title=Next.js%20Docs\u0026sig=10b5e00dde2672ad\"}],[\"$\",\"link\",\"10\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.38folom4sz_yx.ico\",\"sizes\":\"48x48\",\"type\":\"image/x-icon\"}],[\"$\",\"$L67\",\"11\",{}]]\n"])</script><script>self.__next_f.push([1,"1e:C\n1c:C\n1d:C\n16:C\n18:C\n19:C\n"])</script><script>self.__next_f.push([1,"1f:null\n"])</script></body></html>