| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Your voice. Your frequency. No permission required.
Try the Live Demo · Report Bug · Sponsor
Somewhere right now, a community radio host is calculating whether they can afford another month of their streaming platform. A podcast collective just lost their entire archive because a service shut down. An independent voice got silenced — not by censorship, but by a credit card expiration.
OpenStudio exists because broadcasting should not require permission. No account creation. No monthly invoice. No terms of service between you and your audience. You clone a repo, you start broadcasting. Your station runs on your hardware. Your audio never touches a server you don't control.
This is a broadcast studio built the way radio was meant to work — direct, unmediated, yours. Vanilla JavaScript. Web Audio API. No framework, no build step, no dependency you didn't choose. Self-host it on a Raspberry Pi, a $5 VPS, a closet server at the back of your hackerspace. The entire client is under 50KB. If you can run Node, you can run a station — rent free.
Connect guests over WebRTC mesh. Mix-minus gives every participant broadcast-quality monitoring — the same technique used in professional studios, now running in a browser tab. Stream to unlimited listeners through Icecast. Record every voice on its own track for post-production. No platform stands between your signal and the world.
git clone https://github.com/msitarzewski/openstudio.git
cd openstudio && npm install && npm start
# Open http://localhost:6736One command. One process. One port.
| OpenStudio | Riverside | Zencastr | StreamYard | |
|---|---|---|---|---|
| Price | Free / self-host | $29/mo | $20/mo | $25/mo |
| Recording | Per-track WAV + mix | Per-track | Per-track | Mix only |
| Self-hosted | Yes | No | No | No |
| Privacy | Zero tracking | Cloud-dependent | Cloud-dependent | Cloud-dependent |
| Max participants | 15 (mesh) | 8 | 15 | 10 |
| Setup time | 30 seconds | Account + payment | Account + payment | Account + payment |
| Open source | MIT | No | No | No |
┌─────────┐ WebRTC Mesh ┌─────────┐
│ Host │◄────────────────►│ Caller │
└────┬────┘ └────┬────┘
│ ┌─────────┐ │
└──────────│Signaling│────────┘
│ Server │
└────┬────┘
│
┌──────┴──────┐
│ Web Audio │
│ Mix-Minus │
│ + Program │
└──────┬──────┘
│
┌──────┴──────┐
│ Icecast │
│ Streaming │
└─────────────┘
Mix-minus is a broadcast engineering standard — each participant hears everyone except themselves. No echo, no feedback. Professional studios have done this with hardware for decades. OpenStudio does it in the browser with the Web Audio API.
Broadcasts auto-expire after 15 minutes on the demo. Self-host for unlimited airtime.
For detailed architecture documentation, see docs/ARCHITECTURE-IMPLEMENTATION.md.
Stack: Node.js · WebSocket · WebRTC · Web Audio API · Icecast · coturn
# Development mode with hot reload
npm run dev
# Run tests
npm test
# With Docker services (Icecast + coturn)
docker compose up -d
npm startSee docs/vision.md for the full project vision and philosophy.
PRs welcome! Please read the existing code before contributing — the codebase is intentionally minimal.
OpenStudio is free, open-source, and built by independent developers. If it's useful to you, sponsor the project on GitHub to keep it that way.
MIT — use it however you want.
| Back | FazBrowse Home | New Git URL |