1 min readBy Shivraj Soni

Xoom

A Zoom-style video conferencing app—create rooms, join by ID, record meetings. Built to learn WebRTC and Stream.

Full StackStreamWebRTC
View live

Xoom: Video Conferencing (Zoom-style)

I built Xoom to get hands-on with real-time video: WebRTC, Stream’s SDK, and tying it into a full app. You get auth (Clerk), create or schedule meetings, join with a meeting ID, and each user has a personal room. There’s a list of upcoming and past meetings, and you can view recordings. In-call you get basic controls (e.g. end call). Layout is responsive so it works on different screen sizes.

It’s not a full Zoom replacement—it’s a focused project to learn the stack and ship something usable.


Running it locally

git clone https://github.com/Shivrajsoni/xoom.git
cd xoom
bun install

Create .env.local with:

  • NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY and CLERK_SECRET_KEY
  • NEXT_PUBLIC_STREAM_API_KEY and STREAM_SECRET_KEY

Then:

bun dev

App runs at http://localhost:3000.


Tech

Next.js, TypeScript, Clerk for auth, Stream for video, Tailwind, shadcn/ui, Bun.


Things I’d add next

In-meeting chat, screen share, different layouts (grid vs speaker), reactions/polls, and virtual backgrounds. If you’re building something similar, the repo is a good starting point for how to wire Stream + Next + Clerk together.