Why Durable Objects
Each chat or room is one small stateful object at the edge. That gives ordering and presence without running a separate chat server, which the first design needed.
Speed-meet queue
For voice speed-meets, a room coordinator groups verified members by interest, runs short rounds with a timer and a prompt, and collects the private meet-again votes.
What it talks to
- Member web app: The installable web app members use to verify, build a profile, find hubs and plans, chat, join voice speed-meets and use the safety tools.
- API on Cloudflare Workers: One API for the whole product. It checks who the member is and what they may see, then calls the right module.
- Voice rooms: Carries the audio for voice speed-meets: short rounds between two verified members.
- Postgres with vector search: Stores profiles, hubs, plans, pulses and moderation outcomes, plus the embeddings used to find people and plans that fit.
- Translation and scam flags: Translates chat for free and flags money requests, crypto pitches and pressure to move off the platform.
- Moderation pipeline: Classifies messages, photos, voice and reports, applies written rules through an action ladder, sends reasons and routes appeals.
Designed for
- Messages pass through moderation before delivery
- Reported members can be removed from a room at once
Where it appears in a request
- A voice speed-meet: A room coordinator pairs members for short rounds and runs the timers and prompts.