Skip to content

Null-logic-0/roomly

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

👥 Roomly

Elixir Phoenix LiveView PostgreSQL Hex Docs

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.


🚀 Features

  • 🏠 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.

🏗️ Tech Stack

  • Backend: Elixir + Phoenix + LiveView
  • Realtime: Phoenix PubSub + Presence
  • Frontend: LiveView + JavaScript Hooks
  • Media: WebRTC (P2P)
  • Database: PostgreSQL

🎥 Demo

WebRTC Video Call + Chat Demo

demo.mp4

Image uploads

image_upload.mp4

How It Works

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

🛠️ Getting Started

  1. Clone the repository
    git clone https://github.com/your-username/roomly.git
    cd roomly
  1. Install dependencies
    mix deps.get
  1. Setup the database
Make sure PostgreSQL is running locally, then:
    mix ecto.setup
  1. Environment Variables (.env)
    # Optional HTTPS config
    CERT_KEYFILE=./priv/cert/localhost-key.pem
    CERT_CERTFILE=./priv/cert/localhost.pem
    LOCALHOST=localhost
  1. (Optional) Enable HTTPS (Required for WebRTC across devices) WebRTC requires a secure context (HTTPS) when accessing from other devices.

Generate certificates:

    mix phx.gen.cert

Or use mkcert:

    mkcert -install
    mkcert localhost 192.168.x.x

Then update your .env:

    CERT_KEYFILE=./192.168.x.x-key.pem
    CERT_CERTFILE=./192.168.x.x.pem
    LOCALHOST=192.168.x.x
  1. Run the server
    mix phx.server
Visit:

🌐 Local Network Testing

The app is configured to bind to:

    ip: {0, 0, 0, 0}

This allows access from other devices on the same network.

Example:

    https://192.168.x.x:4001

Development Status

  • Fully working in local development
  • Tested locally with multiple browser tabs and devices on the same network
  • HTTPS support included for WebRTC compatibility

📄 Documentation

Generate the docs locally:

    mix docs

Then open doc/index.html in your browser.

    open doc/index.html

© License

Roomly 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.

About

Roomly is a lightweight, real-time video meeting app built with Phoenix LiveView and WebRTC

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors