Category

Product

Our own apps: why they exist, what we shipped, what users taught us.

2026

  1. Eleven pieces of psychology we design with, and where to see them

    Deep dive

    A field guide to the design psychology behind our apps and sites: the published source for each idea, the screen where we used it, and the dark-pattern version of it we will not ship.

  2. The entitlement arrived. The feature still is not live.

    Field notes

    On 6 November Apple granted the Tap to Pay entitlement we had asked for since September. Workers still cannot use it, because the build sitting in Apple's separate App Store review would lose its place in the queue if we swapped it now.

  3. We designed for wet gloves and never tested a glove

    Deep dive

    Five design choices in ZooLog+ for keepers working outdoors, the published research behind each, and the glove test we have not run.

  4. Rewriting ZooLog in Swift and Kotlin in a week

    Case study

    On 19 October the ZooLog mobile app was 134,442 lines of Dart. On 26 October it was Swift and Kotlin, opening the old app's database and settings where they lay. What it took, and why we have no better reason than a director's call.

  5. An undo button that tells the truth

    Field notes

    A TyreStack fitter now gets 30 seconds to take back a Done tap, but only while undoing it would not falsify the stock or money records. The same audit found our board plotting jobs at invented places.

  6. Three things ZooLog refuses to do, with the numbers

    Decision record

    We built photo recognition and left it switched off. Voice can write a keeper's note but never a drug dose. And there is no keeper leaderboard. Three refusals in a welfare app, and the numbers behind each one.

  7. The customer pays the fee, so the worker gets every penny

    Decision record

    On a £5 tip the customer pays £5.60 and the worker gets exactly £5.00. Taking a cut out of the tip instead loses money on small tips and breaks the one promise TipBop makes. Here is the arithmetic.

  8. Tappy was taken, so we became TipBop

    Decision record

    We built our tipping app as Tappy on 21 August 2026. Fifty-eight hours later it was TipBop, because the old name belonged to somebody else. How we screened more than 60 names, and why the code still says tappy.

  9. ZooLog is on Cloudflare from the first commit

    Decision record

    Two days in, the keeper app runs on Workers, D1, Queues and R2, with no other backend behind it. That was the easy decision. The hard one is what happens when a keeper logs a feed where the phone has no signal.