Skip to content

Changelog

All notable changes are documented here. RTCstack follows Semantic Versioning.


v0.1.0 — 2026-04-21

Initial release.

Infrastructure

  • Docker Compose stack: LiveKit SFU, LiveKit Egress, coturn TURN, Caddy TLS proxy, Redis, MinIO
  • All services use pinned image versions with Docker healthchecks
  • docker/.env.example with all required variables documented

Backend API

  • POST /v1/token — sign LiveKit JWTs with role-based grants (host, moderator, participant, viewer)
  • POST /v1/token/refresh — refresh near-expiry tokens
  • GET/POST/DELETE /v1/rooms — room lifecycle management
  • GET/DELETE /v1/rooms/:roomId/participants/:id — participant list, kick
  • POST /v1/rooms/:roomId/participants/:id/mute — mute audio or video
  • POST/GET /v1/rooms/:roomId/recording/start|stop — composite MP4 recording via LiveKit Egress
  • POST/GET/PUT/DELETE /v1/webhooks — webhook config CRUD with HMAC-signed delivery and retry backoff
  • POST/GET/DELETE /v1/rooms/:roomId/ingress — RTMP/WHIP ingress via LiveKit IngressClient
  • GET/POST /v1/rooms/:roomId/transcription/* — live + post-call transcription (requires STT profile)
  • HMAC-SHA256 request signing with 5-minute replay protection window
  • Rate limiting via @fastify/rate-limit

SDK (@rtcstack/sdk)

  • createCall({ token, url, tokenRefresher? }) — factory returning a Call instance
  • Call class wrapping livekit-client: connect, disconnect, toggleMic, toggleCamera, startScreenShare, stopScreenShare, switchDevice, sendMessage, sendReaction, setLayout, pin
  • Typed EventEmitter with full CallEventMap
  • MockCall + createMockCall() for testing without a LiveKit server
  • Bundle ≤ 80 kB gzipped

UI Kits

  • @rtcstack/ui-react — CallProvider, 7 hooks, 5 components (VideoConference, VideoGrid, ControlBar, ChatPanel, ParticipantVideo), CSS design tokens, dark/light themes
  • @rtcstack/ui-vue — CALL_KEY injection, 7 composables, 5 SFC components
  • @rtcstack/ui-vanillamountVideoConference() imperative API

Example Apps

  • apps/examples/react-example — Vite + React 18, join form, role selector
  • apps/examples/vue-example — Vite + Vue 3, join form, role selector
  • apps/examples/vanilla-example — No-framework HTML + Vite

Website

  • VitePress documentation site with full guide coverage
  • Local search