BrandGym
Studio
Decisions
2
Ops Workspace
E

Decision Log

31 decisions

Architectural and product decisions derived from v3 canonical documents.

31Accepted
0Proposed
0Rejected / Superseded

All Decisions

dec-001Accepted2026-03-01

Firebase over Supabase for BrandGym v3

BrandGym v3 uses Firebase (Firestore + Auth + Storage + Functions) as its primary backend. Supabase was used in earlier BrandGym versions and remains a reference source only.

Rationale

Firebase provides the best multi-tenant isolation model via per-tenant Firestore collections or projects, tight integration with Firebase Auth for tenant-scoped access, and native Cloud Functions for Jimmy AI jobs. Per-tenant Firebase projects are a viable scale path. Supabase was too relational for the dynamic, document-first content model.

Alternatives considered
Supabase (v1/v2 baseline)PocketBasecustom Postgres on Cloud Run
dec-002Accepted2026-03-01

Default region: europe-west6 (Zürich)

All BrandGym v3 tenants default to europe-west6 as data region unless explicitly overridden by the customer.

Rationale

Most customers are Swiss SMEs. GDPR + nFADP compliance is simplified with Swiss data residency. Zürich node provides lowest latency for CH customers. Customer can explicitly opt into another region post-onboarding.

Alternatives considered
europe-west1 (Belgium)us-central1customer-selected default
dec-003Accepted2026-03-03

Monorepo with pnpm workspaces for brandgym-platform

All BrandGym v3 apps (brandgym-dev, studio) and packages (types, ui, config, firebase) live in a single pnpm monorepo.

Rationale

Tight coupling between shared types, UI components and apps makes a monorepo the most productive choice. pnpm workspaces are simple and fast. Turborepo can be added later if build caching becomes a bottleneck. Separate repos would create unnecessary friction during early platform build.

Alternatives considered
separate repos per appNx monorepoTurborepo
dec-004Accepted2026-03-03

brandgym-dev = Operating System, studio = Tenant Workspace

apps/brandgym-dev is the operator control center (platform-wide admin). apps/studio is the tenant-facing workspace (per-customer UI). These are two distinct apps with separate purposes.

Rationale

brandgym.dev must be the strategic, operative and documentation center — operator-level. Studio is customer-facing and tenant-scoped. Mixing them would either compromise security (tenant sees operator data) or usability (operator drowns in per-tenant UI). Clean separation = cleaner product.

Alternatives considered
single app with role-based routingseparate customer portal in brandgym-dev
dec-005Accepted2026-03-03

hub and hub-2 are reference sources only, not v3 targets

The existing hub and hub-2 repos are archived as migration sources and pattern references. They will not receive new features. Useful patterns are absorbed into brandgym-dev or studio.

Rationale

hub/hub-2 are Supabase-based, light-themed, with hardcoded German labels and tenant-specific patterns. Building v3 on top of them would require removing more than adding. Clean break = faster iteration. Pattern absorption: sidebar structure, nav grouping, and billing page concepts from hub are already absorbed into brandgym-dev.

Alternatives considered
continue building on hubfork hub-2 as new base
dec-006Accepted2026-03-06

BrandGym Demo Tenant as canonical dummy tenant (not Irina, not Dartrebellen)

The v3 dummy/test tenant is BrandGym Demo Tenant — a neutral, generic service business. No real customer personas are used for testing.

Rationale

A neutral, generic tenant proves the platform is truly generic — not secretly tuned for one customer type. Real customer data must never appear in tests. BrandGym Demo Tenant is professional, plausible, and tests all modules cleanly.

Alternatives considered
irinagantze photography (historic real tenant)dartrebellen (other real tenant)fully fictional person
dec-007Accepted2026-03-05

Jimmy is a per-tenant AI assistant embedded at platform level

Jimmy is not a standalone AI product. He is a configurable AI layer inside each tenant workspace, with a platform-level orchestration surface in brandgym.dev.

Rationale

Per-tenant Jimmy allows persona customization, tenant-scoped data access, and isolated memory. Platform-level Jimmy surface in brandgym.dev gives operators visibility into all tenant Jimmy activity. No cross-tenant data leakage possible by design.

Alternatives considered
Jimmy as SaaS product sold separatelyJimmy only in Studio, invisible to brandgym.devsingle shared Jimmy for all tenants
dec-008Accepted2026-03-03

No hardcodes — all UI content is data-driven

brandgym-dev (and later studio) must not hardcode tenant names, labels, content or business-specific strings. All UI content comes from data — seed data today, Firestore tomorrow.

Rationale

Hardcodes make the platform impossible to generalize. One hardcoded customer name = the platform is secretly a custom app. Data-driven UI is the only path to real multi-tenancy and scalable onboarding. Seed data (TypeScript constants today) maps exactly to Firestore documents later — no refactor needed.

Alternatives considered
hardcode BrandGym Demo Tenant specifics for speeduse CMS for labels
dec-009Accepted2026-03-07

Product planning objects are platform-scoped, not tenant-scoped

Capabilities, vertical packages, industry blueprints, integrations and roadmap initiatives belong to the BrandGym platform layer. Tenants consume these patterns but do not redefine the canonical planning model.

Rationale

BrandGym needs one central product truth to decide what becomes config, pattern, extension, new module or integration. If planning objects live per tenant, the platform loses comparability, governance and reuse. Platform-scoped planning keeps strategy coherent.

Alternatives considered
tenant-specific module registries onlyfree-form per-customer feature planning
dec-010Accepted2026-03-07

Hero centers Agentic, not BrandGym as product name

The BrandGym hero should lead with the category thesis “Agentic” and a rotating second line, not with the product name as the dominant headline.

Rationale

Leading with Agentic makes the product feel bigger, more modern and more category-defining. BrandGym remains present as the framing brand layer, but not the loudest first-screen message.

Alternatives considered
BrandGym as primary hero headlinetraditional SaaS claim-first hero
BrandGym — Hero & Motion Specdecided by Elöd + Emily
dec-011Accepted2026-03-07

Gym metaphor stays subtle, premium and non-kitschy

BrandGym uses the gym metaphor as a structural and tonal system — training, momentum, discipline, coaching — but avoids literal fitness cliché and visual bro-aesthetics.

Rationale

The metaphor is strongest when it signals performance, conditioning and coaching without collapsing into bodybuilder kitsch. This keeps BrandGym premium, serious and distinct.

Alternatives considered
literal gym brandinggeneric AI SaaS visualsplayful mascot-first product language
dec-012Accepted2026-03-07

CI/CD must cover platform, tenant runtime and agent behavior

BrandGym delivery is not limited to app code. Platform CI/CD, tenant runtime/provisioning CI/CD and agent/prompt/policy CI/CD are all first-class delivery layers.

Rationale

BrandGym is a product where behavior, scope, migration safety and tenant isolation matter as much as build success. Delivery must therefore validate not just code, but operational safety and agent logic.

Alternatives considered
code-only CI/CDmanual agent changes without evaluationtenant runtime validation only after deploy
dec-013Accepted2026-03-07

BrandGym runs on person, project and tenant intelligence layers

The agentic core of BrandGym is layered: Jimmy/Jenny at the person layer, Grace at the project layer and Emily at the tenant/company layer, with specialists as targeted reinforcements.

Rationale

Real coordination requires distinct personal, project and tenant contexts with clean handoffs and memory scopes. This layered architecture is a stronger product category than generic “AI for teams”.

Alternatives considered
single company AI onlysingle per-user assistant onlyflat bot roster without layered memory scopes
dec-014Accepted2026-03-07

Jimmy is the persistent personal front-orchestrator, not the heavy worker for everything

Jimmy/Jenny is the always-present personal front layer: triage anchor, orchestration entrypoint, result aggregator and follow-up owner, while deeper work may run in specialized or scoped internal layers.

Rationale

A personal front layer reduces UX fragmentation, keeps accountability clear and avoids visible bot-zoo confusion while still allowing rich internal orchestration behind the scenes.

Alternatives considered
single heavy all-purpose assistant onlyproject-first visible interfacespecialist zoo as primary UX
dec-015Accepted2026-03-07

BrandGym memory is multi-layer, typed and scope-aware

BrandGym does not rely on transcript memory alone. Memory is externalized across person, project, tenant, specialist and operational layers with explicit write and retrieval rules.

Rationale

Real multi-person, multi-project coordination needs stable scoped memory, confidence handling and explicit visibility states beyond ordinary conversational context.

Alternatives considered
chat transcript onlysingle flat tenant memoryper-agent hidden memory without shared model
dec-016Accepted2026-03-07

Grace is the project intelligence layer, not just another assistant

Grace is canonized as project/room intelligence responsible for project memory, handoffs, decision visibility, dependencies and coordination stability.

Rationale

Projects need their own stable memory and coordination logic. Treating Grace as a true project intelligence layer avoids context collapse and improves handoffs.

Alternatives considered
Jimmy handles all project context aloneflat task lists without room intelligencevisible project bot per customer account
dec-017Accepted2026-03-07

Orchestration and governance are first-class runtime layers

Routing, delegation, approvals, reviews, tool access, risk control and escalation are explicit product architecture, not hidden implementation details.

Rationale

Once agentic work becomes real operational work, governance has to be productized, inspectable and consistently enforced.

Alternatives considered
implicit orchestration onlymanual governance outside product runtimetool access managed ad hoc
dec-018Accepted2026-03-07

Emily is the tenant-wide company intelligence layer

Emily is canonized as tenant-wide intelligence for standards, prioritization, risk, quality and cross-project signals rather than just another assistant persona.

Rationale

Tenant-wide coherence needs a distinct layer above project and personal scopes. Emily provides that without exploding the visible UX roster.

Alternatives considered
Jimmy onlysingle invisible backend coordinatormany visible specialist personas
dec-019Accepted2026-03-07

BrandGym models companies as Company Brains, not just tenants

Company identity is modeled as a structured Company Brain built from public signals, internal truth, human-curated reality and derived operational profiles.

Rationale

Real business support requires richer operational identity than simple tenant metadata. Company Brain enables consistent tone, policy, region and scope behavior.

Alternatives considered
tenant settings onlybrand voice profile onlyfree-form onboarding notes only
dec-020Accepted2026-03-07

BrandGym runtime truth is grounded in explicit runtime objects

BrandGym models runtime behavior through explicit domain objects for identity, company brain, external context, execution, governance, conversation and capabilities.

Rationale

Runtime-first modeling keeps product, data and orchestration aligned and makes implementation safer and more composable.

Alternatives considered
UI-first modelingchat-first modelingad hoc object design per feature
BrandGym — Runtime Domain Modeldecided by Elöd + Emily
dec-021Accepted2026-03-07

Execution is carried by tracks, not loose tasks or chat fragments

BrandGym represents meaningful work as execution tracks with phases, steps, blockers, approvals, retries, handoffs and outcomes.

Rationale

Track-based execution preserves continuity and makes larger work visible, governable and auditable across multiple runs and humans.

Alternatives considered
task cards onlychat checklist onlybrowser runs as isolated technical jobs
dec-022Accepted2026-03-07

Autonomous browser execution is a first-class runtime service

Highly autonomous browser work is canonized as its own runtime service with ephemeral workers, goal contracts, approvals, evidence and destroy-after-use lifecycle.

Rationale

Browser execution is too important and too risky to remain an implicit helper capability. It needs explicit runtime, policy and evidence treatment.

Alternatives considered
browser automation as hidden helper onlypersistent browser bot sessionsmanual-only browser assist
dec-023Accepted2026-03-07

Policy decisions are multidimensional, not a simple allow/deny toggle

Allowed, review, approval or forbidden outcomes depend on action class, scope, risk, competence, platform, credential mode, actor type and visibility.

Rationale

Agentic work crosses multiple domains of risk and authority. A multidimensional matrix is required for real operational safety.

Alternatives considered
single risk score onlybinary permissions onlyplatform-specific ad hoc allowlists
dec-024Accepted2026-03-07

Each company gets its own tenant runtime database

BrandGym uses a control-plane database plus separate tenant runtime databases per company instead of relying on a single shared runtime database with tenant_id filtering.

Rationale

True per-company database isolation provides the clearest security and trust model for a product handling sensitive operational context and credentials.

Alternatives considered
single shared Firestore databaselogical isolation onlyshared runtime DB with soft partitions
BrandGym — Firestore Data Modeldecided by Elöd + Emily
dec-025Accepted2026-03-07

Agentic work must be explainable through audit, evidence and run records

BrandGym documents runs, changes, checkpints, evidence, approvals and failures through explicit audit and run-record structures rather than opaque logs.

Rationale

Trustworthy automation requires reviewable and machine-usable records of what happened, why it happened and what changed.

Alternatives considered
raw logs onlychat summaries onlybrowser screenshots only
dec-026Accepted2026-03-07

BrandGym communicates in a direct, structured and work-friendly way

BrandGym should be clear, non-sycophantic, structured, sparing with questions and proactive with measure rather than chatty or motivational.

Rationale

The product is meant to reduce friction in real work, not perform friendliness. Structured directness is more useful and aligns with user preferences.

Alternatives considered
friendly generic chatbot tonesales-bot enthusiasmhighly verbose assistant style
dec-027Accepted2026-03-07

BrandGym docs follow a truth hierarchy, not a flat pile

BrandGym documentation is explicitly ordered into canonical core, active supporting, partial, legacy and superseded layers.

Rationale

The doc landscape is large enough that explicit truth ordering is needed to avoid mixing old and new product reality.

Alternatives considered
all docs treated equallylatest file winsfolder-based truth only
dec-028Accepted2026-03-07

brandgym-dev becomes the internal runtime operations console

brandgym-dev is canonized as the internal control plane for tenant runtime health, execution tracks, browser runs, approvals, credentials, evidence and intervention.

Rationale

The platform needs one productized internal place where runtime states are visible, governable and actionable.

Alternatives considered
docs dashboard onlyruntime hidden in backend toolsoperators work directly in raw infra consoles
dec-029Accepted2026-03-07

brandgym-dev uses scoped operator roles instead of a superadmin model

Visibility, diagnostics, intervention, governance and security rights are scope-bound and role-specific rather than collapsed into a single superadmin permission style.

Rationale

Once runtime work touches sensitive tenants, browser sessions and credentials, coarse admin models become unsafe and operationally messy.

Alternatives considered
admin vs non-admin onlyglobal ops role with broad accessrole names without scope bindings
dec-030Accepted2026-03-07

Operational attention is productized through explicit alerting and escalation

brandgym-dev models alerts, priorities, recipient logic, bundling, lifecycle and escalation rather than treating operational attention as a side effect of status pages.

Rationale

Good operations depend on the right attention reaching the right role at the right time. That requires explicit alerting design.

Alternatives considered
status pages onlybroadcast notificationsmanual escalation outside product
dec-031Accepted2026-03-07

brandgym-dev runtime UI follows global-to-tenant-to-run drilldown logic

The runtime UI is organized as a coherent control plane with Overview, Tenants, Execution, Browser Ops, Approvals, Policy, Audit, Alerts, Credentials and Incidents views linked through drilldowns and quick views.

Rationale

A coherent runtime UI map is required to turn the canonical runtime architecture into actual operator usability.

Alternatives considered
dashboard-only UIscreen-per-model fragmentationdocs and runtime as separate worlds