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
The frontend and backend share types via Hono RPC. Real-time media is streamed over WebTransport using the MOQ protocol, consumed as published npm packages (
@moq/*).
app/ Web frontend (SolidJS + Vite)
api/ Backend API (Cloudflare Workers + Hono)
native/ Desktop/mobile app (Tauri v2)
dev/relay/ Local relay server config
Required:
Recommended:
Clone the repo:
git clone 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
- relay — 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 |
Hang uses moq — an open-source library for real-time media streaming over WebTransport and QUIC. The @moq/* npm packages provide the protocol implementation, and the moq-relay binary (via nix flake) runs the local relay server. See moq.dev for full documentation.
Dual-licensed under MIT or Apache 2.0, at your option.