# Give Them Two Choices
My favorite programs to use are those that give me a blank canvas.
Tools like Blender:
![[Pasted image 20260412153832.png]]
Ableton Live:
![[Pasted image 20260412153853.png]]
Anki:
![[CleanShot 2026-04-12 at
[email protected]]]
These tools are prefect for professionals and power users. You can be unbelievably effective when using them if you know what you're doing. They're what I've always been drawn towards.
I don't have a lot of experience with UI and UX work. So I decided to try making my own flashcard-based language learning app, it was very instructive to make someone start using it and watch them to see what confuses them and what wastes their time. Because I made it for my own purposes, at first I had a UI more like the above.
But I quickly realized that these UIs are not usable to "average people". I wanted to learn to use blender, so I watched hours of BlenderGuru and CGMatter videos. I wanted to learn Ableton, so I took a paid class. And of course I read a pretty good percentage of the Anki manual (which I believe is 200 pages long.)
These UIs are great for professionals because professionals know what they want to do and how they want to do it. But average people are not in that situation. They have a goal in mind, but they have no idea what the best way to accomplish it is. To keep the blender analogy, a blender user knows what level of detail they need in their finished product and what the acceptable polygon budget is. But a newbie to game development might just think "I need a player model" and not have any idea how many polygons is too many.
So, that leaves open a space for "opinionated" apps that guide the user towards best practices, and makes decisions for them that they may not be aware of. This can be subtle or overt. A subtle form would be if, when exporting a model in Blender, you could check a box that says "optimize for mobile games" and it would automatically reduce the polygon count using some default settings. The result would surely be worse than a professional doing it themselves, but it would be better than doing nothing.
I think such a thing is probably helpful, but often low-value. Blender is too complicated for a total newbie to use easily, so this would only help the marginal person who can use blender to make a model but doesn't know how to retopologize. A better approach is to try to redesign the experience from the ground up, thinking about how to guide the user towards good decisions at every step.
So what's the simplest possible interface? I think it looks like this. Every interface basically consists of the user making a series of choices. When someone uses the app, they must understand the choices available to them and then pick one. Three choices seems to be the maximum possible number before most users give up or get confused and pick the wrong thing. So every screen must have at most three choices to be usable. And because only an idiot would design the most complicated possible UI, the real limit is two.
Let me take anki as an example. How Anki works is, you look at the front of a flashcard, then you look at the back of the flashcard, then you say how easy it was. It gives you four choices:
![[Pasted image 20260412160353.png]]
The issue is that, if you didn't remember the back of the flashcard before seeing it, you **have** to press `again`. If you press `hard`, `good`, or `easy`, Anki thinks you remembered it and will schedule your next review of the card on that basis. By providing these four choices, Anki becomes better for power users, but becomes worse for average users who might mess it up.
Now let me compare that to a similar flashcard app, [Mochi.cards](https://mochi.cards). (I'm unaffiliated, just a happy user.) The mochi.cards UI has cleverly replaced `again`, `hard`, `good`, and `easy` with a simpler `forgot` and `remembered`.
![[CleanShot 2026-04-12 at
[email protected]]]
Now, it's hard to imagine a user ever messing this up. If they forgot, the only thing to do is press `Forgot`. If they remembered, the only thing to do is press `Remembered`. Except, there actually is one way they can mess it up!
That's because, there are actually three choices, not two. That screenshot I showed has the back side of the card ("Pakistan's location") revealed. But the card is first shown with the back side hidden, like so:
![[CleanShot 2026-04-12 at
[email protected]]]
The user is supposed to see that, think of the answer ("Pakistan's location"), reveal the back side, then press `Forgot` or `Remembered`. If you've used a flashcard app before, this probably sounds so incredibly obvious that you can't imagine anyone messing it up. That's how I felt. But when testing my app, I noticed multiple users just completely ignoring the option to view the back side, and then pressing `Forgot` or `Remembered` without seeing it. Obviously, if you make that determination without seeing the back side, it kind of defeats the purpose, so this is a major problem.
So I reduced the number of choices. In my app, when the back side is hidden, the `Forgot` and `Remembered` buttons are disabled. Users still sometimes try to click them anyway, but since it doesn't work, they eventually realize they can reveal the back of the card, and off they go.
The goal is to make sure that at every moment, the set of things the user _can_ do is the same as the set of things they _should_ do. And then make sure that none of the choices are presented in a way that will cause the user to do something they didn't mean to.
Mochi got from four choices to two by merging the `easy`/`good`/`hard` distinction into `forgot`/`remembered`, which completely eliminates one mistake the user might make. The disabled-button trick goes one step further by removing an option that was never appropriate in the first place.
When you watch a new user mess something up, ask whether the screen offered them an option they shouldn't have had. Usually it did.
This requires a huge amount of domain knowledge on the part of the designer. For example, someone learning a language has to learn a bunch of words. In what order should they learn them? A totally free-form app would let them pick whatever words they want to learn next. But that would leave open the possibility that they pick less-useful words, like "blue" or "dog", before learning much more common words like "why" or "should". The designer of the app can save them from that fate by prominently providing an option to learn the most useful words first. They must know enough about the problem space that they can actually design an interface that provides good choices instead of bad ones. Every choice not on the screen is one that has been made by the designer instead, and that they are now accountable for. But, the essence of design might be to take a complex thing and make it simple, and that's the only way.