One engine. A hundred storefronts.
86 live storefronts you can open right now, all running the same commerce foundation with different brand experiences.
How theming works
A theme owns copy, imagery and section composition. The commerce layer underneath is identical, so a redesign never risks checkout.
Selected at runtime
The active theme resolves from the store record first, then PUBLIC_STOREFRONT_THEME, then the default — so one build can serve different looks.
# .env
PUBLIC_STOREFRONT_THEME=defaultContent lives in the theme
Hero copy, section headings, decorative imagery and CTA labels come from theme config. Routes render themeContent plus live API data.
Isolated by design
A section belonging to one theme never renders for another. Adding a theme cannot regress the one you are running.
Products stay live
Only the product list is API-driven. Everything else is theme-owned static content, so an empty catalogue never breaks the design.






























































































