Once a second human enters your app, you've crossed into identity-management territory. The patterns get more specialized.
The three common patterns
| Pattern | Best for | Friction |
|---|---|---|
| OAuth (Sign in with Google/GitHub/Apple) | Apps where users already have a stable identity at one of those providers | Lowest — 1 click; vendor lock-in to the IdP |
| Magic links (email) | Solo dev who wants per-user accounts without passwords | Low — type email, click link; depends on email reliability |
| Passkey-only signup | Tech-comfortable user base, modern devices | Medium — 'create a passkey' is still novel UX |
The magic link pattern (cheapest per-user solution)
Pros: zero passwords, per-user accountability, recovery is just "send another magic link". Cons: depends entirely on email security — the user's email password becomes a transitive credential for your app.