~2 min read • Updated Oct 29, 2025
1. What Is a Manifest?
The manifest.json or manifest.webmanifest file provides metadata about your app to browsers — including its name, icons, colors, and how it should behave when launched as a standalone app. It’s essential for enabling Progressive Web App (PWA) features.
2. Ways to Define a Manifest
You can define the manifest in two ways:
- Static file: placed at
app/manifest.jsonorapp/manifest.webmanifest - Generated via code: using
app/manifest.tsorapp/manifest.js
3. Example Static Manifest
// app/manifest.json
{
"name": "My Next.js Application",
"short_name": "Next.js App",
"description": "An application built with Next.js",
"start_url": "/"
}4. Generating a Manifest with Code
Use the MetadataRoute.Manifest type to return a manifest object:
// app/manifest.ts
import type { MetadataRoute } from 'next'
export default function manifest(): MetadataRoute.Manifest {
return {
name: 'Next.js App',
short_name: 'Next.js App',
description: 'Next.js App',
start_url: '/',
display: 'standalone',
background_color: '#fff',
theme_color: '#fff',
icons: [
{
src: '/favicon.ico',
sizes: 'any',
type: 'image/x-icon',
},
],
}
}5. Supported Manifest Options
The manifest object can include:
name: Full app nameshort_name: Short name for icon displaydescription: App descriptionstart_url: Launch pathdisplay: Display mode (e.g. standalone)background_color: Background colortheme_color: Theme coloricons: List of icons with src, size, and type
6. Good to Know
- The manifest file must be placed in the root of the
appdirectory - Code-based manifests are cached by default unless they use dynamic APIs
- To explore all available options, use TypeScript with
MetadataRoute.Manifestor refer to the MDN docs
Conclusion
The manifest.json file in Next.js plays a key role in defining how your app appears and behaves in browsers. Whether static or dynamic, it enables a polished, installable experience — especially for PWAs and mobile-first applications.
Written & researched by Dr. Shahin Siami