Skip to content

feat(launcher): Tauri desktop launcher for multi-org Studio#4178

Open
vibegui wants to merge 2 commits into
mainfrom
vibegui/tauri-multi-org-launcher
Open

feat(launcher): Tauri desktop launcher for multi-org Studio#4178
vibegui wants to merge 2 commits into
mainfrom
vibegui/tauri-multi-org-launcher

Conversation

@vibegui

@vibegui vibegui commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

What is this contribution about?

Adds apps/launcher, a lightweight cross-platform (macOS/Windows/Linux) Tauri v2 desktop launcher that renders the hosted Deco Studio in native OS WebViews — one window per org, all sharing a single login — so you can keep several orgs open at once without the memory footprint of a browser per org. It talks only to the hosted backend (configurable via DECO_STUDIO_URL; no local mesh/Postgres/NATS), and ships an app menu + system tray, single-instance focus, window-state and session restore, and per-window org titles ({org} - Deco Studio). The package is fully decoupled from apps/mesh (imports no app code) and is excluded from the root Bun workspace ("!apps/launcher") so a normal bun install doesn't pull the Tauri CLI / Rust toolchain.

Screenshots/Demonstration

N/A — native desktop windows; run locally to see (see How to Test).

How to Test

  1. cd apps/launcher && bun install
  2. bun run dev (requires Rust + Cargo)
  3. Expected: a native Deco Studio window opens against studio.decocms.com; log in once, then ⌘/Ctrl+N opens more windows that share the session; the tray lists recent orgs; quitting and relaunching reopens your org windows with titles like deco - Deco Studio.

Migration Notes

None. Root bun install is unaffected (the launcher is excluded from the workspace and built with its own toolchain). Known follow-up: validate OAuth inside the WebView (Google may reject embedded WebViews — a desktop UA is set as the first mitigation; see apps/launcher/README.md).

Review Checklist

  • PR title is clear and descriptive
  • Changes are tested and working
  • Documentation is updated (if needed)
  • No breaking changes

Summary by cubic

Adds a cross-platform Tauri desktop launcher that opens the hosted Deco Studio in native OS WebViews, one window per org, sharing a single login. Improves multi-org workflows with lower memory than browser tabs, plus session restore and tray/menu controls.

  • New Features

    • New apps/launcher (Tauri v2) using the system WebView; each org opens in its own window.
    • Shared session across windows and per-window titles like "{org} - Deco Studio".
    • App menu and system tray with New Window and recent orgs; Cmd/Ctrl+N; single-instance focus.
    • Window geometry + session restore; reopens last org windows on launch.
    • Hosted-only backend (configurable via DECO_STUDIO_URL), no local mesh/Postgres/NATS; remote windows are sandboxed (no Tauri IPC). Package is decoupled and excluded from the root workspace; @tauri-apps/cli is a local devDependency.
  • Bug Fixes

    • Added a no-op check script in apps/launcher/package.json so bun run --workspaces check succeeds even though the launcher is excluded from the root workspace.

Written for commit 95af06e. Summary will update on new commits.

Review in cubic

vibegui and others added 2 commits June 26, 2026 23:54
Lightweight cross-platform (macOS/Windows/Linux) launcher that renders the
hosted Deco Studio in native OS WebViews — one window per org, all sharing one
login — instead of heavyweight browser tabs. Talks only to the hosted backend
(configurable via DECO_STUDIO_URL); no local mesh/Postgres/NATS. Includes app
menu + tray, single-instance, window-state, session restore, and per-window
org titles. Fully decoupled and excluded from the root Bun workspace.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…asses

bun run --workspaces enumerates apps/launcher even though it is excluded
from the workspace install via the "!apps/launcher" pattern, and errors
when a workspace lacks a 'check' script. Add a self-documenting no-op
(the launcher is a Rust/Tauri app with no TypeScript to typecheck).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant