subject: platform

predicate: is-architected-as

object: multi-tenant marketplace platform powering unlimited marketplaces from one codebase, driven entirely by backend bootstrap configuration

status: active

kind: decision

confidence: high


subject: frontend

predicate: must-not

object: contain marketplace-specific code, hardcoded marketplace data, or environment-flag-driven UI

kind: constraint


subject: bootstrap

predicate: must-only-contain

object: data needed before app start (branding, languages, homepage layout, navigation, enabled widgets, footer pages) and must never contain products, orders, cart, or users


subject: translatable-fields

predicate: must-be-modeled-as

object: generic translations.{lang} map so adding/removing a language automatically exposes/removes translation fields across all translatable objects


subject: admin-app

predicate: is-isolated-from

object: marketplace storefront bundle: admin code never ships to storefront and vice versa, though they may share a domain


subject: widgets

predicate: must-not-own

object: page spacing or page width; the renderer owns sections, spacing, and page width, widgets own only their internal layout


subject: auth-and-payment-client-logic

predicate: is-decided-to-extract-into

object: standalone versioned npm packages @marketplaces/auth and @marketplaces/payment, installed as dependencies rather than edited in-repo