Crew Challenges
A Shared Habit Board With the Day-Lock Enforced in the Database
A gamified board where a group takes on challenges together. Anyone can add themselves and join whichever boards they like — no passwords, no accounts. The board auto-advances at midnight Pacific, past days stay open so you can log one late, and future days are locked mystery boxes. Daily check-ins, kudos and reactions, and a live leaderboard with totals and streaks that updates across everyone's devices at once.
Visit Live SiteThe Problem
Shared accountability works when the group can see each other, and dies when logging becomes a chore. Existing habit trackers are single-player with a social veneer bolted on, and every one of them wants an account before it will show you anything.
Research & Discovery
The catch-up rule came directly from watching how group challenges actually die: one missed day, a locked board, and a participant who never opens it again. Allowing a late log while still refusing future days keeps the record honest without punishing a busy Tuesday
Strategy
Zero-Friction Entry
Pick a name, join a board. No account, no password, no email.
Trustworthy Rules
The current day is computed server-side and enforced by row-level security, not by a client-side conditional.
Forgiving By Design
Past days stay open so a missed Tuesday doesn't end someone's participation. Future days stay locked.
Immediate Reward
Confetti, reactions, and a live leaderboard — the feedback for logging arrives before you close the tab.
Key Decisions
Enforced the day-lock in the database rather than the UI. A leaderboard whose rules live in client-side conditionals is a leaderboard nobody can trust, and this one is shared with people who will absolutely try it
Allowed catch-up on any past day but no access to future days. Missing a day should cost you nothing but the streak; the alternative is people quietly abandoning the board after one bad week
Skipped accounts entirely. The group is small and known, the stakes are a streak counter, and an auth flow would have cost more participants than it protected
Prefixed every table for the shared Supabase project rather than standing up a new one, keeping the app out of the way of unrelated projects on the same database
Results & Impact
0
Passwords Required
RLS
Rules Enforced In-Database
Live
Cross-Device Leaderboard
- Shipped open signup with no passwords — you pick your name, it saves on your device, and you can switch anytime
- Built the day-lock as a Postgres function computing the current day per challenge in America/Los_Angeles, with row-level security policies permitting a check-in for any day from one up to and including today
- Built a live leaderboard over Supabase realtime showing totals, streaks, and kudos received, updating across every participant's device without a refresh
- Added kudos and reactions as the social layer, with confetti and animation on check-in, because the reward for logging has to arrive immediately or people stop logging
- Made the app multi-challenge: challenges are defined in code, the home screen lists them, and members opt in per board