Roomly is a lightweight, real-time video meeting app built with Phoenix LiveView and WebRTC. It focuses on simplicity—no installs, no friction, just instant rooms you can join and start talking.
- 🏠 Instantly create a meeting room and share a link.
- 🔗 Join via Link
- 🎥 Real-Time Video & Audio Peer-to-peer communication powered by WebRTC.
- 👥 Participant List See who’s in the room in real time using Phoenix Presence.
- 🎙️ Mute / Unmute Control your microphone during the call.
- 💬 Chat Send messages to everyone in the room instantly.
- Backend: Elixir + Phoenix + LiveView
- Realtime: Phoenix PubSub + Presence
- Frontend: LiveView + JavaScript Hooks
- Media: WebRTC (P2P)
- Database: PostgreSQL
demo.mp4
image_upload.mp4
Roomly uses Phoenix LiveView for real-time UI updates and WebRTC for peer-to-peer media streaming.
- LiveView manages UI state and interactions
- Phoenix Channels / PubSub handle signaling
- WebRTC handles video/audio streams directly between peers
- Clone the repository
git clone https://github.com/your-username/roomly.git
cd roomly- Install dependencies
mix deps.get- Setup the database
mix ecto.setup- Environment Variables (.env)
# Optional HTTPS config
CERT_KEYFILE=./priv/cert/localhost-key.pem
CERT_CERTFILE=./priv/cert/localhost.pem
LOCALHOST=localhost- (Optional) Enable HTTPS (Required for WebRTC across devices) WebRTC requires a secure context (HTTPS) when accessing from other devices.
Generate certificates:
mix phx.gen.certOr use mkcert:
mkcert -install
mkcert localhost 192.168.x.xThen update your .env:
CERT_KEYFILE=./192.168.x.x-key.pem
CERT_CERTFILE=./192.168.x.x.pem
LOCALHOST=192.168.x.x- Run the server
mix phx.server- http://localhost:4000
- http://localhost:4001 (if HTTPS is configured)
The app is configured to bind to:
ip: {0, 0, 0, 0}This allows access from other devices on the same network.
https://192.168.x.x:4001- Fully working in local development
- Tested locally with multiple browser tabs and devices on the same network
- HTTPS support included for WebRTC compatibility
Generate the docs locally:
mix docsThen open doc/index.html in your browser.
open doc/index.htmlRoomly is open-source software licensed under the MIT License.
Feel free to use it for personal or commercial projects. See the LICENSE
file for more information.