Skip to content

Integrate Real WebRTC Video calling (LiveKit / Twilio / Simple-Peer) #434

Closed

Description

@Luluameh
  • Difficulty: Hard
  • Labels: feature, video-calling, webrtc

Description

The current video session room (src/components/session/VideoCall.tsx) uses static placeholder layouts and simulates user join/leave events. We need to replace this mock structure with a real multi-party or peer-to-peer video streaming channel using an open-source WebRTC provider (e.g., LiveKit, Twilio Video, or peer-to-peer via Simple-Peer).

Technical Scope & Steps

  1. Refactor ``to initialize a connection to a WebRTC room signaling channel when the session loads.
  2. Implement local video/audio track publication (mute/unmute video & mic toggles).
  3. Handle remote peer tracks (dynamic layout resizing, showing remote user avatar when their camera is off).
  4. Implement call duration tracking and state handlers to notify the application when the connection drops.

Acceptance Criteria

  • Seeker and Expert can join the same session room and see/hear each other in real-time.
  • Local camera and microphone toggles work seamlessly.
  • Call drops gracefully handle reconnects without crashing the browser tab.

Activity

  1. Agbeleshe commented on Jul 23, 2026

    @Agbeleshe
    Contributor

    Hi, I’d like to work on this issue. I have experience building real-time applications with React, Next.js, TypeScript, WebSockets, authentication, and third-party integrations. I’m interested in replacing the current simulated video session with a functional WebRTC implementation that allows seekers and experts to communicate securely in real time.

    I plan to refactor VideoCall.tsx to connect users to a shared LiveKit room, publish local camera and microphone tracks, handle remote participants dynamically, and display avatars when cameras are disabled. I will also implement mic and camera controls, call-duration tracking, responsive participant layouts, connection-state handling, and graceful reconnection when a call drops. The implementation will include clear setup documentation and tests for the main call states. Please assign this issue to me.

  2. grantfox-oss commented on Jul 23, 2026

    @grantfox-oss

    🦊 GrantFox — @Agbeleshe has been assigned to this issue as part of the Official Campaign | FWC26 campaign!

    Next steps:

    1. Open a Pull Request referencing this issue (e.g., Closes #434)
    2. Your PR will be reviewed by the LightForgeHub maintainers

    Good luck! Track your progress on GrantFox.

  3. grantfox-oss commented on Jul 29, 2026

    @grantfox-oss

    🎉 This issue has been marked as completed on GrantFox as part of the Official Campaign | FWC26 campaign!

    @Agbeleshe's PR #447 was approved and merged by @Luluameh.

    🏆 @Agbeleshe: You earned 35 FoxPoints for this contribution! Your current tier: Explorer (131 total points). Track your full progress on GrantFox.

    👏 Great work, @Agbeleshe! Keep contributing to LightForgeHub.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

GrantFox OSSIssue tracked in GrantFox OSSMaybe RewardedIssue may be eligible for a GrantFox rewardOfficial Campaign | FWC26Campaign: Official Campaign | FWC26

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions