Progressive choice
Put the consequential decision in view, and hold supporting detail nearby rather than making people remember it across a journey.
Web development / full-stack engineering
A field guide for turning product questions into sturdy web decisions: boundaries, interfaces, pathways, release habits, and the small artefacts that make a build understandable.
Plain language, practical prompts, and deliberate trade-offs — assembled for teams working in the open.
01 / Position
A site is a living agreement between people, data, devices, and time.
02 / Orientation
A durable brief names the journey, the actors, the data that matters, and the constraints worth protecting. It does not pretend that a page list is an architecture.

03 / System layers
This board refuses the default tab set. Move through the system from the human-facing edge to the operation that keeps it honest.
Use names that match a person’s task. Give every control a purpose, a state, and enough space to be used without precision. Content structure should survive a different screen, a different input method, and a different moment of attention.
Every request has a beginning, a pause, a possible detour, and an outcome. Treat loading, permission, absence, retry, and recovery as designed routes rather than incidental exceptions. The interface becomes calmer when its states are named early.
Choose a source of truth, describe the shape of what crosses a boundary, and make invalid states difficult to represent. A useful model explains both what is stored and what is deliberately not inferred.
Release notes, practical logs, accessible markup, and a clear hand-off are acts of maintenance. Make it possible to see what changed, reason about why, and recover without relying on memory alone.

04 / Workshop board
Use a construction-board approach when a system feels too large: place the big pieces, draw the hand-offs, note the assumptions, then test the gaps. The board does not need to be beautiful; it needs to invite correction.
For every block, add one verb: reads, writes, checks, prepares, queues, publishes, or explains. Verbs reveal whether an apparent component is actually a service, a policy, or a task in disguise.
See interaction patterns05 / Interaction patterns
A component is more than its styling. It is behaviour, keyboard path, language, consequences, and a piece of the page’s social contract.
Put the consequential decision in view, and hold supporting detail nearby rather than making people remember it across a journey.
An empty state should say what is missing, why it matters, and one clear next action — without feigning activity.
When an action cannot finish, preserve the person’s context and provide a route to try again with an explanation.
06 / Boundaries
07 / Local review
Tick what you have reviewed. The count is stored only in local browser storage and can be cleared without sending anything anywhere.
08 / Build rhythm
Keep the loop legible enough that a new collaborator can join it without learning a private language.
Write the question, the limits, and the condition that would change your mind.
Build enough of the path to test the important hand-off, including an unhelpful response.
Record what was surprising, then amend the model before adding comfortable complexity.
09 / Engineering posture
Accessibility, performance, security, and maintainability should appear in the first sketch, not as a final inspection queue.
Semantic structure, visible focus, readable content, and generous controls help many people without asking them to identify themselves.

Minimise what crosses a boundary, validate at the appropriate edge, and explain the consequence of consequential actions.

Give names to the seams, leave a useful trail of choices, and prefer understandable forms over impressive contortions.

10 / Reading shelf
These cards suggest what to explore when a design or build conversation gets stuck. They are prompts for inquiry, not a substitute for context.
Begin with the decision a person or organisation is trying to make, rather than with a preferred framework or database. Then identify the information needed, who may alter it, and what happens when it is absent or late. This creates a shared map before teams debate the individual technologies that might serve it.
Early detail should be sufficient to expose the meaningful boundaries and test a difficult path, not so exhaustive that it impersonates certainty. Use sketches, example data, and plain-language contracts. If a draft makes it harder to question an assumption, it may be too polished for the stage of work you are in.
It adds a disciplined attention to meaning, input, feedback, contrast, order, and error recovery. Those concerns improve the experience for people navigating by keyboard, touch, assistive technology, a smaller screen, a temporary limitation, or simple distraction. Accessibility is therefore part of the system model, not a layer painted onto finished pages.
Capture the smallest useful record near the work: the question, the chosen direction, the important limitation, and the condition that would reopen the decision. A concise note at a boundary or release point is usually easier to maintain than a distant document. Documentation becomes lighter when it is written as part of making a change.
12 / Send a note
This form does not submit data to a service. With both fields filled, it prepares a mailto draft addressed to [email protected]; you choose whether to open and send it from your email application.
