Skip to content
Product craft

People can sense carelessness, even when they cannot see the code

One line I keep coming back to is this: people can sense carelessness. They cannot always explain it, and they usually cannot see the code or process behind a product, but they notice when something feels rushed, awkward, or stitched together without much thought.

Based on my February 2026 Next.js Melbourne talk about care, craft, and product quality.

Care is visible in the finished product

Taste and craft can be easy to talk about in abstract terms, but what matters more is care for the user. Care shows up in the small decisions: how quickly a page settles, whether the copy is clear, whether a form feels obvious, whether the product creates friction at the wrong moment.

That is why users can often sense when something is off before they can describe what exactly is wrong. They are not inspecting implementation details. They are reacting to the experience.

AI raises the floor, but it can also flatten the result

AI tools make it much easier to produce competent output quickly. That is useful, but it also makes it easy to stop too early and accept a product that technically works while feeling generic.

The risk is not that AI creates bad products by default. The risk is that teams confuse speed with finished quality and ship the first plausible version instead of the version that actually feels considered.

  • A fast draft is not the same thing as a finished product.
  • Generated interfaces often need stronger editing than teams expect.
  • The closer a product is to the user, the more obvious careless details become.

What care looks like in practice

In practice, care means being willing to edit. It means reducing awkward steps, rewriting copy that feels vague, tightening motion, simplifying the visual hierarchy, and removing details that distract instead of help.

It also means being honest about where AI helps and where it still needs a strong operator. AI is excellent at producing momentum. It is less reliable at deciding what should matter most to the user.

Fingertip after the MVP: a series of 1,000 small iterations

At Fingertip, care showed up as a long series of deliberate improvements after the initial product shipped. Each change was small, but together they transformed the experience.

Static list to drag-and-drop grid

The page editor started as a basic static list. We replaced it with a drag-and-drop grid that gave users real control over layout.

Page editor before — a static list of sections
Page editor before — a static list of sections

Page editor after — a drag-and-drop grid with visual hierarchy
Page editor after — a drag-and-drop grid with visual hierarchy

Sharing that matches reality

The default social share preview showed only the Fingertip logo. We replaced it with a live screenshot of the user's actual page using a headless render API.

Social share before — generic Fingertip logo
Social share before — generic Fingertip logo

Social share after — live profile screenshot
Social share after — live profile screenshot

Default shadcn to intentional system

Central icons, custom typography, taller inputs, and custom colours turned the default component library into a considered design system.

Form inputs before — default shadcn styling
Form inputs before — default shadcn styling

Form inputs after — polished event settings with structured hierarchy
Form inputs after — polished event settings with structured hierarchy

Why this matters to me

A lot of my work sits at the intersection of product, engineering, and design. Whether I was building VenueSafe under time pressure, growing Fingertip into a much broader SMB platform, or working on LinkApps at Linktree, the underlying question has stayed the same: does this feel right to the user?

That is the standard I try to keep. Not perfection. Not polish for its own sake. Just enough care that the product feels deliberate rather than careless.

Keep reading