Dasasian ← Writing

September 6, 2026 · Damith Chandrasekara

Pull Handle, Push Door

The app worked from the first day. It took months of using it to see the friction in it.

A door with a pull handle and a sign that says PUSH

A small itch I finally scratched this year was an app to help with charging the Leaf. Set the level, set when I need the car, press start. I have been using it for months now and it works, it works well.

When I built it, I had an idea of how I wanted the UI to look. I had that picture in my head. I told Claude about it, it built it, I tweaked it. When it was done I was happy with how it looked and how it functioned. It did everything I wanted it to do.

But the more I used it, the more small things niggled at me.

The thing I used most sat at the same level as the things I almost never touched. The time I needed the car by was a default. The target charge was already where I wanted it. So ninety percent of the time the only thing I touched was the current charge. And that one shared a bar with the target, the two of them riding the same track, competing with each other. On a vertically held phone the bar ran sideways, so even the thing I did all the time was finicky.

Below that, another bar for the time. Another slider. At the time I thought, there is a symmetry to having these two look alike. We appreciate symmetry, as humans. We think it’s beautiful, so we put it in wherever we can. And everything on one screen, so as I slide them I can see the impact. All good choices. Then a nice big green Start button under it all.

So the UI was good. It worked. It did what I wanted. It was not great.

Nothing was wrong with it. Nothing was broken, nothing failed. It was friction, a little of it, every time.


The AI never told me there would be any issues. There weren’t any. What there was, was friction in actually using it in the real world, as a human being, standing in the garage with one hand on the phone. And the AI can’t tell you any of that. It doesn’t know. It just knows what you tell it, and what you tell it to build. Your instincts, your ideas, your vision, that’s what drives it.

So where does friction like that show up?

Not in the session. In the months after it. The ideas came in the back of my head while I was using the thing, and they collected, and I didn’t do anything about them.


Then I watched a YouTube video about UX design. What is a good user experience.

Until then, whenever I thought of UX I thought of it as UI/UX, one word, something tied to software. If a piece of software has good UX, it’s a nicely designed piece of software. Maybe I knew it was for everything, but it never really sank in until I heard it asked a different way.

Have you ever walked up to a door, held the handle, pulled, and the door didn’t open, because it was meant to be pushed?

That is bad UX.

That’s when it clicked. Your intuition, what you know, what your basic behaviours are, run contrary to what the thing in front of you wants. A pull handle on a door that needs to be pushed makes no sense. But we do these things sometimes for symmetry. Both sides of the door look the same now. But they’re not the same. They have different jobs.

Two identical green sliders, one under the other. One sets a percentage. One sets a time.

Same handle, different door.


I sat down for another session.

LeafCharge before and after: one screen with two horizontal sliders, then two screens, a tall battery you tap and a spin wheel for the time

The charge slider is gone. In its place is a battery, standing up the way the phone stands up, taking as much of the screen as I could give it, and you tap the level you want. Instead of setting the charge to an exact percent I capped it at five percent steps, because honestly, who cares, and the system isn’t that accurate anyway. One percent was a false number.

The time isn’t a slider anymore. People are used to spin wheels for time. That’s how we think about it, so that’s what it is now.

The buttons that switch between modes now show their own state. The button that puts you in time mode says the time. 7:15 AM. The one for charging now says the current, and next to each current, what time you’d hit the target.

And the big display at the top telling you the impact of what you’re about to do, with a button under it that only said Start, is gone. That information moved onto the button. It doesn’t say Start. It says what’s going to happen when you press it, with a play triangle next to it.

The app is much easier to use. Same me, same Claude. Nothing about the second session was smarter than the first.


I’ve been thinking about what actually changed between the two versions, because it wasn’t the prompt.

The AI built the second one as happily as the first, and it will build the third. What it can’t do is hold the phone in the garage. It can’t feel the target marker get in the way of your thumb, or notice that you have never once moved it. It doesn’t get the niggle. The niggle is the thing I brought back.

And the video didn’t give me the fix either. It gave me the word for what I’d been feeling for months. The friction was mine. The name came from a stranger, and a door.

So now when I look at a screen I’m asking a different question. What is the person trying to do here, what do they need to do, and is anything in the way. Looking good and working well can conflict. I think you can do both, you can make it look good and have it work the way we expect it to, the way our hands already know. But I’m leaning more towards the experience being what matters. You can make it look nice around that.

If people have to be told how to operate something, it has already kind of failed.

The AI only knows what you tell it. And I only knew what to tell it after months of pulling on a door that wanted to be pushed.


The other side of this is Brains, But No Hands, on the room AI can’t be in.

Also on Medium.