Real-time communication platform built on Media over QUIC.
Try it at hang.live.
Hang combines a closed-source application layer with an open-source media streaming library:
- app — Web frontend built with SolidJS, Vite, and Tailwind CSS v4
- api — Backend running on Cloudflare Workers with Hono and Drizzle ORM
- native — Desktop/mobile app using Tauri v2
- moq — Open-source media streaming library using WebTransport and QUIC (git submodule)
The frontend and backend share types via Hono RPC. Real-time media is streamed over WebTransport using the MOQ protocol, handled by the moq/ submodule.
app/ Web frontend (SolidJS + Vite)
api/ Backend API (Cloudflare Workers + Hono)
native/ Desktop/mobile app (Tauri v2)
moq/ Media over QUIC libraries (git submodule → github.com/kixelated/moq)
Required:
Recommended:
Clone the repo with submodules:
git clone --recurse-submodules https://github.com/moq-dev/hang.live.git
cd hang.liveWith Nix + direnv (recommended):
direnv allow
just devWithout Nix:
bun install
just devjust dev starts three services concurrently:
- api — Cloudflare Workers dev server (via wrangler)
- app — Vite dev server on port 1420
- moq — MOQ relay server
| Command | Description |
|---|---|
just dev |
Run all dev servers |
just check |
Run linting and type checks |
just fix |
Auto-fix formatting and lint issues |
just build |
Build all packages |
just deploy <env> |
Deploy API and app to Cloudflare |
just native |
Run the native desktop app |
The moq/ directory is a git submodule containing moq — an open-source library for real-time media streaming over WebTransport and QUIC. It provides the protocol implementation and relay server that Hang uses for low-latency audio/video delivery. See the moq README and moq.dev for full documentation.
Dual-licensed under MIT or Apache 2.0, at your option.