Skip to main content

App Package Checklist

Shuuka app uploads are ZIP bundles. The platform installs the built package you upload. It does not inspect your source repo or run your build for you.

Bundle Layout

Your ZIP can contain the app files at the root or inside one top-level folder.

my-app.zip
├── manifest.json
├── index.html
├── icon.svg
├── thumbnail.jpg
├── header.jpg
├── settings.json
├── settings-global.json
├── inputs.json
├── lang/
│ ├── en.json
│ └── en/
└── assets/

Required Files

FileRequiredRule
manifest.jsonYesMust contain at least name, version, and entry
entry file from manifestYesThe file referenced by manifest.json.entry must exist in the bundle
icon.svgYesMust be a valid SVG
thumbnail.jpgYesMust be a valid JPEG
header.jpgYesMust be a valid JPEG and exactly 1000x263

Optional but Common Files

FileWhen to include itWhat Shuuka uses it for
settings.jsonApp has owner-configurable public settingsBuilds the App Global Settings page
settings-global.jsonApp needs secrets or owner-only configurationBuilds the secure App Global Settings page
groups and placeholders in manifest.jsonApp needs per-card sidebar configurationBuilds App Instance Settings
inputs.jsonApp collects submissions or structured dataDefines collected-data fields
lang/en.jsonApp has translatable UI stringsTranslation tokens inside HTML pages
lang/{locale}/settings.jsonApp Global Settings UI needs translationsLocalized labels for the App Global Settings page
lang/{locale}/settings-global.jsonSecure App Global Settings UI needs translationsLocalized labels for the secure App Global Settings page
screenshots/*App needs marketplace screenshotsPreview images for the marketplace detail page

Build Rule

If you use React, Vue, or another bundler, upload the built output. Shuuka serves the generated files as-is.

Good pattern:

manifest.json
index.html
assets/app.js
assets/app.css
icon.svg
thumbnail.jpg
header.jpg

Bad pattern:

src/
vite.config.js
package.json

Runtime Files Shuuka Reads

These files are read directly by the platform when they are present.

FilePurpose
manifest.jsonMarketplace metadata and runtime metadata
settings.jsonApp Global Settings schema
settings-global.jsonSecure App Global Settings schema
inputs.jsonSubmission and collected-data schema

Before You Upload

  • turn on Developer access in Settings > App preferences
  • open the new app upload page
  • make sure the ZIP contains the built app, not only source files
  • make sure header.jpg is exactly 1000x263
  • make sure entry points to the real built entry file
  • make sure the manifest privacy block lists every third-party origin the app contacts or embeds
  • make sure all secrets live in settings-global.json, not settings.json
  • make sure every field key used in code matches the keys in your JSON schemas