Side-by-side comparison
Ribbon always visible
Anyone who taps this profile — from feed, search, group, or Singles — sees the "Open to meeting people" ribbon. Honest, low-friction.
"Designer at Etsy. Marathon-adjacent. McCarren mornings, Devocion afternoons."
Ribbon only when viewing from Singles
Tapping the same profile from a feed post → normal profile. Tapping it from the Singles browse → ribbon + "Say hi" CTA. The viewer's context controls visibility.
"Designer at Etsy. Marathon-adjacent. McCarren mornings, Devocion afternoons."
⚖️ Claude's recommendation
Option A (currently shipping) matches the rest of Nabe's "identity-coherent across surfaces" principle. The product premise is that you're the same person on every screen — your photo's the same, your posts are the same, your building is the same. Hiding the Singles state on some views and showing it on others breaks that principle.
Option B feels right for old-school dating apps where the dating persona is the parallel persona. For Nabe, where Singles is "a filter, not a fork," Option A is more on-brand. The ribbon is a small signal that says "yes, this person is on Singles and they know everyone can see that."
If anything in the demo feels off when you walk through it, swap to Option B with the one-line gate. But Option A is the more honest default.
🏗️ Implementation toggle
// ProfileContainer.tsx hero — Option A (current):
{user.singles?.enabled && }
// To swap to Option B (privacy mode):
const viewedFromSingles = useFromSinglesContext(); // new context, set when
// navigating from Singles
{user.singles?.enabled && viewedFromSingles && }
// SinglesContext provider wraps SinglesBrowse and signals to nested user
// profile drawers that the navigation came from Singles. Reset on close.