PeqabooPeqaboo
Home
Social
TreatsChatLeaderboard
Map
AI ToolsBooAI Chat
Apps
Boo Market
ShoppingBooking
Explore
Knowledge BaseBreed DatabaseCare GuidesRecipe GeneratorCoursesPet TravelPet Expert ConsultationHealthMedicine DatabaseHazard DatabaseLost & Found
Settings
Login
Peqaboo
My ShopLogin
Powered by Peqaboo·Privacy Policy·Terms of Service·
HomeAI Tools
BooAI
MapProfile

Package Format

Learn how to structure and package your BooApp for submission.

Hosting Model

BooApps are self-hosted. You deploy your app to any HTTPS host — Vercel, Netlify, Cloudflare Pages, GitHub Pages, your own server — and submit the URL in the developer console. Peqaboo loads it inside a WebView and injects the peqaboo global at document_start.

Your deploy
text
https://my-app.vercel.app/
├── index.html           # Entry — must return 200 + valid HTML
├── booapp.json          # Optional — auto-import for the submission form
├── icon.png             # Recommended 512x512 PNG
├── app.js
└── styles.css

(any static stack works: plain HTML, Vite, Next.js export, etc.)

The booapp.json auto-import file

Drop a booapp.json at the root of your deploy (e.g. https://my-app.vercel.app/booapp.json). When you paste your URL in the developer console, Peqaboo fetches this file and pre-fills the submission form — name, icon, category, declared scopes. It's optional (you can fill the form by hand) but recommended; it also keeps your submission and code in sync via git.

Requirements

  • entryUrl must be HTTPS and return 200 with valid HTML
  • Icon must be a public URL returning at least 256×256 PNG (512×512 recommended)
  • All declared permissions must be valid scope ids (see Permissions)
  • appId must be globally unique (kebab-case)
  • The page must render inside a mobile WebView — no plug-ins, no browser-extension APIs

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
{
  "appId": "my-pet-tracker",
  "name": "My Pet Tracker",
  "shortDescription": "Track your pet's daily activities",
  "icon": "https://my-pet-tracker.vercel.app/icon.png",
  "entryUrl": "https://my-pet-tracker.vercel.app",
  "category": "health",
  "permissions": [
    "auth.requireLogin",
    "pet.list",
    "pet.read",
    "media.takePhoto",
    "location.getCurrent"
  ],
  "orientation": "portrait",
  "themeColor": "#FFFFFF",
  "author": {
    "name": "Developer Name",
    "email": "dev@example.com"
  },
  "privacy": {
    "dataCollection": ["user_profile", "pet_data"],
    "privacyPolicyUrl": "https://example.com/privacy"
  }
}

Required Fields

ParameterTypeRequiredDescription
appIdstringYesGlobally unique kebab-case id (lowercase, hyphens, e.g. "pet-loyalty-card")
namestring | I18nStringYesDisplay name of your BooApp (2-30 characters). Either a plain string or an i18n object keyed by locale.
shortDescriptionstring | I18nStringYesShort description (max 120 characters)
iconstringYesHTTPS URL to a 512x512 PNG (or relative path resolved against your deploy root)
entryUrlstringYesHTTPS URL Peqaboo loads in the WebView (your hosted app)
categorystringYesOne of: event, tool, game, commerce, utility, health, social, finance
permissionsstring[]YesDeclared scope ids — see the Permissions doc for the full set

Optional Fields

ParameterTypeRequiredDescription
orientation"portrait" | "landscape" | "auto"NoDefault "portrait"
themeColorstringNoHex color used for the loading splash and status bar tint
author{ name, email }NoDeveloper contact info shown on the public listing
privacyPrivacyConfigNoPrivacy declarations (data collection, policy URL)

Display Configuration

Two flat fields control the runtime chrome. The host renders the nav bar (back button, title, close button) — your page should not include its own.

json
{
  "orientation": "portrait",   // "portrait" | "landscape" | "auto"
  "themeColor": "#FFFFFF"      // Splash + status bar tint
}

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

  • entryUrl is HTTPS and returns 200 with valid HTML
  • appId is globally unique, kebab-case (lowercase, hyphens only)
  • name: 2-30 characters
  • shortDescription: max 120 characters
  • icon URL returns a 512x512 PNG (256 minimum)
  • category: one of the documented categories
  • permissions: every entry is a valid scope id
  • No third-party tracking scripts that violate the privacy declaration
  • Page renders inside a mobile WebView at 375px width
  • /booapp.json at deploy root if you want auto-import (optional)
  • At least 1 screenshot uploaded in the submission form

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.
Previous
API Reference
Next
Permissions
B

BooApp Docs

Developer Platform

Documentation
Getting StartedBuild with AIGlobal PresenceAPI ReferencePackage FormatPermissionsDesign GuidelinesReview GuidelinesBrand ResourcesSDK Downloads
Developer Console
B
BooApp Docs
StartAI BuildGlobalAPIPackagePermissionsDesignReviewBrandSDKConsole