FireUX · 2 min
Align the Product Contract, Not Every Interface
Related apps need consistent states, accessibility and behaviour, but they do not need to look identical when their product jobs differ.

Align the Product Contract, Not Every Interface
Consistency is valuable, but identical interfaces are not always consistent products.
When several apps belong to one family, it is easy to align them by copying the most visible parts: the same hero, cards, spacing and page anatomy. That can create a tidy screenshot while hiding differences in audience, authority and purpose.
A stronger family aligns its contract first.
What should match
Related interfaces should usually share fundamentals that exist for the same reason:
- understandable loading, empty, missing and failure states;
- accessible names, focus behaviour and keyboard interaction;
- stable route and record identity;
- truthful permissions and actions;
- predictable outcome language;
- reusable low-level components and design tokens.
These are not cosmetic preferences. They protect comprehension, access and product safety.
What may differ
An ordinary directory, a branded consumer experience and an operator Console may all present related records. They do not necessarily need the same composition.
One may need dense filters. Another may need a visual introduction. A third may prioritise status and actions. Brand, audience and task can justify different imagery, hierarchy and interaction—as long as the underlying records and states remain truthful.
The useful question is not “Why aren’t these pages identical?” It is “Does this difference have a product reason?”
Create a difference register
For a family of interfaces, record each meaningful difference as one of four things:
- accepted because the product job requires it;
- migration because one member has not reached the shared contract;
- drift because no product reason explains it;
- to confirm because evidence is still missing.
This prevents personal preference from silently becoming architecture. It also stops a genuine branded difference from being erased merely to satisfy visual symmetry.
What we do at FireUX
FireUX aligns named sibling interfaces by behaviour and contract before appearance. Shared cards remain simple presentation primitives. Entity families keep their own readers, actions and product language. Branded App families may retain a distinct visual experience while consuming the same lower-level identity, state and accessibility contracts.
We then compare real siblings before promoting a larger shared seam. That idea is explored further in why a second real example should precede abstraction.
Good consistency is visible when a product behaves predictably. It does not require every useful difference to disappear.