What is MIME type "application/x-web-app-manifest+json"?

A MIME type is a string that tells browsers and other tools how to handle a particular kind of file.

application/x-web-app-manifest+json is a MIME type for web app manifests. It uses the JSON format to provide essential information about a web application. This file details the app’s name, icons, start URL, and other settings needed for proper display and behavior.

The manifest supports progressive web apps (PWAs) and similar applications. It helps browsers know how to install the app and launch it in a more native-like mode.
Refer to the file type for WEBAPP for further details.

More technical insights are available on the MDN Web Docs.

Associated file extensions

Usage Examples

HTTP Header

When serving content with this MIME type, set the Content-Type header:


    Content-Type: application/x-web-app-manifest+json    
  

HTML

In HTML, you can specify the MIME type in various elements:


    <a href="file.dat" type="application/x-web-app-manifest+json">Download file</a>    
  

Server-side (Node.js)

Setting the Content-Type header in Node.js:


    const http = require('http');    
    
    http.createServer((req, res) => {    
      res.setHeader('Content-Type', 'application/x-web-app-manifest+json');    
      res.end('Content here');    
    }).listen(3000);    
  

Associated file extensions

FAQs

What is application/x-web-app-manifest+json used for?

This MIME type is used to identify web app manifests, specifically those following the Mozilla Open Web App standard or legacy configurations. It tells the browser that the associated .webapp file contains JSON data defining an application's name, icons, and launch behavior. For modern Progressive Web Apps (PWAs), the standard application/manifest+json is more commonly used.

How do I configure Apache to serve .webapp files correctly?

To serve files with the .webapp extension using the correct MIME type, add the following line to your .htaccess file or main configuration: AddType application/x-web-app-manifest+json .webapp. This ensures browsers recognize the file as an installable manifest rather than generic text.

What is the Nginx configuration for this MIME type?

In Nginx, you should update your mime.types file or add a types block inside your server configuration. Use the directive: types { application/x-web-app-manifest+json webapp; }. After saving the changes, reload Nginx to apply the new content type.

Is application/x-web-app-manifest+json the same as application/manifest+json?

No, they are distinct. application/x-web-app-manifest+json is a vendor-prefixed type historically associated with Firefox OS and older Open Web Apps, while application/manifest+json is the modern W3C standard for Progressive Web Apps. You should check which standard your target platform requires.

Can I use application/json instead?

While the file content is valid JSON, using application/json is generally not recommended for manifests intended to trigger app installation. Browsers look for the specific MIME type to validate the manifest and enable features like "Add to Home Screen." Always use the specific type required by the implementation.

How do I validate a file served as application/x-web-app-manifest+json?

Since the file format is JSON, you can use any standard JSON validator (linting tool) to check for syntax errors. Additionally, ensure the structure matches the specific schema required by the platform (e.g., Mozilla Open Web Apps) consuming the .webapp file.

Why is my web app manifest returning a 404 or not working?

If the file exists but isn't working, the server might be sending the wrong Content-Type header (often text/plain by default). Verify your server configuration to ensure it sends application/x-web-app-manifest+json. You can check the headers using browser developer tools under the Network tab.

General FAQ

What is a MIME type?

A MIME (Multipurpose Internet Mail Extensions) type is a standard that indicates the nature and format of a document, file, or assortment of bytes. MIME types are defined and standardized in IETF's RFC 6838.

MIME types are important because they help browsers and servers understand how to process a file. When a browser receives a file from a server, it uses the MIME type to determine how to display or handle the content, whether it's an image to display, a PDF to open in a viewer, or a video to play.

MIME types consist of a type and a subtype, separated by a slash (e.g., text/html, image/jpeg, application/pdf). Some MIME types also include optional parameters.

How do I find the MIME type for a file?

You can check the file extension or use a file identification tool such as file --mime-type on the command line. Many programming languages also provide libraries to detect MIME types.

Why are multiple MIME types listed for one extension?

Different applications and historical conventions may use alternative MIME identifiers for the same kind of file. Showing them all helps ensure compatibility across systems.