Trung Nguyen
← Journal
Product 14.07.24 4 min read

What makes a product feel intentional

Some products feel like they were made by someone who cared. Others feel assembled. The difference is rarely about features — it’s almost always about decisions.

The feeling of intention

You’ve encountered this before. An app where every screen feels like it was considered — where the empty states are thought through, where error messages are human, where the transitions feel earned rather than applied.

And you’ve encountered the opposite: products where the settings screen looks like a different product from the main flow, where loading states were clearly added last, where the help text reads like a legal document.

What intention isn’t

Intention isn’t polish. It isn’t hours spent on hover states or pixel-perfect alignment. A product can be pixel-perfect and still feel assembled.

Intention is about coherence of reasoning. Does this decision fit the logic of the product? Does the copy sound like the same person wrote it? Does the behaviour in edge cases feel like it was designed, or like it was left to default?

The small things that reveal everything

The best heuristic I’ve found: look at what happens when things go wrong. Error states, empty states, loading states — these are the moments that reveal whether the people who built it thought about the experience as a whole or only thought about the happy path.

A thoughtful error message costs the same as a lazy one. The difference is whether someone decided it mattered.

Making intention a habit

The shift that made the biggest difference in my own work was treating the edge cases as first-class design problems, not afterthoughts.

Before I call something done, I ask: what does this look like when it fails? What does it look like when it’s empty? What does it look like for the person who’s doing this for the first time, and the person who’s doing it for the hundredth?

Intention is just attention, applied consistently.

Discussion

Powered by GitHub Issues. Join the conversation ↗

huy.tran 3 days ago
This resonates a lot. I spent 3 weeks wrestling with a Chakra UI setup before giving up and writing 4 simple components from scratch. Done in an afternoon.
trungnguyen 2 days ago Author
4 components you understand beats 200 you don't.
linh.nguyen 1 day ago
The "rented apartment" analogy is perfect. Sharing this with my team.

To leave a comment, you need a GitHub account.

Comment on GitHub

More from the Journal

Thinking

On writing as a design tool

Read ↗

Tools

The case for boring tools in creative work

Read ↗

Process

Shipping fast without losing craft

Read ↗