Skip to content
Course · Shipping AI interfaces

Feedback that improves nothing — yet

The dislike button is an honesty test. If the feedback goes nowhere, the interface should say so — a feedback loop that lies about its loop is a trust leak with a thumbs-down.

Intermediate1 min read (computed · recorded 3)updated 2026-09-14aifeedbackhonestycourse

by Motif Editors

revised 2026-09-14First publication in the bank-4 AI-interface curriculum.

Part 13 of 15 in Shipping AI interfacesTemperature as a visible dialComparing models without benchmarks

Key takeaways
  • Feedback affordances make a promise about a loop; if the loop is not wired, label the promise.
  • 'Thanks — held locally in this demo' is the honest version of a dead endpoint.
  • Retry, dislike and copy are different promises: regeneration, signal, and a local clipboard — keep them separate.

Every affordance is a promise

A dislike button promises that the signal goes somewhere and changes something. When the backend does not exist yet, the honest interface says exactly that: 'the feedback is held locally in this demo'. A dead endpoint pretending to be a loop is the one thing worse than no button — it trains users that their voice is decoration.

Separate the promises

Copy, retry and dislike are three different promises and should announce three different outcomes: a clipboard copy, a local replay, a held signal. Bundling them under one silent toolbar teaches users nothing about what each one did. This site's answer actions print their results in a live region — copy announces the copy, retry names the replay.

Practise the lesson

Theory sticks when you ship it. These original Motif assets put this guide's lesson to work — open one and copy it into your own page.

The component this essay works with — mounted, not pictured
Ripple Button

the ripple starts where you clicked