Skip to main content
Authoritative product notes also live in themes/README.md inside the Streamly repo.

Layout

Shims (no logic): components/landing/templates/{Streamly,Streamlix,OneTube}Template.tsx.

Rules

  1. Do not fork routes per theme.
  2. Prefer capabilities (supportsLightMode, supportsFeaturesSection) over hardcoded theme ids.
  3. Streamly is the final default look — other themes must not regress it.
  4. Public catalog API facade: lib/branding/theme-catalog.ts.
  5. 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

Uploaded packages cannot ship new React templates — only skin a built-in 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.