How beenp/lavoirs works
Lavoirs is a scaffold for interest-based small-group video meetups, from profile setup and matching through a LiveKit conversation, event suggestions, and consent-based contact exchange. The README describes intended responsibilities and flow, but says implementation files are empty placeholders. Edges therefore reflect documented product/API boundaries, not verified runtime calls; no database or event-provider implementation is evidenced.
Main entry points: api-client.ts API client · routes.tsx Page routes · MatchingPage.tsx Matching · RoomPage.tsx Video room
Components 32
Web experience
- Application shell
apps/web/src/app/App.tsx - Page routes
apps/web/src/app/routes.tsx - Profile setup
apps/web/src/features/profile/ProfilePage.tsx - Matching
apps/web/src/features/matching/MatchingPage.tsx - Group preview
apps/web/src/features/matching/MatchPreview.tsx - Video room
apps/web/src/features/room/RoomPage.tsx - LiveKit UI bridge
apps/web/src/features/room/LiveKitRoom.tsx - Event suggestions
apps/web/src/features/events/EventRecommendations.tsx - Contact exchange
apps/web/src/features/events/ContactExchange.tsx - API client
apps/web/src/lib/api-client.ts - LiveKit client
apps/web/src/lib/livekit-client.ts
API routes
- Profile endpoints
api/profiles/index.ts - Session endpoint
api/auth/session.ts - Nearby count
api/matching/nearby-count.ts - Match queue
api/matching/queue.ts - Matched groups
api/matching/groups.ts - Prompt votes
api/matching/prompts.ts - Room operations
api/livekit/rooms.ts - Room token
api/livekit/token.ts - Participants
api/livekit/participants.ts - LiveKit events
api/livekit/webhook.ts - Transcription boundary
api/livekit/transcription.ts - Event recommendations
api/events/recommendations.ts - Consent exchange
api/connections/contact-exchange.ts
Request controls
- Authentication
middleware/auth.ts - Location privacy
middleware/location-privacy.ts - Request validation
middleware/request-validation.ts - Rate limiting
middleware/rate-limit.ts
Service boundaries
- Matchmaking function
supabase/functions/matchmaking/index.ts - Recommendation function
supabase/functions/event-recommendations/index.ts
Other components
- Member
- LiveKit Cloud
Connections 30
- Member → Application shell: uses
- Application shell → Page routes: routes to
- Page routes → Profile setup: opens
- Page routes → Matching: opens
- Page routes → Video room: opens
- Page routes → Event suggestions: opens
- Profile setup → API client: requests profile
- API client → Profile endpoints: calls
- Matching → API client: requests matching
- API client → Nearby count: calls
- API client → Match queue: calls
- API client → Matched groups: calls
- API client → Prompt votes: calls
- Matching → Group preview: shows group
- Video room → LiveKit UI bridge: hosts
- LiveKit UI bridge → LiveKit client: connects through
- LiveKit client → LiveKit Cloud: connects
- API client → Room operations: calls
- API client → Room token: calls
- API client → Participants: calls
- API client → Transcription boundary: calls
- LiveKit Cloud → LiveKit events: sends events
- Video room → Event suggestions: continues to
- Event suggestions → API client: requests events
- API client → Event recommendations: calls
- Contact exchange → API client: requests exchange
- API client → Consent exchange: calls
- Profile endpoints → Authentication: protected by
- Nearby count → Location privacy: uses boundary
- API client → Session endpoint: checks session