Package Format
Learn how to structure and package your BooApp for submission.
Zip Structure
A BooApp package is a zip file containing all your app files. The structure must follow this layout:
my-booapp.zip
text
my-booapp.zip
├── booapp.json # Manifest (required)
├── index.html # Entry point (required)
├── assets/
│ ├── icon.png # 512×512 app icon (required)
│ ├── screenshot-1.png # At least 1 screenshot (required)
│ ├── styles.css
│ └── app.js
└── vendor/
└── booapp-sdk.min.js # Optional, can use CDNRequirements
- Maximum zip size: 10MB
booapp.jsonmust be at the root of the zip- Entry point HTML file must exist at the path specified in
main - Icon must be at least 512×512 pixels
- No executable files (.exe, .bat, .sh, etc.)
Manifest (booapp.json)
The manifest file describes your BooApp and its configuration. All paths are relative to the zip root.
booapp.json Example
booapp.json
json
{
"name": "My Pet Tracker",
"slug": "my-pet-tracker",
"version": "1.0.0",
"description": "Track your pet's daily activities",
"author": {
"name": "Developer Name",
"email": "dev@example.com"
},
"main": "index.html",
"icon": "assets/icon.png",
"category": "health",
"permissions": ["auth", "pet_info", "camera", "location"],
"minBridgeVersion": 1,
"display": {
"orientation": "portrait",
"backgroundColor": "#FFFFFF",
"fullscreen": false
},
"navigation": {
"showBackButton": true,
"title": "My Pet Tracker"
},
"privacy": {
"dataCollection": ["user_profile", "pet_data"],
"privacyPolicyUrl": "https://example.com/privacy"
}
}Required Fields
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Display name of your BooApp (2-30 characters) |
slug | string | Yes | URL-safe unique identifier (lowercase, hyphens only) |
version | string | Yes | Semantic version (e.g. "1.0.0") |
description | string | Yes | Short description (max 120 characters) |
main | string | Yes | Path to the entry HTML file (default: "index.html") |
icon | string | Yes | Path to the app icon (512×512 PNG) |
category | string | Yes | App category (health, social, tools, etc.) |
permissions | string[] | Yes | Required permission groups |
minBridgeVersion | number | Yes | Minimum bridge protocol version (current: 1) |
Optional Fields
| Parameter | Type | Required | Description |
|---|---|---|---|
author | { name, email } | No | Developer contact info |
display | DisplayConfig | No | Display settings (orientation, background, fullscreen) |
navigation | NavConfig | No | Navigation bar settings (title, back button, colors) |
privacy | PrivacyConfig | No | Privacy declarations (data collection, policy URL) |
Display Configuration
json
{
"display": {
"orientation": "portrait", // "portrait" | "landscape" | "any"
"backgroundColor": "#FFFFFF", // Background color while loading
"fullscreen": false, // Hide status bar
"statusBarStyle": "dark" // "light" | "dark" | "auto"
}
}Navigation Configuration
json
{
"navigation": {
"showBackButton": true, // Show back arrow
"showTitle": true, // Show title in nav bar
"title": "My Pet Tracker", // Title text
"titleColor": "#000000", // Title text color
"backgroundColor": "#FFFFFF" // Nav bar background
}
}Privacy Declaration
json
{
"privacy": {
"dataCollection": ["user_profile", "pet_data", "location"],
"dataSharing": [],
"dataRetention": "30 days",
"privacyPolicyUrl": "https://example.com/privacy",
"termsOfServiceUrl": "https://example.com/terms"
}
}Validation Checklist
- booapp.json at zip root
- name: 2-30 characters
- slug: lowercase, hyphens only
- version: semantic (x.y.z)
- description: max 120 characters
- icon: 512×512 PNG minimum
- category: valid category ID
- permissions: all valid IDs
- Entry HTML file exists at "main" path
- Max zip size: 10MB
- No executable files (.exe, .bat, .sh)
- At least 1 screenshot included
Best Practice
Always declare what data your BooApp collects, even if it's minimal. Transparency builds trust with users and speeds up the review process.