themes/README.md inside the Streamly repo.
Layout
components/landing/templates/{Streamly,Streamlix,OneTube}Template.tsx.
Rules
- Do not fork routes per theme.
- Prefer capabilities (
supportsLightMode,supportsFeaturesSection) over hardcoded theme ids. - Streamly is the final default look — other themes must not regress it.
- Public catalog API facade:
lib/branding/theme-catalog.ts. - Live look must not change unless operator Apply or Brand & Experience edit — install/export never auto-apply.
Operator APIs
Upload/export/uninstall UI currently hidden (
SHOW_THEME_PACKAGE_IO_UI = false). APIs remain.
Package zip layout
templateEntry. Built-in ids cannot be overwritten on install.
Public SEO (not in theme packages)
Controlled in Brand & Experience:Preview
/?__theme_preview=<themeId> — admin only; middleware sets preview header; merges preset/seed in memory; switches data-storefront-theme chrome; floating banner back to Themes.