- Real-Time Collaboration: Complete Codeforces problems together with your friends.
- Live Scoreboard: Track everyone's progress, time, and submissions live.
- In-Room Chat: Discuss approaches and solutions directly synced to the room.
- Customizable Sessions: Filter problems by rating, tags, and topics.
- Privacy First: No passwords required. We don't store your code or chat logs long-term.
CFRooms contains two main components:
- Web App (Next.js): Holds the backend API, Pusher WebSocket auth, and the central Redis/BullMQ task queues.
- Browser Extension (Plasmo): A lightweight MV3 Chrome extension that injects directly into Codeforces.com pages for seamless integration.
For a deeper dive into the system design, check out our Architecture Documentation.
- Node.js (v18+)
- PostgreSQL Database
- Redis
- Pusher Channels Account
git clone https://github.com/VishalPainjane/CFRooms.git
cd CFRooms/web
# Install dependencies
npm install
# Setup Prisma
npx prisma generate
npx prisma db push
# Start the development server
npm run devcd ../extension
# Install dependencies
npm install
# Start development build
npm run devNote: Load the extension in Chrome via
chrome://extensions→ Developer Mode → Load Unpacked → selectextension/build/chrome-mv3-dev.
We love contributions! Please read our Contributing Guidelines to get started on how to propose bug fixes, submit PRs, and help out.
This project is licensed under the MIT License.