Studio Unified Shell + Ops Studio Integration
internal prototype · canonical JSON + Dreamborn Forge HTML
internal generated
design_doc · markdown

Studio Unified Shell + Ops Studio Integration

Studio Unified Shell + Ops Studio Integration Date: 2026 04 29 Status: Approved Problem The Studio app (studio.bezeliq.ai) and Ops Studio (cockpit at cockpit.bezeliq.ai) are separate, unlinked experiences. The Studio sidebar uses a plain text wordmark and a flat link list with an external link to the cockpit. There is no way to navigate between studios from ...

Studio Unified Shell + Ops Studio Integration

Date: 2026-04-29 Status: Approved

---

Problem

The Studio app (studio.bezeliq.ai) and Ops Studio (cockpit at cockpit.bezeliq.ai) are separate, unlinked experiences. The Studio sidebar uses a plain text wordmark and a flat link list with an external link to the cockpit. There is no way to navigate between studios from within a studio.

---

Solution

Replace the current AppShell sidebar with a two-layer navigation shell. Retire cockpit.bezeliq.ai — Ops Studio lives inside Studio at /ops.

---

Icon Rail (always visible, 52px wide)
  • Bezel white logo (https://imagedelivery.net/C0nJXN4TRwsrV5P_U5q4RQ/bezel-white/public) at top, replacing the current BezelIQ text wordmark
  • One icon per studio, stacked vertically below the logo
  • Each studio has a signature color applied to its icon, border, and background tint
  • Coming-soon studios rendered at reduced opacity with a dashed border
  • Clicking a different studio's icon navigates immediately to that studio's root route
  • Clicking the current studio's icon toggles the flyout open/closed
Flyout Panel (150px, slides out from rail)
  • Opens alongside the icon rail — total nav width 202px when open
  • Shows the current studio's name at top (in its signature color)
  • Shows that studio's sub-nav items below (same items the current sidebar shows)
  • Closes when: user clicks the current studio icon again, or navigates to a different studio
  • Default state: open (matches current sidebar behavior)

---

Studio Registry

| Studio | Route | Color | Icon concept | Status | |---|---|---|---|---| | Ops Studio | /ops | Purple #8b86f6 | Network/node graph | Live | | Dev Studio | /dev | Cyan #38bdf8 | Terminal/code brackets | Live | | Sales Studio | /sales | Green #4ade80 | Bar chart / pipeline | Live | | Marketing Studio | /marketing | Amber #fbbf24 | Signal/broadcast | Coming soon | | Finance Studio | /finance | Orange #fb923c | Currency/ledger | Coming soon |

Coming-soon studios: visible in the rail (dashed border, 40% opacity), not clickable.

---

Ops Studio Route (`/ops`)

New Vue route added to the router. Renders a full-height iframe pointing at the cockpit HTML file. The cockpit (cockpit/index.html) is served statically — no rewrite required.

The cockpit's own nav bar (forge nav with logo + "Ops Studio" label) is hidden via iframe CSS or a query param flag so the Studio shell nav does not double up.

---

Studio Home Page (`/`)

StudioHome.vue redesigned as a studio launcher grid. Each studio gets a card using its signature color. Cards for live studios are clickable and navigate to the studio root. Coming-soon cards are visible but inert. Same Bezel logo in the shell rail above.

---

Deployment
  • nginx for studio.bezeliq.ai updated to serve the cockpit HTML at the /ops path (or the Vue app handles it via iframe src pointing to the static file path)
  • cockpit.bezeliq.ai nginx config updated to 301 redirect to studio.bezeliq.ai/ops, then retired
  • No changes to the cockpit file itself beyond hiding its internal nav in iframe context

---

Components Touched

| File | Change | |---|---| | src/components/AppShell.vue | Full rewrite — icon rail + flyout replacing current sidebar | | src/router/index.js | Add /ops route, add /sales, /marketing, /finance stubs | | src/views/StudioHome.vue | Redesign as studio launcher grid | | src/views/OpsStudioView.vue | New — full-height cockpit iframe | | VPS nginx (studio.bezeliq.ai) | Serve cockpit static at /ops or configure iframe src | | VPS nginx (cockpit.bezeliq.ai) | 301 redirect → studio.bezeliq.ai/ops |

---

Out of Scope
  • No changes to cockpit logic, data, or Supabase wiring
  • No Sales/Marketing/Finance studio content (stubs only)
  • No mobile layout changes