One database to start
Search, analytics and vector matching all start on Postgres. A dedicated vector store or analytics engine waits until volume justifies it.
What it does not hold
ID documents are never stored. Verification results sit in their own store.
What it talks to
- 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.
- Chat and rooms: Keeps live state for one-to-one and group chats, plan rooms and the voice speed-meet queue: who is in, whose turn, how long is left.
- Media pipeline: Takes every uploaded photo through quarantine, a child-abuse hash check and an AI image check before it can be seen, then resizes and publishes it.
- Consent ledger: An append-only record of every face reveal, album opening and video grant, and every revocation. Members can read their own.
- AI planner: Turns "something low-key Thursday near Main Street" into a draft plan with a few public places and times. The member edits it and posts it as the host.
- Discovery and recommendations: Finds hubs, people and open seats that fit a member, and excludes anyone who has been reported, pending review.
- Mirror and onboarding: Gets a member to a first suggestion in about three minutes, then asks one question a day and shows what the system believes about them for them to confirm, correct or delete.
Designed for
- Data minimization: only what a feature needs
- Deletion on account closure
Where it appears in a request
- A photo upload: The profile now points at the published photo. A face reveal, if the member wants one, goes through the consent ledger.
- A report against a member: The outcome is logged for the monthly transparency numbers.
- A voice speed-meet: Mutual meet-again votes are stored as the signal that improves the next suggestions.