Skip to content

Conversation

@druid-infra
Copy link
Collaborator

πŸŽ™οΈ New Scroll: mediasoup Voice Server

Browser-based WebRTC voice chat - a self-hosted Discord alternative.

Perfect Timing

Discord just announced mandatory photo ID verification globally (March 2026). This scroll provides a privacy-focused alternative.

Features

βœ… Browser-Based - No client downloads, works in any modern browser
βœ… WebRTC - Low-latency voice using mediasoup SFU
βœ… ColdStarter Ready - Auto-wake on STUN/DTLS packets
βœ… DruidUI - Native web management interface
βœ… Pay-Per-Second - Druid's usage-based billing (€0 when idle!)
βœ… Privacy-First - Self-hosted, no photo IDs, full control

Technical Details

Backend:

  • mediasoup (WebRTC SFU) on Node.js 22
  • Express for HTTP/WebSocket signaling
  • Custom packet handlers for ColdStarter wake

Frontend:

  • DruidUI in .scroll/private/
  • WebRTC client interface
  • Real-time connection management

Ports:

  • TCP: HTTP/WebSocket signaling
  • UDP: WebRTC media streams
  • Wake handlers: STUN binding requests, DTLS handshakes

Files:

  • scroll.yaml - Scroll configuration
  • server.js - mediasoup backend (5KB)
  • install.sh - Yarn dependency installer
  • packet_handler/webrtc.lua - ColdStarter wake logic
  • .scroll/private/ - DruidUI interface (HTML + JS)
  • README.md - Full documentation

Use Cases

  • Gaming communities fleeing Discord
  • Privacy-conscious groups
  • Self-hosted team communication
  • GDPR-compliant voice chat
  • Educational institutions

Cost Comparison

Druid Voice Server:

  • Idle: €0/month (sleeps automatically)
  • 1h/day active: ~€1-2/month
  • 24/7: ~€10-15/month

Discord Nitro: €10/month + surrender all privacy

Roadmap

Future enhancements planned:

  • Screen sharing
  • Multiple voice channels
  • User permissions
  • Recording capabilities
  • Matrix/Element integration

Related: This perfectly complements our tweet from today about Discord's photo ID requirements and self-hosted alternatives.

cc @MarcStd @AMXB

- Browser-based WebRTC voice chat (Discord alternative)
- mediasoup SFU backend for scalable voice rooms
- ColdStarter UDP packet handlers for STUN/DTLS wake
- DruidUI web interface for management
- Perfect timing with Discord photo ID requirements

Features:
βœ… Self-hosted voice chat
βœ… No client downloads (browser-based)
βœ… Auto-wake on connection (ColdStarter)
βœ… Pay-per-second billing model
βœ… Privacy-focused (no photo IDs!)

Tech stack:
- Backend: mediasoup (Node.js 22)
- Frontend: DruidUI (WASM)
- Ports: HTTP/WS + WebRTC UDP
- Wake handlers: STUN/DTLS detection
@druid-infra
Copy link
Collaborator Author

Error: This repo is not allowlisted for Atlantis.

- druid-ui-webrtc.wit: Complete WIT interface for WebRTC APIs
- PLATFORM_REQUIREMENTS.md: Implementation guide for platform team

WIT includes:
βœ… getUserMedia (microphone access)
βœ… RTCPeerConnection (peer connections)
βœ… MediaStream/Track handling
βœ… Audio controls (mute/volume/levels)
βœ… WebSocket signaling
βœ… Event system (host β†’ WASM callbacks)

Platform requirements:
- 3-phase implementation plan (MVP β†’ Controls β†’ Advanced)
- Security model for WASM sandboxing
- Browser API mapping
- 4-6 week timeline estimate

This defines the platform features needed to build proper DruidUI
voice components (not just plain HTML/JS).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant