Skip to content
February 17, 2026 · 3 MIN READ · Journal

What a good app feels like

A good app feels resolved. Every tap lands where you expect, every animation finishes before you notice it, every screen has a clear answer to the question “what am I looking at?”

A bad app feels like it’s thinking. Loading spinners in places they shouldn’t be. Buttons that respond half a second too late. Layouts that shift after you’ve already started reading.

Most people can’t name these things, but they feel them. Nobody says an app has poor input latency; they say it feels clunky, and they stop opening it.

It’s not about performance benchmarks

Speed matters, of course. But plenty of apps are “fast” on a benchmark and still feel wrong. The difference is in the gaps — the moments between action and feedback, where a good app is quiet and a bad one is apologetic.

You can’t measure that in milliseconds. You measure it by using the app for a week and noticing whether you ever have to wait for the UI to catch up with your intent.

That’s close to literally what we do. Where we can, the people building an app use it for what it’s for before it ships: a habit tracker to track habits, a meal planner to plan an actual week of meals. Problems that never show up in a test plan show up quickly when you depend on the thing.

What we look for

Tap targets hit on the first try. Scrolling that stops where you meant it to. Search that finds what you meant, not just what you typed. Errors that tell you the actual problem, not “something went wrong.”

A few more we’ve added over time:

  • Nothing you typed is ever lost — not on rotation, not when the app is backgrounded, not when a call interrupts.
  • The keyboard never covers the field you’re typing into.
  • Undo exists wherever a mistake would be annoying to fix by hand.
  • The app remembers where you were, so opening it again feels like continuing rather than starting over.

The same list applies on every platform we ship on. A browser extension popup has to feel just as resolved as a phone app, and a Windows app has to respect keyboard shortcuts and window resizing the way people expect on a desktop.

The trade-off

Getting this right takes time that never appears in a feature list. A week spent smoothing transitions and fixing edge cases is a week not spent on something we could announce. We think it’s the better use of the week, but it does mean our apps sometimes do fewer things than their competitors. That’s a trade we’ve decided we’re happy to make.

What we got wrong

We used to leave polish until the end, as a final pass once the features were done. The final pass always got squeezed. Now the feel of a screen is part of whether it’s finished, from the first build, not an extra to add if there’s time.

Most of this work is invisible. Users don’t notice it when it’s right — they just notice that the app is pleasant to use. That’s the goal. Never get blamed for working.