-
-
Jigijam app icon
-
Roast Me: Dash, the AI host, answers you live. Hold to talk and everyone in the room hears you.
-
The feed, Roast Me and The Judge: every room has a cast of talking AI avatars and chairs for real people.
-
Plus unlocks creating and remixing rooms; Superchat makes the cast answer you out loud. US: Plus $5.99/mo, Superchat $0.99-$5.99.
-
Watching needs nothing. Take a chair to talk; your mic is live only while you hold. Invite friends or remix any room.
-
Roast Me, 1179x2556 with no device frame: the host answers you live while the room listens.
Inspiration
Talking to an AI is usually a private, one-on-one chat box. Watching people talk live is usually a feed you scroll past. We wanted the thing in between: a live room where AI characters with faces and voices run the show, and real people take a seat and talk back, while everyone else in the room watches and listens.
What it does
Jigijam is a feed of live rooms. Every room has a cast of talking AI avatars, and one or more chairs for real people.
- Pitch – sit in front of a panel of AI investors and pitch your idea out loud. They question you, push back, and decide.
- Roast – trade burns with an AI roaster, turn by turn, with strikes if you talk over them.
- Judge – two people bring a dispute, each gets the floor in turn, and an AI judge hears both sides and rules.
- Bluff Party – a bluffing party game. Everyone writes a fake answer to a strange-but-true question, the host avatar reads them all aloud, and you try to spot the real one. Empty seats are filled by AI players, so you can start a game alone.
- Create or remix rooms – Jigijam Plus members can create their own rooms, or remix an existing one into a new version.
- Superchat – viewers can send a paid comment that the cast has to answer out loud, live in the room.
Anyone can walk into a room and watch. Viewers hear the avatars and the seated people's real voices, live.
How we built it
- App: React Native with Expo (SDK 57), Expo Router, Reanimated and Rive. iPhone today; Android is next.
- Avatars: AvatarFactory, our own real-time character SDK. Every character is a hand-rigged Rive file rendered on the phone, not a video stream, and its mouth is driven by the audio playback clock, so the lips land on the words. Because rendering happens on the device, a room with 200 people watching costs the same to draw as a room with one.
- Room server: Node.js + TypeScript over WebSockets. It runs each room's turn-taking, clocks and rules, so every phone sees the same room.
- Voice loop: Deepgram streams speech-to-text from the chair, an LLM on Groq writes the avatar's reply, ElevenLabs speaks it, and the audio streams back to every phone in the room.
- Real-time audio/video: LiveKit.
- Data: Firebase / Firestore for rooms and the feed; RevenueCat for Jigijam Plus; Sign in with Apple; Sentry and Axiom for errors and logs.
- Each room is described by its own config (cast, chairs, clocks, rules, interruption policy), not hard-coded, so a new room is mostly data.
Challenges we ran into
- One speaker at a time on a phone. On native, every avatar in a room shares a single audio player and a single lip-sync clock. When two avatars overlapped, one line vanished or two mouths moved for one voice. We built a "floor" system: one seat holds the audio, and the next speaker only starts after the previous one has been stopped.
- An iOS crash on the core action. Rooms start playing audio before anyone sits down, so the iOS audio engine started in playback-only mode. When someone took a chair and granted the mic, there was no input to tap and the app crashed. We rebuilt the engine in voice mode at that moment and resumed playback.
- Interruptions are a design problem, not just a detection problem. Detecting someone talking over an avatar is easy. Deciding what should happen is per room: investors stop and judge whether the interruption was fair, the roaster gives strikes and then mutes, the judge warns and then mutes.
- Making AI players not feel like AI. In the bluffing game, AI fake answers were too tidy. Players spotted them instantly. We generate them after the humans submit, match their length and style, and let AI players vote wrong in believable ways.
- Timing only shows up with real voices. Our tests used instant fake speech and passed, while the real game had countdowns and reveals landing out of sync. We started replaying flows against real speech timing and writing out the full timeline before changing anything.
- Performance. Lip-sync runs against the audio clock, so any stall on the JS thread shows up as mouths lagging. We profiled the room and cut unnecessary re-renders across the stage.
Accomplishments that we're proud of
- A live, multi-person voice room where AI avatars and real people take turns naturally, shipped on the App Store.
- A party game you can start alone, because the AI fills the table.
- Rooms defined as data, so each new format reuses the same stage, clocks and voice loop.
Who built it
Avadh Dwivedi designs the characters, the rooms and the app; he's a product designer and Rive specialist. Atul Choudhary built the room engine and the live audio. The avatars run on AvatarFactory, the real-time character SDK our team builds.
What we learned
Real-time voice is mostly about time: who holds the floor, how long a line really takes to say, and what happens when two people talk at once. And an AI in a group has to follow the room's rules, not just answer well.
What's next for Jigijam
More formats, each one a config rather than a new release. Previewing and editing a generated room before it goes live, private rooms for friends and cameras in every room are built and in testing for 1.2. After that: avatars that host live shows.
Built With
- deepgram
- elevenlabs
- expo.io
- firebase
- firestore
- groq
- ios
- livekit
- node.js
- react-native
- revenuecat
- rive
- sentry
- typescript
- websockets
Log in or sign up for Devpost to join the conversation.