I’m the solo developer behind Chefs.Video. It’s a platform for hiring freelancers (devs, designers, editors) by watching them work live, rather than relying on portfolios or resumes.
The Problem: I got burned hiring a React developer on Fiverr. He had 5-star reviews and a great portfolio. It took 2 weeks and $300 to realize he was outsourcing the work and pasting bad jQuery code. Portfolios are easy to fake; live problem-solving isn't.
The Solution: I built a "Live Kitchen" concept. Instead of interviewing or sending take-home tests, you invite the candidate to a paid session.
Video + Screen Share: Built on LiveKit (WebRTC). Low latency is critical so you can direct them ("change that color", "fix that bug") in real-time.
Per-Second Billing: Users pay $0.005/second (~$18/hr).
The "Kill Switch": If the candidate is struggling or using AI to fake it, you can click "Kick". The Webhook immediately cuts the connection and stops the billing. You only pay for the minutes used.
The Tech Stack:
Frontend: Next.js 14 (App Router)
Video Infrastructure: LiveKit (SFU architecture, handles the simulcast for group rooms).
Backend/DB: Convex. (I moved away from Supabase for this because the real-time sync for the "Cost Monitor" needed to be instant).
Billing: Stripe Connect. We use "Destination Charges" to split the payment (Platform fee + Freelancer payout) instantly.
Storage: Cloudflare R2 (for storing the session recordings).
Challenges: The hardest part was the billing logic. Syncing the participant_left webhook from LiveKit with Stripe to ensure we calculate the exact millisecond the user was kicked (to avoid overcharging) was tricky. We settled on a pre-authorization model (holding $20) and finalizing the capture when the room closes.
Why I'm posting: I know this borders on "micromanagement" for some, but I see it as a "paid audition." I’d love feedback on the WebRTC implementation and the billing architecture.
Try it out (you get $20 in credits to test the system): https://chefs.video
ufvy•1mo ago
We are using Simulcast for the video tracks. Since a 'Chef' (Buyer) might have 5 freelancers in a room sharing screens simultaneously, bandwidth was a massive bottleneck in early testing.
We configured the LiveKit room to dynamically downgrade the video resolution of the 4 'passive' screens while keeping the 'active' focused screen in 1080p.
Also, regarding the 'surveillance' aspect: I know this is controversial. The goal isn't to watch someone work for 8 hours a day. It's designed for 15-30 minute sprints to verify skill before offering a longer contract. Think of it like a pair-programming interview, but paid.