Phase 40 · Singles · catfish-resistant by design · proposal 2026-05-26 PM

Singles — but tap shows a normal Nabe profile

Founder direction (carried from Phase A list 2026-05-23): "tap profile shows NORMAL Nabe page, not curated dating ad. Catfish-resistant by design." The differentiator: every signal that makes a profile trustworthy here comes from real Nabe activity, not a self-curated bio. You can't fake 3 years of check-ins, 18 quick recs, and 6 mutual neighbors.

Single browse experience inside Explore tab. Profiles open the EXISTING UserProfile drawer (the one already in the codebase), opt-in surface ribbon on profile when "open to meeting people" is enabled.

🎯 Core principle

Singles is a filter, not a fork. When a resident toggles "open to meeting people" on their Nabe profile, that's it — they show up in the Singles browse. There's no parallel "dating profile" with different photos / bio / personality. The profile is the profile.

Catfish-resistance is a side effect of the data, not a feature. The signals that make someone trustworthy are already accumulating: 3 years of check-ins, 6 building neighbors who can vouch, 12 quick recs, 4 events RSVP'd this month. None of that is fakeable on a dating app, but it's the default state of a Nabe resident.

Browse surfaces signals first, photos second. The hierarchy is intentional — building / years here / mutuals / activity before the photo. (Standard dating apps inverse this; the photo dominates.) Reads more like Linkedin-meets-neighborhood than Tinder.

View 1

Browse — neighborhood singles

Lives inside Explore tab as a section header ("Open to meet · 38 nearby"). List card design, NOT swipe deck. Tap a card → opens the existing UserProfile drawer with a new "Open to meeting people" ribbon at the top.

Singles

38 neighbors open to meeting people · Williamsburg + Greenpoint

Every profile is real. No bots, no curated dating photos. You see exactly what your neighbors see — same posts, same check-ins, same building.
More to explore
Why list cards, not swipe deck: Swipe deck telegraphs "dating app," which inverts the whole positioning. List cards keep the surface in the Linkedin/Nextdoor register. Tap to drill in feels familiar.
Why not photos-first: Every other dating app does photo-first. The pitch is the inverse — "you're swiping on a verified neighbor who's been here 4 years, not a stock photo + bio." Signals before face.
View 2

Profile tap — same normal Nabe profile, opt-in ribbon

Tapping a Singles card opens the EXISTING UserProfile drawer. No separate "dating profile" view. Only addition: a small "Open to meet" ribbon + a single primary "Say hi" CTA. Everything else is the standard profile a neighbor sees when tapping the name on any post.

Open to meeting people
Maya Schwartz, 32
She/her · 287 Bedford Ave · 4 years here
87
Block Score
Trusted neighbor

"Designer at Etsy. Marathon-adjacent. Always looking for the next neighborhood spot before everyone else finds it. McCarren mornings, Devocion afternoons."

18
recs
12
check-ins
3
badges
4yr
here
You both know
+2

Sara K., James R., Lucia M., +3

Checked in · 2h ago
McCarren Park · running
Saturday morning loop, 4mi. The track was packed.
Recommended · yesterday
Devocion Coffee
"Cortado before McCarren is the move."
RSVP'd · Saturday
McGolrick Park cleanup
Going · 4 mutuals also going
Posted · 3d ago
"Sunday at the dog park"
Photo-first · 24 likes · 8 comments
Catfish-resistance, in practice: the activity tab is unfakeable. You can't fabricate 12 check-ins at real businesses over 4 years, 6 mutual neighbors, an RSVP to a McGolrick cleanup. The bio is the smallest signal here, not the largest.
Privacy note: when "Open to meet" is OFF, the same profile renders without the ribbon and primary "Say hi" CTA. Same content otherwise — meaning a neighbor can never tell, from their profile, that someone in Singles is "in dating mode" vs. "just a neighbor."
View 3

Opt-in — settings switch on your own profile

Single toggle inside profile settings. Once on, you appear in the Singles browse to other residents who have it on. No separate signup, no different profile.

Open to meeting people

When this is on, neighbors who have it on can see you in the Singles browse. Your profile doesn't change — they see what your other neighbors see.

Visible to others
Toggle anytime. No history saved.
Who can see you
Age range
28 - 38
Interested in
Women
Neighborhood
Williamsburg + Greenpoint (1.5 mi)
Why Nabe Singles works

Every profile you see is already a verified neighbor. Same posts. Same check-ins. Same building. No bot can fake 4 years of activity in the neighborhood you actually live in.

🏗️ Architecture (proposed)

User type extends:
  + singles: {
      enabled: boolean
      lookingFor: 'men' | 'women' | 'all'
      ageRange: { min: number; max: number }
      neighborhoodRadius: 'building' | 'block' | 'neighborhood' | 'nearby'
      bio: string          // optional — uses main profile bio if empty
    }

src/components/singles/
  ├── SinglesBrowse.tsx          // list+grid view, lives inside Explore
  ├── SinglesFilterDrawer.tsx    // age/distance/interest filters
  ├── SinglesOptInToggle.tsx     // settings switch on Profile/Me tab
  └── (no separate ProfileView — taps use existing UserProfile drawer)

UserProfile.tsx (existing — small add):
  + when `user.singles.enabled` AND viewer's singles is enabled too:
      render "Open to meeting people" ribbon at top of hero
      replace "Message" CTA with primary "Say hi" gradient button
  + otherwise: existing profile unchanged

Catfish-resistance signals (none new — all from existing data):
  • Years here (user.neighborhoodYears)
  • Building (user.buildingId → mockBuildings)
  • Mutual connections (intersect viewer's groups/friends with user's)
  • Activity counts (recs, check-ins, posts, RSVPs)
  • Verified badge (already exists on user type)

⬜ Founder calls for next session

🎯 Pitch angle

"Hinge is 27% bots." Match Group's own filings reference platform integrity costs. The data moat dating apps have been spending billions to build, Nabe has by default — because residency, building, mutuals, and 3 years of check-ins aren't fakeable.

"Same profile, single filter." The pitch line. No parallel persona, no curated dating bio, no separate signup. A flag. The product is identity-coherent across every surface.

"Catfish-resistant by design." Built into the architecture, not bolted on with verification badges or selfie checks. The default state of a Nabe profile already meets the bar.