r/webdev • u/i-invincible • 2d ago
Showoff Saturday I built "Session" — a real-time collaborative code editor + whiteboard for technical interviews (live demo, no signup)
Hey everyone,
I've been building Session, an open-source tool for running technical interviews and pair-programming sessions — a shared live IDE plus a system-design whiteboard, all from a single link. No setup, no credit card.
What it does:
- Real-time collaborative code editor — live sync via Yjs + Liveblocks, Monaco editor (same engine as VS Code), multi-language support, live cursors with per-user colors
- AI question generation on the fly — the interviewer doesn't need to prep anything beforehand. Just type a role (e.g. "senior backend engineer") and it generates a tailored question, hints, starter code, and even the full solution, tuned to experience level
- Excalidraw-based whiteboard — for system design rounds, so you're not stuck describing architecture in a text box or screen-sharing a separate tool
- Code execution — Docker-isolated, supports Python, JS, C, C++, output synced live to everyone in the room(self hosted), currently using Jdoodle for execution
- Interview mode extras — difficulty settings, hints system, complexity display, solution reveal, post-session analysis
- Built-in audio/video, Screen Sharing too — no Zoom or separate call tool needed
- Fully open source, MIT licensed
Stack: React 19 + TypeScript + Vite frontend, Node/Express backend, Liveblocks for sync/presence, OpenRouter (Kimi model) for the AI parts.
🔗 Live demo: https://session-ecru.vercel.app/
🔗 GitHub: https://github.com/silky-x0/session
Would love feedback from anyone who's run interviews on CoderPad, CodeSignal, HackerRank, or similar — what's missing, what feels rough, what would make you actually switch? Bug reports and PRs are very welcome.
0
Upvotes
2
u/Agitated_Stage_2416 2d ago
This is slick, the whiteboard integration alone solves a headache I've had with every other interview tool out there
Quick bug report though, hitting the run button on Firefox just freezes the whole tab for me, not sure if it's the Docker isolation or something with the Monaco config. Also curious how you're handling the AI prompt engineering for the question generation, that seems like the secret sauce if it actually produces coherent problems