Product discovery
Clarifying users, tasks, constraints, and the decision the product is meant to support before layout begins.
Design that stops at a static mockup leaves the hardest questions — states, errors, permissions, density, and small screens — to be answered during implementation, inconsistently.
Connect research, interaction design, and a coded design system so what is designed is what ships, across every state a real user will meet.
Overview
The interesting part of an interface is rarely the default view. It is the empty state, the partially filled form, the permission the user does not have, the record with a very long name, and the same screen at 375 pixels wide.
We design those explicitly and express them as reusable components with tokens for colour, spacing, radius, and typography. Engineering then implements a system rather than reinterpreting a picture.
What this includes
Discovery, a design system, and an accessibility pass are separable engagements; scope follows how much of the product already exists.
Clarifying users, tasks, constraints, and the decision the product is meant to support before layout begins.
Flows and screens covering loading, empty, error, permission, and dense-data states.
Tokenized colour, type, spacing, and component libraries expressed so engineering and design stay in agreement.
Contrast, focus order, target size, and non-colour signalling decided during design rather than audited afterwards.
Bounded interactive prototypes used to test a specific interaction question before committing engineering effort.
What you receive
Why it matters
The states that usually derail estimates are decided before implementation starts.
Tokens and components keep the tenth screen coherent with the first.
Contrast and focus decisions are made where they are cheapest to change.
Design and engineering refer to the same components rather than to screenshots.
How a design engagement runs
Establish who the users are, what they are trying to finish, and where the current experience obstructs them.
Design the routes through the product, including the empty, loading, error, and permission-denied states.
Resolve layout, hierarchy, and visual language against real content rather than placeholder text.
Turn recurring patterns into documented, coded components with defined tokens and behaviour.
Stay involved through implementation and review the built result against the intended behaviour.
What we hold ourselves to
These are the commitments that keep design an engineering input rather than a picture handed over a wall.
Empty, loading, error, and long-content states are specified because users meet all of them.
Spacing, type, and colour are defined as reusable tokens so the system stays coherent as it grows.
Contrast, target size, and focus behaviour are settled in design rather than corrected in code review.
Designs are tested against genuine content lengths, because placeholder text hides the hard cases.
Deliverables are implementable artefacts with defined behaviour, not static images requiring interpretation.
Relevant technology
The front-end layer that components ship into and the checks that confirm they behave as designed.
Relevant evidence
Evidence is labeled by type and publication status.
Scope boundaries
Design hands work to implementation and to verification, and it is worth being clear about where each of those begins.
Design can be delivered as a specification for your own engineers. Where we also build it, the design system is implemented as real components rather than handed over as a picture of some.
A marketing site needs a page inventory and a component set; a product needs flows, permissions and dense-data states. The discovery for each asks different questions.
Designing the error, empty and permission states is what makes them testable; writing the automated suite that proves they behave is separate work.
Onboarding, plan selection and upgrade paths are product mechanics as much as screens, so they are designed alongside the tenancy and entitlement model rather than ahead of it.
Questions
Design questions usually concern research depth, how the design system is handed over, and who maintains it afterwards.
Yes. A design system and specification can be handed to your own team or another delivery partner.
We run proportionate discovery — stakeholder and user interviews, task analysis, and review of existing usage evidence. We do not present research findings we did not gather.
Prioritized flows, screens including their secondary and failure states, design tokens, a component specification, and implementation notes. The deliverable is something an engineer can build from without guessing.
Yes, and extending one is usually better than replacing it. Where the existing system has gaps — missing states, undefined tokens, inconsistent components — those are named rather than quietly redesigned around.
Start a conversation
Bring the workflow, the users, and the constraints; we will shape the interface and the system behind it.