How Friends? works · the whole flow

Six steps. One real friendship, hopefully.

Friends? is built to collapse the distance between "I want more friends" and "next Tuesday we're getting coffee." Each step is designed to reduce the reasons people stall.

Step 01

Sign up

Email + passphrase. The passphrase derives your end-to-end encryption keys via Argon2id — it stays on your device and we never see it. Your free-tier account is live in under a minute.

Step 02

Take the personality test

IPIP-NEO-120 — 120 items, roughly 15 minutes. Produces a 30-facet Big Five profile. Not a mood ring. You see the full breakdown on your profile page.

Step 03

Set your city & preferences

Pick a city-level location (we never track exact GPS). Set your match radius 5–200 km. Pick age range and gender preferences. Tick interest tags.

Step 04

Meet matches — ranked for you

A swipe deck of up to 80 people, ranked by facet-vector compatibility + shared interests + proximity. Each card shows the Match Score, the top three reasons you matched, the distance, and three conversation starters.

Step 05

The AI plans the first hang

Tap Plan-the-Hang on any match. The Friend? AI proposes three candidate plans — a real venue near you both, a time, two conversation starters. One tap sends the invite.

Step 06

E2EE DMs + push when they reply

Every DM is XChaCha20-Poly1305 + X25519 sealed-box encrypted. Web push when someone responds, RSVPs to your hang, or requests to be your friend. We literally can't read the messages.

What we built under the hood

The system behind it

  • Matching runtime. 30-facet Big Five vector math in Postgres, ranked by weighted cosine similarity across the whole eligible user set — not a paginated 50-row window.
  • Friend? AI companion. Cerebras qwen-3-235b primary, Groq llama-3.3-70b fallback, Anthropic Claude as final safety net. Context-aware: knows your matches, friends, pending hangs, local events, subscription tier.
  • Live events engine. Ticketmaster + OpenStreetMap + Reddit + Yelp + public holidays, refreshed every 15 minutes, proximity- filtered, weather-annotated via Open-Meteo.
  • E2EE stack. XChaCha20-Poly1305 AEAD, X25519 sealed boxes, Argon2id key derivation. Private keys are never sent to our server in any form — encrypted or otherwise.

Related: the matching model in detail · the encryption stack.

Frequently asked

How long before I see matches?

Right after the personality test. The matching runtime computes your deck the moment your profile is complete. You can start swiping in under 20 minutes from first visit.

Do I have to finish the personality test in one sitting?

No — answers autosave. Come back and pick up where you left off. You don't get matches until all 120 items are done, because partial tests don't produce stable facet scores.

Is the Friend? AI required?

No. You can match and DM without ever talking to the AI. The AI is there for when you want it: plan-the-hang, conversation starters, 'who should I match with next,' profile advice.

What if nobody in my city matches?

We auto-fanout your profile into the decks of every nearby user within range and auto-refill your own deck the moment it runs dry. If no one in your radius is a strong fit, the deck tells you to widen the filter.

How does pricing work?

Free tier is real. $7.99 (Friend+) unlocks DM send and AI-planned hangs. $14.99 (Social) is unlimited. $29.99 (Founders', capped at 1,000) adds verification and priority matching.

Give it five minutes

Meet people who actually fit — and do something real.

Free tier, Big Five test, three matches nearby. No ads, ever.