The sources of lumyx.dev and docs.lumyx.dev — the public face of Lumyx, an open-source WebRTC SFU in Rust with native observability built in.
| Path | What it is | Dev URL |
|---|---|---|
apps/landing |
Marketing site, built on Astro — lumyx.dev | http://localhost:3000 |
apps/docs |
Documentation, built on Starlight — docs.lumyx.dev | http://localhost:3003 |
brand/ |
Logos, avatars, social banners and Open Graph images | – |
docs/ |
Design notes for this repository | – |
Both apps use @lumyx/ui, the Lumyx design system.
You need Bun and Node.js ≥ 22.18.
bun install
bun run dev # both apps, through Turborepo
bun run dev --filter=@lumyx/docs| Script | What it does |
|---|---|
bun run build |
Production build of both apps |
bun run lint |
ESLint |
bun run check-types |
astro check (TypeScript, .astro and content collections) |
bun run test |
Bun tests |
bun run verify:ds |
Design-system constraints |
Dependencies are hoisted to the root node_modules (bunfig.toml): the apps' Tailwind
@source directives rely on it.
@lumyx/ui is declared once, in the root catalog, as a GitHub tarball pinned to a commit —
bun's lockfile is not stable when two workspaces share a github: dependency. Bump the commit
SHA to update it; it becomes a plain npm version once @lumyx/ui is published.
All optional — production values are set on Vercel.
| Variable | Used by | Default |
|---|---|---|
PUBLIC_SITE_URL |
landing, docs | https://lumyx.dev |
PUBLIC_DOCS_URL |
landing, docs | https://docs.lumyx.dev |
Both are read at build time: the sites are static, so changing one means redeploying.
Typos, broken links and unclear docs are welcome fixes — see the contribution guidelines. Questions about the SFU itself belong in sfu-core Discussions.
The code is MIT © Mathieu Chambaud. The Lumyx name, logo and the assets in
brand/ are not covered by the MIT license and may not be used to imply endorsement.
Versions follow SemVer and are cut from an up-to-date main:
npm version patch # or minor / majorThis runs the CI checks, bumps package.json, commits chore(release): vX.Y.Z, tags vX.Y.Z
and pushes. The tag triggers the Release workflow, which publishes a GitHub release with
generated notes.
