« Beeminder home

Beeminder Blog

Complice logo with a magnifying glass revealing tiny Beeminder logos

Well, Complice lulled us into complacency with all their talk of how complementary Beeminder and Complice are and now here we are. Today they’re launching micro commitment contracts; presumably tomorrow will be macro commitment contracts. And from there, all out war. Ok, no, Malcolm Ocean is back to explain why Complice’s new commitment feature is still quite complementary to Beeminder. But for the record, if Complice did ever go into more direct competition with Beeminder, we think that would be amazing.

I’ve written here before about how my app, Complice, complements Beeminder. Complice’s approach to goals is relentlessly qualitative; Beeminder’s is relentlessly quantitative. Complice uses soft accountability; Beeminder, hard accountability. And starting now: Complice has one-off commitment contracts to complement Beeminder’s ongoing commitment contracts.


It all started when a user messaged me about using the Complice API to build an integration with TaskRatchet, a to-do list app that bills users for not-done tasks. I immediately got dollar signs in my eyes and concluded I should build that into Complice itself. No, honestly, my main motivation was to implement it in a way that worked with Complice’s design principles.

One of the core principles of Complice is freshness, as opposed to staleness. You’re never burdened with your past self’s idea of what you should be doing today. You can only set intentions (Complice’s take on tasks) for today (or tomorrow, once you’re done with today) — not further into the future.

So clearly any commitment devices in Complice should work the same way. No arriving at a deadline two weeks in the future cursing your past self for committing to something that you’re totally out of touch with the purpose of now.

A dive into the primordial dialogical sea

For those sufficiently interested, here’s an edited transcript of my conversation with Danny when I showed him a protype of the new micro-commitment-contracts feature. I think it makes a nice case for how I ended up implementing it. (Danny also thought it might lend credence to his claim in the intro that there’s no contentiousness here!)

The dialog

Danny: I love your Complice stakes feature. So much so that I think you should make it opt-out. Assume that any task will want some stakes and make the user drop it to $0 if they really don’t want that. Opinionated software, etc.
Malcolm: First response to that is “oh god no”. Upon reflection, I can maybe see something beautiful about $-by-default. Would need a ton of revamping to actually make it work, but it would sorta make the act of intending way more punchy. Though lots of people (including me, half the time) use Complice in a much more open-ended way, like “here’s a menu of things I might want to do today” so this wouldn’t be a fit for them / that workflow.
Danny: Maybe there’s two distinct categories: mustdos and maybewannados? The meta advice could be: agonize until you’ve decided whether people ought to set stakes by default. If so, push it hard. If not, don’t clutter things up by making it an option. Kinda related to the Anti-Settings Principle.
Malcolm: Definitely not. Some things are worth putting money on, others aren’t. Seems pretty obvious to me.
Danny: That’s persuasive.
Malcolm: Too many hard constraints means inflexibility. Also it would be forcing way too many choices. Since the current UI has it so you have to pick the time of day it’s due and that seems correct; 10 tasks due at midnight is a shitshow.
Danny: Ooh, yeah, making stakes part of picking a specific deadline maybe is the best of both worlds?
Malcolm: Exactly. If you want something due at a particular time of day, make it real. Gotta have a real consequence, otherwise the deadline isn’t a deadline it’s just uhhh a “time at which we ping you and you feel guilty or something”.
Danny: Like that’s the dichotomy. It’s either just a maybewannado or it has a deadline+stakes. And that can be where you can set the stakes to $0 if you want but it defaults to something positive. Or get more opinionated and say if there are no stakes then there’s no deadline.
Malcolm: I am opinionated about that — no stakes, no deadline. Currently $1-100 range.
Danny: Love it. You definitely convinced me this is a good design; I retract my initial objections.
Malcolm: The $100 max was partially because the feature is new, but on reflection I think it’s also just maybe correct, in the sense that this is only for things on the scale of a day, and mostly those shouldn’t be “worth” more than $100. And if they are, then the answer is to break it down into a few steps and put $100 on each step and force earlier steps to be due slightly sooner. Yeah, that seems right — just thought that through live right now.
Danny: Smart. No objections there.
Malcolm: Baha I just realized the “break it into smaller steps and stake them each hour” is literally the Beeminder principle but applied on the scale of hours rather than days/weeks/months.

How it works

What I came up with was a really simple 3-step workflow where you take an intention you’ve already set for the day, and press a button (or the $ hotkey) and then you choose:

1. What time of day you want to finish the intention by

2. How much money you want to stake on doing so

3. To accept that challenge

And then it shows up in your list clearly marked with this deadline:

How this complements Beeminder

Beeminder is a system for moving some gradual needle, measurably, over time. It’s about keeping you on track towards something via doing the same thing repeatedly.

You basically can’t use Beeminder for committing to something later today, and certainly not without committing to the same thing every day for the next week.

Complice is sort of the opposite. It’s about making progress towards what you care about long-term by freely and improvisationally doing whatever makes sense today.

So while the commitment device makes Complice look more like a Beeminder competitor, there’s almost never a situation in which you’d be choosing between the two.

They have the “pay money if you don’t do it” in common, but it’s like comparing a bike and a plane as modes of transportation; for any given trip you want to make, you almost certainly are not actually going to feel like you have a serious choice between the two.

You might think (Danny did initially) that this use of Complice or TaskRatchet displaces beeminded must-do goals but I claim it doesn’t, since Complice doesn’t have a way to force you to set such a must-do!

It has no ongoing monetary commitment, just one-offs, and always within 48 hours (usually much less) — which is in keeping with Complice’s anti-staleness philosophy. There’s no “I’ve gotta do this but I’ll set the deadline in the future so it feels less scary now but freaks me out then”. Instead it’s purely for that last minute push to say “no really, today’s the day!


Image credit: Faire Soule-Reeves