Inspiration
We got inspired by the newly released game On-Together, which makes studying and focusing on tasks a fun experience.
We wanted to bring a similar vibe to our app by creating a web app that allows you to meet with friends, talk to them, and study together.
What It Does
Copium Friends is a collaborative study web app where friends join shared servers and learn together as animated cats.
Current features include:
- 3 playable cat characters: Jojo, Mimi, Cici
- 3 cat action states for in-session expression
- Server creation and join-by-code flow
- Real-time member list, chat, and draggable character presence
- Study tools: Talk with Cat, Flashcards, and Quizzes
- A production-ready turn-based voice workflow with real-time mode foundations
How We Built It
With lots of love and head bashing.
No really, we used:
- Frontend: Vite + React + Tailwind CSS
- Backend: Node.js + Express
- Realtime: Socket.IO
- AI: Gemini API + ElevenLabs API
Best Use of Gemini API
We use Gemini as the core reasoning engine behind every study feature, with a backend-first design focused on quality, consistency, and reliability.
Core Features
- Flashcards: Gemini turns a study topic into clean, structured Q/A cards.
- Quizzes: Gemini generates MCQ, short-answer, and long-answer quizzes with user-selected question counts.
- Grading + Feedback: Gemini evaluates responses and returns clear scoring, including near-correct handling for text answers.
- Talk with Cat: Gemini powers the cat’s responses with context-aware, study-focused guidance.
Production Reliability Layer
- Structured Output Enforcement: Responses are constrained to JSON-style schemas for predictable parsing.
- Server-Side Validation: We validate structure, completeness, and response quality before returning to clients.
- Quality Safeguards: Weak or low-signal responses are filtered, with retry/fallback handling for better stability.
- Backend-First Security: API keys and model calls stay server-side; clients only consume validated results.
- Consistent UX: Unified prompting + validation keeps behavior aligned across flashcards, quizzes, grading, and chat.
Best Use of ElevenLabs
We use ElevenLabs as a dedicated real-time voice infrastructure layer, integrated with a backend-orchestrated AI pipeline for reliability and low-latency interaction.
- Scribe STT for microphone speech-to-text
- TTS for the cat’s spoken replies
- WebRTC session/token plumbing for low-latency conversational transport and live voice session control.
Current voice pipeline:
Voice capture -> STT transcription -> Gemini reasoning/orchestration -> TTS synthesis -> client playback
Implementation quality and maturity:
- Reliable structured turn-based voice interactions are fully integrated
- Live WebRTC mode is active with connection lifecycle handling (session state + reconnect strategy).
- Architecture is designed for evolution toward full-duplex conversational audio with interruption/barge-in optimization.
Accomplishments That We’re Proud Of
Definitely the art. Most definitely the art. It’s so damn pretty. Go take a look at the cats. I want to hug them.
Also:
- Smooth multi-page cat flow
- Realtime synced study server experience
- AI-assisted study tools integrated directly into the app flow
What We Learned
Making overlays is really complicated and often better suited for browser extensions.
Embedding arbitrary websites is limited by browser/security headers (CSP, X-Frame-Options), auth restrictions, and cross-site behavior.
What’s Next for Copium Friends
- Add more study and social features
- Improve persistence with production-grade storage
- Build a browser extension for robust overlay behavior
- If motivated… make an actual game
Thank You
Thank you so much for checking out Copium Friends.
Built With
- javascript
- node.js
- npm
- react
- tailwind.css
- vite

Log in or sign up for Devpost to join the conversation.