Lockin

Build → a pushup challenge with a friend

100 pushups a day with a friend. Both stake. Both forfeit on their own days.

Send a Friend Challenge from inside Lockin. Both phones verify pushups via on-device pose detection. Each person's stake clears or forfeits on their own daily reps. The friend ping is the cue. The phone is the umpire. Neither of you can fudge the count.

Suggested starting contract

$5/day against missing your daily target of 100 pushups per person, per day.

Why willpower fails to start this

The 100-pushups-a-day target with a friend is the version of the habit that survives. Solo accountability, even with money on the line, runs on one person's interior willpower at 9pm. Add a second person who already committed, and the calculus shifts in ways the social-psychology literature has documented for forty years. Robert Cialdini's "Influence" (first edition 1984, updated edition 2021) identifies commitment-and-consistency as one of six core levers of behavior change: a public commitment generates internal pressure to act consistently with that commitment, and the pressure compounds when a known person is watching the outcome. Dr. Gail Matthews's 2015 study at Dominican University of California operationalized this directly — participants who wrote down their goals and shared weekly progress with a supportive friend reported significantly higher goal-attainment rates than participants who merely thought about their goals or wrote them down privately. The accountability appointment, not the goal itself, was the active ingredient. The American Society of Training and Development figure that gets quoted everywhere — roughly 65% follow-through with a stated commitment to another person, climbing toward 95% with a specific recurring accountability appointment — has been overcited and oversimplified, but the directional finding is consistent across more rigorous designs: a witness raises follow-through. The problem with the casual gym-buddy version of this is the trust gap. You text your friend "did 100 today," and your friend believes you, and that mutual leniency erodes the entire structure within weeks. Nicholas Christakis and James Fowler's social-network research, summarized in "Connected" (Little, Brown, 2009), shows behavior contagion in real friendship pairs — exercise, smoking cessation, weight change all spread through close ties — but their data also documents how quickly a shared norm degrades when verification is absent. Charles Duhigg, in "The Power of Habit" (Random House, 2012), describes the cue-routine-reward loop that habits depend on: a friend's daily ping is a strong cue, but only if the routine that follows is honestly executed. A self-reported "100 done" with no verification is a routine that doesn't actually run. Lockin closes the trust gap by removing self-report entirely. Pavel Tsatsouline's grease-the-groove method ("The Naked Warrior", Dragon Door, 2003) prescribes the actual workout — ten submaximal sets distributed across the day — and Lockin's on-device pose detection confirms each rep at the elbow-angle thresholds (under 100 degrees down, over 150 degrees up). Your friend sees your verified daily segments fill in. You see theirs. Neither of you has to take the other's word for anything. Then the prospect-theory layer. Kahneman and Tversky's 1979 paper in Econometrica established that losses register approximately twice as intensely as equivalent gains. With a Friend Challenge, the loss-aversion pressure has two surfaces. Your own $5 daily stake is on the line for your own reps. And in gift mode, your friend's stake — which you funded — rides on your friend's reps. The asymmetry is not zero-sum: nobody steals from anyone, each stake settles independently against each person's own daily verified count. But the awareness that another person is watching their segments fill in next to yours, and that you committed in front of them, is the variable Matthews's 2015 study isolated as decisive.

How Lockin verifies it

Lockin's Friend Challenge wraps the same workout-pose contract used in the solo 100-pushups-a-day version, with a social layer added on top. You build the challenge once — pushups as the exercise, your sets and reps configuration (typically ten sets of ten for a 100-a-day target, with sets selectable from one through ten and reps per set drawn from {5, 8, 10, 12, 15, 20, 25, 30}), your daily target, your stake, your deadline, your charity. You then pick one friend or several friends from your friends list inside the app — the recipient list is plural by design, so the same challenge can fan out to multiple friends in one send. Each recipient receives a push notification and decides individually whether to accept, reject, or let it expire. Once a friend accepts, both phones run the same on-device pose-detection pipeline used in solo contracts. Your front camera tracks shoulder, elbow, and wrist landmarks; a rep counts when your elbow angle drops below 100 degrees on the descent and exceeds 150 degrees on the ascent, with valid plank alignment throughout. No video is uploaded. No data leaves the device except the verified rep count. Your daily progress and your friend's daily progress both render as colored pass/fail segments on a shared instance-statuses array, refreshed live through Supabase Realtime. Push notifications fire when the challenge is sent, when it is accepted or rejected, and on each daily completion. You see your friend hit their 100 the moment they hit it. They see yours. The financial outcomes settle independently per person, per day, against each person's own verified count.

Set up a a pushup challenge with a friend contract in 5 minutes

  1. 1

    Install Lockin and connect with your friend

    Both you and your friend need Lockin installed (free on the App Store and Google Play) and need to be connected as friends inside the app. Account creation takes under a minute via email or Apple/Google sign-in. Workout-pose challenges are a Premium feature after your first free contract.

  2. 2

    Build a workout-pose challenge with pushups

    From the challenge picker, select Workout Pose, then pick Pushups. Configure your sets — anywhere from one to ten sets — and reps per set from the fixed list {5, 8, 10, 12, 15, 20, 25, 30}. Ten sets of ten is the canonical 100-a-day grease-the-groove configuration. Your friend will run the same configuration once they accept.

  3. 3

    Set the daily target, stake, and deadline

    Default daily target is 100 pushups. Default stake is $5 per day, enough to register as a real cost when the last set is sitting between you and bedtime. Default deadline is 23:59 in your local timezone; tap Set deadline to pick an earlier cutoff on a 24-hour picker — 9:00pm is a strong default. Tighter deadlines unlock higher Locks and XP rewards. The deadline is locked in at contract creation and cannot be edited mid-contract.

  4. 4

    Choose your payment model: gift or mutual

    Lockin's Friend Challenge supports two payment modes. In sender_pays (gift) mode, you pre-pay your friend's stake — they take the challenge for free, but your money is on the line for their reps as well as yours. In recipient_pays mode, the default, your friend funds their own stake when they accept; each person stakes separately for themselves. Mutual mode is the equal-skin-in-the-game version. Gift mode is the right pick when you want to fund a friend's commitment as a present.

  5. 5

    Pick the recipient — or recipients

    The Friend Challenge accepts a list of recipients, so you can fan the same challenge out to one friend or to several friends in a single send. Each recipient receives an individual push notification and decides on their own whether to accept, reject, or let the invite expire. A challenge that goes to three friends generates three independent acceptance decisions and three independent stake settlements.

  6. 6

    Choose your charity and confirm

    Pick a charity from Lockin's vetted list across categories including climate, mental health, animal welfare, and digital literacy. If you miss your daily target, the bulk of your stake funds that cause; Lockin charges a small platform fee to cover payment processing and operations. Each person picks their own charity for their own stake — your friend's forfeits don't fund yours, and vice versa. Confirm to send; your stake is held by Stripe in a pending state until your friend accepts.

From Lockin's data

In the Lockin beta, workout-pose contracts run as Friend Challenges showed meaningfully stronger week-two and week-three completion rates than solo workout-pose contracts at the same daily target and stake. The pattern was strongest when both participants were actively logging reps in the morning or early afternoon — the friend who completed their first set early acted as a behavioral cue for the other, consistent with Christakis and Fowler's social-network contagion findings in 'Connected' (2009). Gift-mode (sender_pays) challenges produced a smaller but consistent additional lift in recipient completion compared to mutual-stake versions.

"We both kept dropping the 100-pushup thing solo. Sending it as a Friend Challenge changed it inside a week. Seeing his segments fill in on my dashboard at 7am meant I could not pretend the day had not started yet, and the $5 was real enough that we both showed up. Neither of us had to text the other to check — the app just showed us. Forty days in, both of our streaks are intact."

— Anonymous beta-user pair, mutual pushup Friend Challenge, 6 weeks active

Common questions

What's the difference between sender_pays (gift) mode and recipient_pays mode? +

Two payment models, picked at challenge creation. In sender_pays mode, you pre-pay your friend's stake when you send the challenge — your friend takes the challenge for free, but your money is on the line for their daily reps as well as your own. It's the gift framing: you're funding their commitment. In recipient_pays mode, the default, your friend funds their own stake when they accept; each person has their own money on the line for their own daily reps. Mutual mode is the equal-skin version that most accountability pairs settle into. Gift mode is the right pick when you want to give a friend or family member a frictionless start to a habit and you're willing to put your money behind their follow-through.

Is this winner-takes-all? Does my stake go to my friend if they finish and I don't? +

No. Lockin's Friend Challenge is not zero-sum. Each person's stake settles independently against their own daily verified count. If you both hit your daily target, both stakes clear and return to each person. If you both miss, both stakes forfeit to each person's chosen charity. If one of you hits the target and the other misses, only the misser's stake forfeits — the hitter's stake clears normally. Nobody takes anybody else's money. The social pressure is the value-add, not a transfer of funds between friends. We made this design choice deliberately because the research on accountability partners — Cialdini, Matthews 2015, Duhigg — is about witnessing and consistency, not about competition. A friend watching your verified segments fill in is what shifts your behavior, not the prospect of taking their cash.

Can I challenge more than one friend at the same time? +

Yes. The Friend Challenge accepts a list of recipients, so a single challenge can fan out to multiple friends in one send. Each recipient receives their own push notification and decides individually whether to accept, reject, or let the invite expire. Each acceptance creates an independent contract — your friends don't have to all accept together, and one friend rejecting doesn't cancel the challenge for the others. If three friends accept, you'll see three sets of daily verified segments fill in alongside yours, and each person's stake settles independently against their own daily count. This is useful for small training groups, family pushup pacts, or fanning a 100-a-day challenge across a Slack-friend cohort.

What happens if my friend declines or doesn't accept the challenge? +

If your friend rejects the challenge, the invite moves to a rejected state and you receive a push notification. If they don't accept before the challenge expires, it moves to expired. In either case, no contract starts on their side. If you sent in sender_pays (gift) mode, the stake you pre-paid for them is refunded to you in full — Stripe never released the gifted amount because the contract never went active. In recipient_pays mode, your friend never funded a stake in the first place, so there's nothing to refund. Your own stake remains in pending until at least one recipient accepts; if you've fanned the challenge to multiple friends and at least one accepts, your contract becomes active against your own daily target.

Where does the forfeited money actually go? +

Forfeited stakes go to a registered charity from Lockin's vetted list. You choose your charity from categories including climate, mental health, animal welfare, and digital literacy when you set up your side of the contract; your friend chooses theirs independently. Forfeits are routed per person, per stake — if you miss a day, the bulk of your stake funds the cause you chose; if your friend misses a day, the bulk of their stake funds the cause they chose. In gift mode, the gifter's stake (which is funding the recipient's contract) routes to the gifter's chosen charity on a recipient miss. Lockin charges a small platform fee to cover payment processing and operations.

How does the daily deadline work, and is it the same for both of us? +

Each person's deadline runs in their own local timezone. The default is end-of-day — 23:59 — so each of you has until your own midnight to log your verified reps. During contract setup you can pick an earlier cutoff on a 24-hour picker; 9:00pm is a strong default because it forces the final set out of the pre-bed window where most missed pushup days actually die. Tighter deadlines unlock higher Locks and XP rewards. The deadline is locked in at contract creation and cannot be edited mid-contract — that immutability is what makes it function as a precommitment rather than a movable goalpost. If you and your friend live in different timezones, your deadlines fire at different absolute moments, but each person's contract clears or forfeits against their own local-time cutoff.

Can my friend or I see each other's actual reps as they happen? +

You see each other's daily progress as colored pass/fail segments on a shared instance_statuses array — green for a completed day, the appropriate state color for a missed or in-progress day. Updates arrive live via a Supabase Realtime subscription, so when your friend hits their 100 in the morning, your dashboard reflects it within a second. Push notifications also fire on each daily completion event. You don't see raw video or your friend's camera feed — pose detection runs on-device and no video is uploaded — but you see verified pass/fail status in real time, which is the social-accountability variable that matters.

Other habits people build

Stop deciding. Start staking.

Free to download. You set the target, the stake, and the charity.