forked from quic-issues/427e7578-d7bf-49c8-aee9-2dd999e25316
2.3 KiB
2.3 KiB
status, created, tags, priority, created_at, depends_on, updated_at, transitions
| status | created | tags | priority | created_at | depends_on | updated_at | transitions | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| archived | 2026-03-16 |
|
medium | 2026-03-16T07:51:50.076Z |
|
2026-03-16T09:31:19.812Z |
|
Peer Discovery by Tags
Status: 📦 Archived · Priority: Medium · Created: 2026-03-16 · Tags: p2p, discovery
Overview
Enable poll owners to discover other users to invite, based on user tags (location, interests, expertise). This is P2P—there's no central user directory. Discovery works by asking connected peers for introductions.
Design
Discovery Mechanism
- Direct invite: Share a poll link or paste a peer ID manually
- Directory server: Lightweight server where users can register their profile for discoverability
- Users opt-in to being listed (toggle in profile)
- Server stores: peer ID, name, tags,
discoverableflag - Query endpoint:
GET /api/users?tag=location:Berlin&tag=expertise:UX - Minimal server—just a thin REST API over a key-value store (e.g., Cloudflare Workers + KV, or a simple SQLite API)
- Peer-chain discovery (secondary): Ask connected peers "who do you know matching these tags?"
- Supplements the directory for users who are connected but not listed
Privacy Controls
- Users opt-in to being discoverable (setting in profile)
- Directory only stores public profile data (name, tags)—no private keys, no bio
- Users can remove themselves from directory at any time
Plan
- Build lightweight directory server (REST API + KV store)
- Add
discoverabletoggle to user profile - Implement directory registration (opt-in publish profile)
- Implement directory search (query by tags)
- Build discovery UI (search by tags, browse results)
- Implement "invite from discovery" flow
- Implement peer-chain discovery as fallback
Test
- Discovery request returns matching peers from connected contacts
- Non-discoverable users are not shared
- Discovered peer can be invited to a poll
Notes
- DECIDED: Adding a lightweight directory server for discoverability
- Directory server can be reused for poll snapshot storage (see spec 009)