| tags |
|
|||
|---|---|---|---|---|
| type | decision | |||
| status | active | |||
| area | business | |||
| aliases |
|
|||
| created | 2026-03-06 |
[!info] Related See [[docs/roadmap/Production Roadmap|Production Roadmap]] for the path to managed service and [[PLANS|Phase 9]] for the Symphony Cloud implementation plan.
Symphony implements the [[SPEC|Symphony orchestration spec]] (Apache 2.0, OpenAI) as a Rust-based engine. We want to:
- Build a healthy open-source community around the engine
- Offer a managed service (SaaS) for teams who don't want to self-host
- Protect the intellectual property that makes the managed service valuable
The orchestration engine — everything needed to self-host.
symphony/
├── crates/
│ ├── symphony-core/ # Domain model (Issue, Session, Workspace)
│ ├── symphony-config/ # WORKFLOW.md parsing, live reload
│ ├── symphony-tracker/ # Linear client (+ community: GitHub, Jira)
│ ├── symphony-workspace/ # Per-issue workspace lifecycle, hooks
│ ├── symphony-agent/ # Agent subprocess runner (Claude, Codex, etc.)
│ ├── symphony-orchestrator/ # Poll loop, dispatch, retry, reconciliation
│ └── symphony-observability/# Logging, basic HTTP dashboard + API
├── src/main.rs # CLI binary
├── examples/ # Example WORKFLOW.md files
├── Dockerfile
└── LICENSE # Apache 2.0
What stays open: engine, CLI, basic dashboard, all tracker/agent plugins, WORKFLOW.md format, Docker support.
Why Apache 2.0: Matches the upstream spec license. Maximizes adoption. The engine is not the moat — the managed platform is.
The managed service platform — everything beyond self-hosting.
symphony-cloud/ # next-forge monorepo
├── apps/
│ ├── web/ # Marketing site
│ ├── app/ # Dashboard (auth, billing, tenant mgmt)
│ ├── api/ # Control plane API
│ └── desktop/ # Tauri desktop app (later)
├── packages/
│ ├── ui/ # Shared design system
│ ├── db/ # Tenant configs, run history, audit logs
│ ├── symphony-client/ # TypeScript SDK for Symphony HTTP API
│ ├── auth/ # Multi-tenant authentication (Clerk)
│ ├── billing/ # Subscriptions and usage metering (Stripe)
│ └── analytics/ # Usage tracking
└── infra/ # Deployment, provisioning
What stays private: multi-tenancy, auth, billing, enhanced dashboard, control plane, infrastructure, desktop app.
Why private: These features represent significant engineering effort beyond the spec. They are the differentiation for the managed service.
| Component | Open | Private | Rationale |
|---|---|---|---|
| Orchestrator engine | X | Spec implementation, community value | |
| CLI binary | X | Adoption driver | |
| Basic HTML dashboard | X | Self-hosters need it | |
| WORKFLOW.md format | X | Open standard | |
| Tracker plugins | X | Community contributions | |
| Agent runners | X | Community contributions | |
| Docker/deployment | X | Self-hosting support | |
| Multi-tenant control plane | X | Core SaaS infrastructure | |
| Enhanced dashboard | X | Differentiated UX | |
| Auth + team management | X | Enterprise feature | |
| Billing + usage metering | X | Monetization | |
| Run history + analytics | X | Data platform | |
| Desktop app | X | Connects to cloud |
This model is used by:
- Supabase: PostgreSQL (open) + dashboard/auth/realtime (open core)
- GitLab: CE (open) + EE features (proprietary)
- Grafana: AGPL core + enterprise plugins (proprietary)
- PostHog: Open core analytics + cloud features
- Cal.com: AGPL core + enterprise features
| Tier | Price | Limits |
|---|---|---|
| Self-hosted | Free | Unlimited (bring your own infra) |
| Starter | $49/mo | 3 concurrent agents, 1 project |
| Team | $199/mo | 10 agents, unlimited projects, team auth |
| Enterprise | Custom | Unlimited, SSO, SLA, dedicated infra |
- If community demand is strong, consider open-sourcing the desktop app
- Keep the TypeScript SDK (
symphony-client) as a candidate for open-sourcing — it drives adoption - The enhanced dashboard could become open-source once the control plane is the primary moat
- [[PLANS]] — Phase 8 (OSS release) and Phase 9 (Symphony Cloud) detail the execution plan
- [[docs/roadmap/Production Roadmap|Production Roadmap]] — technical hardening required before launch
- [[CONTRIBUTING]] — contributor guide for the open engine
- [[docs/architecture/Crate Map|Crate Map]] — what ships in the open repo