I Have No Self Control

Articles

From a form to a ticket: how the app got its look

By Michael Fuchs · Published

In short I Have No Self Control started as a spike built to be ugly and a plain app of system forms. Two design rounds were thrown away before research set the direction: a quiet register and a loud one, a volt green that never touches paper, a ticket for the time you earn. Then the first run was rebuilt twice, the curtain stopped selling, and watching my son use the app reshaped the screens where you set things up. This is how it went, in pictures rebuilt from the old versions and in the words I wrote at the time.

In a 2003 magazine piece on the iPod, Steve Jobs is quoted with a line I keep coming back to: “That’s not what we think design is. It’s not just what it looks like and feels like. Design is how it works.” [1] This article is mostly about the part you can see, what the app looks like, because that is the part whose changes can be shown. How the design decides what the app does is a subject for another article.

I kept no diary. What follows is put together from the conversations I had with an AI assistant while building the app, from the project’s git history, and from pictures of the old versions. AI tools searched the transcripts and the history and rebuilt the pictures. The quotations are my own messages from those days, translated from German [2].

What this does not show

The pictures of the app are rebuilt, not kept: each old version was built again from its commit and photographed on today’s simulator and iOS, so type and system parts can differ slightly from what my phone showed then, and apps appear as grey stand-ins, because a simulator cannot see real ones. The canvas boards are drawn from the files as they stood at the time. Screens that only a real iPhone shows are my own screenshots from those days, or missing.

The spike, ugly on purpose

Before there was an app there was a spike: a throwaway build to find out whether iOS lets an app do this at all. It was meant to be ugly. The one design finding it produced shaped everything after it: the curtain that falls in front of a blocked app is not the app’s own screen. It is Apple’s, and an app fills in its parts: the background and its colour, an icon, a title, a subtitle, the labels of a primary and a secondary button, and the primary button’s colour [3]. Whatever the curtain says later in this article, it says in those fields.

The spike in dark mode: the title Interrupt Spike, a status reading Not shielded, and plain grey sections with blue buttons to record the Hop and Vacuum protocols, a third experiment below
The spike as it looks today: it kept running beside the app, one plain section per question, here recordings for two of the prices. My screenshot, from the iPhone.

The plain app

The first real version was built from the system’s own forms: lists, switches, steppers, and a title that said Interrupt. It worked, and it looked like a settings page. I noted it in passing while testing something else: “The UI is rather… utilitarian right now…” [2] This version only runs on a real iPhone with Screen Time allowed, so there is no rebuilt picture of it yet.

Two rounds thrown away

Then the design work started, with Claude Design proposing directions. The first round had three: calm and close to the system, editorial with a serif on warm paper, and playful with a colour for every Pool. My verdict: “All of it is far too tame and too boring for me. Too much like lists and tables, too little illustration, too little whitespace.” [2]

A plain system list of Pools on light grey, with green switches and Add a Pool in blueA list of Pools on warm paper under a large serif title, with thin rules and a rust-red accentA list of Pools on cream paper, each Pool a rounded card with its own colour and a switch
The first round’s three directions: calm, editorial and playful, in that order. The playful one came closest. Canvas boards.

The second round went louder: thick outlines, strong colours, round shapes for the Pools. It was the first time the time you earn appeared as a ticket. I did not take to it either: “Somehow I don’t take to this one either, or it’s impractical.” Then I stopped the guessing: “Before you keep guessing until something fits, go and research design principles, especially for software of this kind.” [2]

An orange screen with a ticket at the top, fifteen minutes written large on it, and the words Fifteen minutes. At least.
The second round’s screen after a price is paid: the first ticket. Canvas board.

The research that followed looked at studies of apps like this one, at what makes a screen readable with ADHD, and at what the market looked like. One finding went straight into the design: in an online experiment that tested the features of the app one sec separately, offering the option to dismiss had the strongest effect on lowering how much video people watched [4]. Every screen of mine that interrupts has a way out with a button of its own.

Volt green, and two registers

The third round, the same evening, was one direction instead of three: a quiet register for the everyday screens, paper and ink, and a loud one for the moment the app interrupts, with a big serif, Gloock, for the headline and hand-drawn chores beside the prices. This time: “It’s clean without looking prim. It doesn’t hit you over the head, but it stands out. It’s elegant, but not snobbish.” [2]

The loud colour was mustard at first: “I like the mustard yellow, but as a child of the GDR it brings back all sorts of nostalgic, musty memories.” I asked for more palettes, and I showed a screenshot of an earlier, much louder draft: “But the green in it is absolutely fantastic” [2]. That green became the accent.

The loud screen in mustard, then in volt green, the palette that stayed. Canvas boards.

Two rules came out of that evening. Green never touches paper: “Sadly, green on a white ground is enormously hard for my eyes to make out. Not only that: it hurts.” So the green only ever sits under ink, or fills a shape that ink frames. And loud means a coloured ground: when that was about to go, I wanted it kept. The second typeface, DM Mono, a monospace, came from the same evening, as an experiment: I thought it might be a focus aid for an ADHD brain, which spots whatever is unusual very fast, and could point to what matters on each screen [2].

An evening on a paper ticket

Early that evening, testing the plain app, I had noted of a clumsy stepper: “It’s a UI thing. We’ll have to work on that later anyway.” The first version of the app was still being built, and not one styled screen existed in it yet. “Later” came the same night [2].

On the canvas, the ticket from the second round now sat on a black band, and the two were tilted by different angles: “I’m not sure yet, though, whether the autistic part of me can cope with both the band and the ticket itself being tilted by different amounts.” In the same breath: “I’m a very big fan of small animations of the ‘oddly satisfying’ kind. The ticket and the band are practically screaming for an animation like that.” [2] Autism, in my case, is suspected, not diagnosed.

The first animation already said more than I had asked for: “At the same time it suggests: valid from now”. Then came an hour on how a paper ticket flies in and tears. Real tear-offs, I explained, “are always folded up and down first, so that the material at the perforation weakens a little”. The two parts still moved in step: “They have to behave like separate objects”. Parts of it still looked robotic, and I had a guess why: “I think the trick to keep it from looking robotic is that there must never be a standstill, because nothing like that exists in nature either.” [2]

Then, at last: “I think we can leave it at that. Which screens are still missing?” A few minutes later I was already eyeing more, the resolvers being the app’s word for its prices: “The resolver states all need oddly satisfying animations as well. That’s almost another project of its own :D” [2] The band and the ticket now share one angle, and the stub is torn off every time a price is paid.

A volt green screen: Ten minutes. At least., and a white ticket on a tilted black band with its stub torn off
The ticket, torn, on the screen after a paid price.

The first screens, and dark mode

Next, the first screen was built from the boards: the list of Pools, still with the system’s type in its titles. Later that night, with a few more screens built, I saw them on an iPhone: “Wow, that looks great on the iPhone 12!” [2]

The Pools list in light mode: three Pools with lines that fill as they are used, and a black New Pool button
The Pools list, the first screen built from the boards.

Dark mode needed a second go. At first, the box a button sat in stayed white in dark mode, because the style guide said so: “Let’s be honest: dark mode exists precisely because people do NOT want to be yelled at by white surfaces.” [2] The blocks now stay dark at night, and the green is dimmed. The Pool editor shows the difference.

Dark mode before and after the rework: the block behind the prices turns white, then stays dark, and the green is dimmed.

The first run, rebuilt twice

The first idea for the first run was a few screens to read, one of them asking for your first Pool. It was drawn, never built. What I wanted instead: “There is nothing I HATE more than an app that forces me through its whole onboarding. Cancelling has to be possible at any time.” [2]

A form headed Which apps share one budget? with app slots, a name field, a daily budget and a dark block with what more time costs
The first run as first drawn: the screen that asks for your first Pool. Canvas board.

So the first run became a rehearsal you play: the app interrupts a pretend feed, you pick a price and earn the ticket, and every screen has a way out.

A volt green welcome: Present you is about to say no., three chore drawings, Show me and I'll find out myself
The first built first run: a welcome, a rehearsal to play, or a way to skip it.

Two days later I found it still wanted to explain too much at once. Being made to set up a Pool straight away, as an earlier version would have had it, would have put me under pressure myself, and a wall of text and screenshots to click through was useless: “And I think you have to FEEL it.” [2] The second version puts the why first and hands you a Pool already filled in, with one thing left to choose: which apps.

A light screen headed Past you, your turn., a Pool named Doomscrolling already filled in, and one empty app slot
The second first run: the first Pool prepared, the apps the only choice.

Then the first screen itself. Its first choreography was, in my words: “Soulless, too fast, no room to breathe.” [2] The one that stayed takes its time: the black box that is the app’s voice speaks first, the page says its lines, and the button, sliding in, shoves the box out of its place, which answers with a small, embarrassed line.

The volt green first screen, the black box above the button reading Whoops. Well. Nothing to see here. Go on.
The first screen once it has arrived.

A curtain that sells nothing, and the name

The curtain kept to the fields Apple allows and still changed its tone. At first it stood on a green-tinted ground, with a filled button for more time and a subtitle that sold it: You can have more time. It costs something. Later I wrote: “Curtain: I’m in favour of making it more neutral anyway.” [2] Now it names the Pool, states a fact, and offers two ways out of equal weight.

The first curtain, and the neutral one: the Pool’s name as its title, a fact, two buttons of equal weight. The Pool, called Probe, was one for testing. My screenshots, from the iPhone.

The name was settled late. I Have No Self Control had been the candidate for the app from early on, with Better Screen Time as the project’s mission, which it stays, and in the end it became the app’s name: “It’s to be seen as a self-mocking wink. So yes, it’s a person’s statement about themselves, not a judgement.” [2] That is why it says I, and not you.

One frame for the prices, a new Pool editor

Watching my son use the app changed the screens where you set things up: “When I watch my son use the app, one thing strikes me very strongly: it rarely occurs to him to scroll.” It was not only him; I often had the same trouble on those screens [2]. The editors for the prices had each grown a layout of their own, long enough that the Save button lay over what came below it.

The Walk price before and after the shared frame: first a layout of its own, Save over the last row, then two rows that open in place. The line under Save is the simulator’s, which cannot count steps.

They now share one frame: the price’s drawing and name at the top, then a row for the price and one for what it pays, each opening in place, and Save within reach of the thumb. “Predictability matters a lot here.” Behind it is also how I read a screen: “To my eye, a paragraph of text is practically the same as a button. Of course I can still sort them out, but that takes active thinking and is tiring.” [2] Fewer things on a screen, and most of them things you can act on.

Talking over the order and the folds of the new price editors, I worried about screens that look alike: “I’m worried we’re building too many screens that look the same. That can get confusing fast, especially when a sub-screen looks practically the same as its parent. That’s my worry, a little, at least.” And then: “The Pool editor has to be built differently, on purpose” [2]. It now shows the apps as a stack, and each price as the ticket it would earn.

The Pool editor before and after the rebuild: the apps as a stack, the price as a ticket.

What stayed

My preference

Where the evidence was thin or contradictory, I always went with my own preference, because the app is meant for me to use. Those choices can only be good for me; for others they may grate, or even be a red flag. I call it character.

Through all of it, a few things did not move: the sentence the loud screen opens with, Past you said no., and the ticket at the end of every price you pay. The design is not finished, and this article will grow with it.

Sources

  1. Walker (2003). The Guts of a New Machine. The New York Times Magazine. www.nytimes.com. Accessed 2026-09-28. News report↑
  2. Fuchs. Messages written while designing the app, September 2026. Maker's notes↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
  3. Apple (2021). Meet the Screen Time API. WWDC21. developer.apple.com. Accessed 2026-09-25. Platform documentation↑
  4. Grüning, Riedel & Lorenz-Spreen (2023). Directing smartphone use through the self-nudge app one sec. Proceedings of the National Academy of Sciences. doi.org/10.1073/pnas.2213114120. Field study↑

This site belongs to an iPhone app: a daily limit on the apps that pull you in, and a price on more time, both set by you earlier. See how it works