AFTERBUILD / EXAMPLESFictional brief · editable worked example

Interaction pass / Patchwork

Failure is a state.
Not a dead end.

Report one bug. Keep what you typed when the request fails. Give focus, feedback and recovery a deliberate place in the flow.

Report an issue

Local simulation only. This demo does not send or persist an issue.

Describe the problem, not its proposed solution.
STATE: READY

Try the whole journey

  1. Leave the title empty and submit. Focus moves to the field with its error.
  2. Type a title; use Tab to reach the submit button and press Enter.
  3. During the simulated 1.2-second request, a second submission is blocked.
  4. Failure retains the fields and moves focus to feedback. Choose Successful response and retry.
  5. Success appears only after the simulated response resolves.

Before → after

Before: a generic alert, cleared input and an ambiguous disabled button.

After: a named problem, preserved input, explicit pending state and a retry path.

Backend boundary

Frontend duplicate prevention is not server idempotency. A real endpoint must define durable completion, authorization and duplicate handling. Reloading this demo clears the form.