Skip to main content

The Manifest File

Your manifest.json file is an indispensable part of your Showpad App. It's the control center for your app, containing essential information about the files, resources, and components needed to build and run your Showpad App, such as:

  • the schema and version to use,
  • public information about the app, such as author and version,
  • information for the definitions of the Extension Types to be created from your app.

Once you've completed development, your app is packaged into a .showpad bundle. The manifest is the file that brings all of the elements of your app together. In the following illustration, the Showpad App makes use of four extensions: two Experience types (A & B), one User Settings and one Admin Settings.



Your manifest.json file should follow this structure:

Schema info$schemaDirects the app's manifiest file to use the v2 json schema. Your IDE can use this to provide auto-completion when developing your Showpad App.

Required value:

Note: If not provided, the bundle will not be recognized as an app.
  • type - Defines the schema type.

    Required value: app-manifest

  • version - Specifies the version to use.

    Required value: 2
App infoappKeyA globally unique identifier for your app. We suggest making it human-readable.

nameThe display name of the app.Yes
versionThe semantic version of the app.

Suggested format:

  • short - A short description displayed in the app's Overview.
  • full - A long description displayed in the app's Details.
iconA small icon for the app. Displayed in the app's Overview.No
imagesCover images for the app. Displayed in the app's Details. Max 3 items.No
  • name - The name of the company that created the app.
  • websiteUrl - (optional) A link to the website of the developer
Extension infouserSettingsAn Extension point that adds a panel to the user's Settings menu in the Showpad Web App.No
adminSettingsAn Extension point that adds a menu item in the Admin Settings menu in the Showpad Online Platform (OP).No
experienceTypesAn Extension point that adds a new Experience type.No
AppsDBsharedStoresA list of Stores that need to be created when the app is installed.

  • id- The store id
Note: If a store with the same name already exists, the app can not be installed.


This manifest.json example describes three extensions that can interact with Showpad's Slack integration.

"$schema": "",
"schema": {
"type": "app-manifest",
"version": 2
"appKey": "",
"name": "Slack integration",
"version": "1.0.0",
"description": {
"short": "Slack Notifications",
"full": "Allows notifications to be sent to Slack"
"icon": "images/slack.svg",
"images": ["images/slack.jpeg"],
"developer": {
"name": "Showpad",
"websiteUrl": ""
"userSettings": [
"extensionKey": "slack-settings",
"name": "Slack",
"description": "Settings for the Slack integration",
"resources": {
"folder": "slack"
"adminSettings": [
"extensionKey": "slack-admin-settings",
"name": "Slack Admin",
"description": "Admin settings for the Slack integration",
"resources": {
"folder": "slack-admin"
"experienceTypes": [
"extensionKey": "my-experience",
"name": "My Experience",
"description": "Some description",
"resources": {
"folder": "exp-files"
"sharedStores": [{ "id": "my-store" }]