https://github.com/futureboard/Futureboard
An open-source digital audio workstation with Native GPUI, React WebUI, Rust DSP, and native plugin hosting.
https://github.com/futureboard/Futureboard
audio daw gpui linux macos midi music music-production online react rust song studio typescript webapp windows
Last synced: about 17 hours ago
JSON representation
An open-source digital audio workstation with Native GPUI, React WebUI, Rust DSP, and native plugin hosting.
- Host: GitHub
- URL: https://github.com/futureboard/Futureboard
- Owner: futureboard
- License: mit
- Created: 2026-05-12T16:50:55.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-06-21T19:28:46.000Z (6 days ago)
- Last Synced: 2026-06-21T21:15:43.783Z (6 days ago)
- Topics: audio, daw, gpui, linux, macos, midi, music, music-production, online, react, rust, song, studio, typescript, webapp, windows
- Language: Rust
- Homepage: https://futureboard.studio
- Size: 25.5 MB
- Stars: 20
- Watchers: 0
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Notice: NOTICE.md
- Agents: AGENTS.md
Awesome Lists containing this project
- awesome-gpui - Futureboard Studio - source digital audio workstation with Native GPUI, React WebUI, Rust DSP, and native plugin hosting. (Apps / Media)
README

**A modern open-source Digital Audio Workstation built with Rust, GPUI, TypeScript, WebAssembly, and native audio/plugin infrastructure.**
[](https://github.com/futureboard/Futureboard/actions/workflows/ci.yml)
[](ARCHITECTURE.md)
[](LICENSE)
[](CONTRIBUTING.md)
[](https://rustup.rs)
[](https://www.typescriptlang.org)
[](https://bun.sh)
[](https://webassembly.org)
[](https://www.gpui.rs)
[](https://steinbergmedia.github.io/vst3_dev_portal/)
[](https://cleveraudio.org)
[](#getting-started)
[Architecture](#architectural-overview) ·
[Getting Started](#getting-started) ·
[Build](#building-the-native-app) ·
[Debugging](#debugging--diagnostics) ·
[Contributing](#contributing)
---
## Preview
MIDI Editor
Mixer
Workspace
---
> [!WARNING]
> **Pre-alpha.** Under active early development — expect breaking changes, incomplete features, and no persistence guarantees. Not ready for production; don't trust it with irreplaceable projects. Nightly builds are test snapshots only.
---
## Architectural Overview
Futureboard Studio is a Digital Audio Workstation whose primary maintained surface is a **native Rust application built on [GPUI](https://www.gpui.rs)** (the rendering framework behind the Zed editor), driving an in-process Rust audio engine. Secondary **web** (WASM DSP) surfaces share layout and engine concepts, but the native app is the main development target.
| Surface | Path | Stack | Status |
| --- | --- | --- | --- |
| **Native** (primary) | `apps/native` | Rust · GPUI · direct audio engine | Main dev target |
| Web | `apps/web` | React · TypeScript · Vite · WASM DSP | Tracks native, may lag |
### Core crates
| Crate | Purpose |
| --- | --- |
| `SphereDirectAudioEngine` | Native low-latency engine (WASAPI · CoreAudio · ALSA) |
| `SphereWebAudioCore` | Web WASM audio core — transport, graph, mixer, meters, DSP |
| `SphereUIComponents` | Native GPUI UI kit, styling, and layout primitives |
| `SpherePluginHost` | Plugin scanning & hosting (VST3, CLAP, AU, VST2 legacy) |
| `SphereAudioPlugins` | Built-in real-time DSP (EQ, compression, delay, …) |
Also: [`plugins/`](plugins/) (stock-plugin editors), [`modules/`](modules/) (noise removal, stem extraction), [`extensions/`](extensions/) (extension templates), [`packages/`](packages/) (shared fonts/icons/assets), [`external/`](external/) (vendored SDKs). See [ARCHITECTURE.md](ARCHITECTURE.md) for the full breakdown.
---
## Getting Started
**Prerequisites:** [Bun](https://bun.sh) · [Rust](https://rustup.rs) 1.78+ (edition 2024) with the `wasm32-unknown-unknown` target · [CMake](https://cmake.org) 3.20+ · a C++ toolchain (MSVC / Xcode CLT / GCC / Clang).
> [!IMPORTANT]
> Vendored SDKs (`external/vst3sdk`, `external/clap`, …) are **git submodules** — clone with `--recursive` (or run `git submodule update --init --recursive` afterwards).
```bash
git clone --recursive https://github.com/futureboard/Futureboard
cd Futureboard
bun install # JS workspace dependencies
rustup target add wasm32-unknown-unknown # web audio core target
```
Run a surface:
```bash
bun run dev:native # native GPUI client (= cargo run -p futureboard_native)
bun run dev:web # React web app
bun run dev:server # collaboration server
```
---
## Building the Native App
The native client is a Rust binary linking the GPUI UI kit, the direct audio engine, and the plugin host (CMake + a C++ toolchain are required for the native plugin/SDK bridge). The `bun run` scripts wrap the equivalent `cargo` commands.
```bash
bun run build:native:debug # debug (= cargo build -p futureboard_native)
bun run build:native # release (= cargo build --release -p futureboard_native)
```
The release binary is emitted to `target/release/FutureboardNative` (`.exe` on Windows).
Package distributables (scripts in `packaging/native/`):
```bash
bun run bundle:native:mac # macOS .app
bun run bundle:native:mac:dmg # macOS .dmg installer
bun run bundle:native:win # Windows portable / installer
bun run build:all # all surfaces (WASM + native)
```
### Platform notes
| Platform | Audio backend | Setup |
| --- | --- | --- |
| Windows | WASAPI (exclusive/MMCSS planned) | `rustup default stable-msvc` |
| macOS | CoreAudio | `xcode-select --install` |
| Linux | ALSA (PipeWire/JACK later) | `sudo apt install libasound2-dev` · `sudo pacman -S alsa-lib` |
---
## Bun Scripts Reference
| Script | Description |
| --- | --- |
| `dev:web` · `dev:native`| Run a surface in dev |
| `build:web` · `build:wasm` · `build:native[:debug]` | Production / debug builds |
| `build:audio:plugins` | Check stock plugin crate + extension template |
| `bundle:native:mac[:dmg]` · `bundle:native:win` | Package distributables |
| `cargo:check` · `cargo:build` · `cargo:release` · `cargo:test` · `cargo:clippy` | Rust workspace passthroughs |
| `cargo:fmt[:check]` · `check` · `lint` · `fmt` | Format & combined checks |
---
## Debugging & Diagnostics
Several subsystems expose verbose logging through environment variables — set any to `1` to enable.
| Variable | Logs |
| --- | --- |
| `FUTUREBOARD_PLUGIN_DEBUG` | Insert add/set/remove/bypass mutations + engine-sync details |
| `FUTUREBOARD_PLUGIN_VIEW_DEBUG` | Native plugin editor lifecycle and view attachment |
| `FUTUREBOARD_ROUTING_DEBUG` | Send, return, and bus routing graph diagnostics |
| `GPUI_DISABLE_DIRECT_COMPOSITION` | Windows composition workaround for native plugin UI |
| `FUTUREBOARD_PLUGIN_EDITOR_MODE` | Plugin editor mode selection |
```bash
# bash
FUTUREBOARD_PLUGIN_VIEW_DEBUG=1 cargo run -p futureboard_native
# PowerShell
$env:FUTUREBOARD_PLUGIN_VIEW_DEBUG=1; cargo run -p futureboard_native
```
---
## Repository Layout
```text
Futureboard
├─ apps/ native · web
├─ crates/ SphereDirectAudioEngine · SphereWebAudioCore · SphereUIComponents · SpherePluginHost · SphereAudioPlugins
├─ packages/ assets · shared
├─ plugins/ modules/ extensions/
├─ external/ vendored SDKs
└─ packaging/ native bundle scripts
```
---
## Roadmap
Toward a usable native DAW foundation: a stable native GPUI shell, audio clip editing, timeline & MIDI editing, mixer routing, native plugin hosting (VST3 editor embedding, CLAP support), a project file format, automation lanes, audio export, and cross-platform packaging. See [ARCHITECTURE.md](ARCHITECTURE.md) for current status.
---
## Contributing
Contributions are welcome — bug reports, build testing, documentation, UI fixes, plugin-hosting and audio-engine work, and platform support. Please read [CONTRIBUTING.md](CONTRIBUTING.md) before opening a pull request; UI work also follows [DESIGN.md](DESIGN.md) and [AGENTS.md](AGENTS.md).
---
## License
MIT — see [LICENSE](LICENSE).