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

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.