docs/01-app/03-api-reference/05-config/01-next-config-js/devIndicators.mdx
devIndicators allows you to configure the on-screen indicator that gives context about the current route you're viewing during development.
Open next.config.ts and set position to choose where the indicator renders. The default is bottom-left.
import type { NextConfig } from 'next'
const nextConfig: NextConfig = {
devIndicators: {
position: 'bottom-right', // 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right'
},
}
export default nextConfig
To hide the indicator entirely, set devIndicators to false. Next.js will still surface any compile or runtime errors that were encountered.
const nextConfig: NextConfig = {
devIndicators: false,
}
export default nextConfig
If you expect a route to be static and the indicator has marked it as dynamic, it's likely the route has opted out of prerendering.
You can confirm if a route is prerendered or dynamically rendered by building your application using next build --debug, and checking the output in your terminal. Static (or prerendered) routes will display a ○ symbol, whereas dynamic routes will display a ƒ symbol. For example:
Route (app)
┌ ○ /_not-found
└ ƒ /products/[id]
○ (Static) prerendered as static content
ƒ (Dynamic) server-rendered on demand
There are two reasons a route might opt out of prerendering:
Check your route for any of these conditions, and if you are not able to statically render the route, then consider using loading.js or <Suspense /> to leverage streaming.
When exporting getServerSideProps or getInitialProps from a page, it will be marked as dynamic.
| Version | Changes |
|---|---|
v16.0.0 | appIsrStatus, buildActivity, and buildActivityPosition options have been removed. |
v15.2.0 | Improved on-screen indicator with new position option. appIsrStatus, buildActivity, and buildActivityPosition options have been deprecated. |
v15.0.0 | Static on-screen indicator added with appIsrStatus option. |