Theme Package Format
This page describes what files matter for a theme project.A theme is an app project. Shoppex builds it with Bun and serves the static output from
dist/.Required (Practical Minimum)
You need:package.jsonwithdevandbuildscriptsindex.htmlsrc/*(your app code)theme.manifest.json(metadata for listing)theme.config.ts(settings + sections)
Example File Tree
theme.manifest.json
This is metadata used for listing and tooling (simplified):
idnameversionpreview(optional)features(optional)techStack(optional)
What Matters Most
Build Script
bun run build must produce dist/index.html.Theme Config
theme.config.ts defines settings and sections.Initial Data
Optional
<!--initial-data--> injection for faster first render.Keep Versions Aligned
If your theme has multiple version fields, keep them consistent:theme.manifest.jsonversionpackage.jsonversion(if set)theme.config.tsversion(if you include it)
Notes About Lockfiles
Lockfiles are treated as read-only in some theme editor flows:bun.lockbpnpm-lock.yamlyarn.lock
The manifest is plain JSON. The exact internal parsing rules can evolve, but the goal stays the same: identify your theme and its version, and provide optional metadata for tooling.