Skip to content

Frens System โ€” Quick Reference โ€‹

Privacy-first reconnection through venue-bound broadcasting


Core Concept โ€‹

Saving someone = Broadcasting YOUR lantern to THEM at specific venues

  • You don't track them, they track you
  • Venue-specific visibility (not everywhere)
  • Mutual save required to see each other
  • No persistent chat outside venues

User Flow โ€‹

1. Meet at venue โ†’ Accept wave โ†’ Chat
2. Tap "Save Connection"
3. Choose which venues to broadcast at
4. They can now see YOUR lantern at those venues
5. If they save you back โ†’ Mutual connection! ๐ŸŽ‰

Key Features โ€‹

Venue-Bound Broadcasting โ€‹

  • Each venue is a separate choice
  • "Coffee House only" vs "Coffee House + Speakeasy"
  • Prevents routine tracking

Asymmetric Visibility โ€‹

  • One-way save: They see you, you don't see them
  • Mutual save: Both see each other at shared venues
  • Always under your control

No Persistent Chat โ€‹

  • Messages only when both at venues
  • 2-hour post-meetup window for logistics
  • Beacon Invites for coordination ("I'll be there Thursday")

Components โ€‹

ComponentLocationPurpose
SaveConnectionPromptsrc/components/Modal after chatting to save connection
FrensListsrc/screens/frens/Main frens screen with filters
FrenProfilesrc/screens/frens/Individual fren details
ManageVenuesModalsrc/components/Choose broadcast venues

Routes โ€‹

  • #/frens - Frens list
  • #/frens/:id - Individual fren profile

States โ€‹

One-Way Save โ€‹

You saved them:
๐Ÿ“ก Broadcasting to them at Coffee House
๐Ÿ‘๏ธ Can't see their lantern anywhere

Mutual Save โ€‹

Both saved each other:
โœจ Shared venues: Coffee House
๐Ÿฎ Both can see each other's lanterns there
๐Ÿ‘‹ Priority wave option

Multiple Venues โ€‹

You broadcast: Coffee House, Speakeasy
They broadcast: Coffee House
Result: Mutual at Coffee House only

Privacy Principles โ€‹

โœ… Venue-bound - Never see someone everywhere
โœ… Consent-based - Each venue is a choice
โœ… Asymmetric - You broadcast to them, not track them
โœ… Revocable - Remove venues or connection anytime
โœ… No stalking - Can't build routines or patterns


Implementation Status โ€‹

  • โœ… Frontend components with mock data
  • โœ… Storybook stories
  • โœ… Routing integrated
  • โณ Firebase backend (next phase)
  • โณ Real-time lantern queries
  • โณ Beacon Invites system

Next Steps โ€‹

  1. Test components in Storybook: npm run storybook
  2. Preview in app: Navigate to #/frens
  3. Implement Firebase schema (see FRENS_SYSTEM.md)
  4. Add real-time listeners for lit lanterns
  5. Build Beacon Invites feature

Built with VitePress