C.W.K.
Stream
Lesson 01 of 05 · published

When PIN Stops Being Enough

~15 min · triggers, migration, scaling-up

Level 0Greenhorn
0 XP0/53 lessons0/14 achievements
0/100 XP to next level100 XP to go0% complete

The PIN layer from Track 5 is the right answer for a startling number of solo apps: low-stakes data, single user, network-perimeter already in place. But threat models shift over time — and so should your auth.

The trigger conditions

TriggerWhat changedAdd
You added a second user (partner, friend, family)Per-user accountability matters now; PIN sharing breaks accountabilityPer-user identity (passkey or magic link)
You expose the app outside TailscalePerimeter is gone; PIN is now the only gate2FA + reverse-proxy WAF + mandatory longer PIN
The data became sensitiveHealth, finance, work secrets, NDA materialHardware key, encrypted data at rest, audit log retention
You added paying usersCompliance enters the chatReal IdP (Auth0, Clerk, Supabase Auth)
You hit a recurring brute-force baselineAttackers found you and careRate-limit at edge, reCAPTCHA / Turnstile, geo-blocks
Mobile app addedCookie-based session model fits browsers, not nativeOAuth2 device flow, refresh tokens, native biometrics

What doesn't change

Even after upgrading: keep the PIN layer for solo-dev sessions. Defense in depth means the network perimeter, the per-user identity, and the application-level gate all coexist. Removing layers because you "have something better" is the most common downgrade pattern in the wild.

External links

Exercise

For each of your apps, write the trigger conditions you've already crossed (if any). Most solo dev apps haven't crossed any — that's a useful reality check. For ones that have crossed one (e.g., 'I added a friend's account'), draft a one-week migration plan that ADDS the new layer alongside, not replacing.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.