keanan.w
← Work
Title
Lockout
Role
Full-stack, de facto lead
Year
2026
Lockout

People follow through more when someone else is watching. So we made the watching real.

5-state
session machine
Team of 4
24h build

The problem

I'd already built Naiya to plan the week. The thing Naiya couldn't do was make me actually follow the plan. Planning alone never stuck; the commitment stayed abstract until something outside me made it real.

We didn't want to build another AI wrapper, so we started from the behavior, not the model. The bet was simple: people follow through when someone else is watching.

What we built

So I made the watching real. It runs on a five-state session machine (Created → Active → Pending Verification → Resolved → Expired) persisted in Firestore across reconnects. Friends act as witnesses who approve or reject your session. Before your phone unlocks, before-and-after photos get checked by Gemini Vision. Streaks only count verified sessions, not self-report. And the social leaderboard stays accurate under concurrent votes because I ran the updates through database transactions.

Honest weaknesses

AI proof is gameable. The witness step adds friction that might hurt retention. There's a cold-start problem too: no friends means no value. So before building further we put together a real user-research kit, a two-phase interview guide and a survey, to test it with UBC students first.

Stack  React Native, Expo, TypeScript, Zustand, Firebase, Gemini Vision

devpost.com/software/lockedout