streamly/
├── app/
│ ├── (viewer)/ # Storefront routes
│ ├── (landing)/ # Tenant marketing/legal variants
│ ├── site/ # Platform marketing rewrite targets
│ ├── admin/ # Operator console
│ ├── dashboard/ # Tenant-owner console
│ ├── api/ # v1, operator, admin, webhooks, internal jobs
│ └── layout.tsx # data-storefront-theme on <html>
├── themes/<id>/ # Theme packages (theme.json, config, skin, template)
├── addons/ # Streaming source packages
├── plugins/ # Platform integrations
├── components/landing/ # Shared chrome + template registry/shims
├── lib/
│ ├── branding/ # Theme catalog, presets, apply, preview
│ ├── landing/ # Skins, shells, legal markdown bundling
│ ├── operator/ # Nav, platform settings
│ ├── streamly/ # Tenant context, dashboard nav, …
│ └── supabase/ # Auth scopes, clients
├── supabase/migrations/ # Ordered SQL — no single schema.sql
├── content/legal/ # Legal markdown (bundled for Workers)
├── messages/ # i18n catalogs
├── wrangler.jsonc # Cloudflare Worker config
├── open-next.config.ts
├── custom-worker.ts
├── .env.example
└── .dev.vars.example