How friends work

No followers. No requests. Just people you know.

Vibes uses your phone's contacts to find the friends already on the app — hashed on-device, never sent in plain text. There's no public graph and no way to follow strangers.

The model

Contacts only. Mutual only.

Most social products were designed when "the more friends, the better" was assumed. So the default became one-way follows, suggested-for-you, and a public friend count that other people can see and judge. Vibes is built around a different assumption: the right number of people to share music with is small.

So we did three deliberate things. First — there are no follow requests. The only way to be connected on Vibes is for both of you to already have each other's phone number saved. Second — there's no public friend count. Even your own profile doesn't display the number. Third — there is no algorithmic "people you may know," ever.


How it works

Five quiet steps. All on-device.

01

You install Vibes & verify your number.

Standard SMS one-time code. Your phone number is the primary identifier — there's no email, no username, no separate password. The verification proves it's actually your number.

02

Your contacts get hashed on your device.

The app reads your contacts (with your explicit permission), takes each phone number, and runs it through SHA-256 with a per-app salt. The result is a 64-character fingerprint that can't be reversed. The raw number never leaves your phone.

03

The hashes get checked against the server.

Your phone sends the list of hashes to our server in one batched request. The server checks which of those hashes match other Vibes users — and returns only those matches. Hashes that don't match anyone are forgotten immediately and never logged.

04

You see a list of friends already on Vibes.

The matched contacts appear with their display name (the one they chose for Vibes — not the one you saved). You can vibe any of them right away. There's no friend request to send; the relationship already exists in your contacts.

05

That's it. Forever.

The hash check runs again whenever you open the app, in case any of your contacts joined since last time. The server never stores your hashes between requests. There is no other discovery mechanism. There never will be.


Why this is better

Two columns. One choice.

Public follower model

  • Strangers can follow you
  • Friend count is public + judgeable
  • "Suggested for you" decides your graph
  • Posts perform for the algorithm
  • Sharing music = publishing to N strangers
  • Influencer dynamic creeps in

Vibes contact model

  • Only contacts you have saved
  • No public count — anywhere
  • No suggestions, ever
  • Songs go to one specific person
  • Sharing music = handing one person a song
  • Friendship dynamic stays primary

FAQ

Things people always ask.

Can I add someone whose number I don't have?
No. That's the design. If you want to vibe with someone, you exchange numbers first — the same way you'd exchange numbers to text them. Vibes runs on top of your existing relationships rather than trying to manufacture new ones.

What if I block someone?
Block hides them from your friends list and prevents either of you from sending the other a vibe. They aren't notified. The only signal is the absence of vibes — there's no "you've been blocked" screen.

Can I see who blocked me?
No. By policy. We could build that and we won't.

What happens to my contacts when I delete the app?
Your hashes were never persistently stored on the server, so there's nothing to delete on our side. The local copy goes with the app.

What if someone changes their number?
Their hash changes too, so the connection breaks. Once they verify the new number on Vibes, you'll re-link automatically the next time the contacts check runs — assuming you also have their new number saved.

Get the app    More on security