How bnlucas/bump works
Bump is a mobile-first dating and community app. A user signs up or signs in, completes a consent-gated profile, discovers people and swipes; an allowed connection opens a Herald chat. Communities provides a parallel consent- and topic-filtered feed with posts, comments, and likes. Profile preferences and affinities support matching. The map follows documented routes and storage responsibilities; unsampled route wiring is omitted where its caller is not established.
Main entry points: simbee.ts Simbee client · feed.tsx Communities feed · profile-editor.tsx Profile editor · match.ts Matching and consent
Components 26
App experience
- Auth form
src/app/auth/auth-form.tsx - Onboarding
src/app/onboarding/flow.tsx - Discover deck
src/app/(tabs)/discover/swipe-deck.tsx - Chat room
src/app/(tabs)/chat/[streamId]/chat-room.tsx - Communities feed
src/app/(tabs)/communities/feed.tsx - Profile editor
src/app/(tabs)/profile/profile-editor.tsx
API routes
- Auth routes
src/app/api/auth/signup/route.ts - Profile route
src/app/api/profile/me/route.ts - Preferences route
src/app/api/profile/preferences/route.ts - Swipe route
src/app/api/discover/swipe/route.ts - Posts route
src/app/api/communities/posts/route.ts - Comments route
src/app/api/communities/comments/route.ts - Photo route
src/app/api/profile/photos/route.ts - DM notify route
src/app/api/notify/dm/route.ts
Domain logic
- Matching and consent
src/lib/match.ts - Profile logic
src/lib/profile.ts - Post logic
src/lib/posts.ts - Photo logic
src/lib/photos.ts - Notification logic
src/lib/notifications.ts
Backend platforms
- Sigil identity
src/lib/sigil.ts - Simbee client
src/lib/simbee.ts - ShrouDB storage
src/lib/shroudb.ts - Herald messaging
src/lib/herald-admin.ts - ShrouDB courier
src/lib/notifications.ts
App state
- Active context
src/lib/context.ts
Other components
- User
Connections 35
- User → Auth form: uses
- User → Discover deck: discovers
- User → Communities feed: browses
- User → Profile editor: edits
- Auth form → Auth routes: submits credentials
- Auth routes → Sigil identity: creates sessions
- Auth routes → Simbee client: creates user
- Onboarding → Profile route: updates profile
- Profile editor → Profile route: loads and saves
- Profile editor → Preferences route: saves preferences
- Profile route → Profile logic: delegates
- Profile logic → Sigil identity: updates envelope
- Profile logic → Simbee client: updates traits
- Preferences route → Simbee client: reads and writes
- Discover deck → Active context: sets active context
- Communities feed → Active context: shares context
- Discover deck → Swipe route: submits swipe
- Swipe route → Matching and consent: records and opens
- Matching and consent → Simbee client: checks consent and matches
- Matching and consent → Herald messaging: opens stream
- Chat room → Herald messaging: realtime messaging
- Communities feed → Posts route: loads and creates posts
- Communities feed → Comments route: loads and creates comments
- Posts route → Post logic: delegates
- Comments route → Post logic: delegates
- Post logic → Simbee client: stores content metadata
- Post logic → ShrouDB storage: stores post bodies
- Communities feed → Simbee client: likes posts
- Profile editor → Photo route: manages photos
- Photo route → Photo logic: delegates
- Photo logic → ShrouDB storage: stores photo blobs
- DM notify route → Herald messaging: checks membership and presence
- DM notify route → Matching and consent: checks permission
- DM notify route → Notification logic: requests delivery
- Notification logic → ShrouDB courier: sends notification