Safe & Cooperative
Verified, moderated, legally-compliant random video chat. Built for the post-Omegle regulatory landscape: UK OSA, EU DSA, US § 2258A, Norwegian Social Media Age Limits.
Node 20
Express
Socket.IO
Postgres
Redis
coturn
Yoti AE + IDV
Twilio Verify
Thorn Safer
Hive AI
NCMEC
Status
26 / 26
tests green
Week 1–2
Yoti age assurance
4 / 5
compliance § A items
9
weeks to launch
Try it
🎬
Interactive demo →
Click through verification, matching, moderation pipeline, moderator dashboard, NCMEC report. Fully client-side, no backend needed.
🔐
Verification UI →
Real onboarding UI that calls
/verify/age & friends. Needs the Node server running (npm run dev).Documentation
📖
README →
Package map and quickstart.
🏛️
Architecture →
Seven-layer design, threat model, what risk each component mitigates.
🗺️
Roadmap →
9-week build sequence. We are at Week 1–2.
✅
Compliance checklist →
Pre-launch gate. Item A (age assurance) is 4/5.
🪪
Yoti setup →
Sign-up, key handling, error reference for the age-assurance layer.
📝
Week 1–2 changelog →
Yoti integration — what changed, what was tested, what's open.
Legal
📄
Terms of Service →
Banned conduct, age requirement, attestation warning.
🔒
Privacy Policy →
Data categories, retention, sub-processors, lawful basis.
🚫
Moderation Policy →
What's banned and how we detect — public by design.
📊
DPIA →
GDPR Art. 35 data protection impact assessment with Yoti flow.
Compliance status (§ A — Age assurance)
Yoti AE integrated done
Threshold 23 (5y margin over the 18 legal floor). Typed errors. Mock preserved for dev.
IDV fallback offered done
Borderline 18–22 routed to Yoti Identity Verification. Only
age_over:18 requested — minimisation.verifiedAt logged done
Set on the ticket at AE-pass or IDV-success; baked into the signed JWT.
No un-verified path to matching done
/verify/finalize refuses with
age_not_verified. Covered by integration tests.Live Yoti smoke test deferred
Needs business account + downloaded PEM. See docs/yoti-setup.md.