All Principles

Postel's Law

Be liberal in what you accept, and conservative in what you send. Design systems that are forgiving with input and precise with output.


Overview

Postel's Law — also known as the Robustness Principle — was originally written by Jon Postel as a guideline for TCP/IP implementations: network software should accept a wide range of valid and slightly-malformed inputs from other systems, but should only ever produce outputs that strictly conform to the specification. Applied to UX, the principle becomes: be maximally forgiving of how users provide information, while being maximally consistent and precise in what the system delivers back.

In practice, this means accepting phone numbers with or without dashes, accepting dates in multiple formats, accepting names with unexpected characters, and normalising all of these behind the scenes before storage or display. It means never requiring users to know the exact format your system prefers — the system should handle that translation invisibly. At the same time, outputs — formatted data, error messages, confirmation states — should be rigorously consistent so users can build accurate mental models of how the system behaves.


Takeaways

  • 01

    Accept user input in as many reasonable formats as possible — phone numbers, dates, names, and addresses should not require a specific format that the system could infer automatically.

  • 02

    Normalise and validate input invisibly before storing or displaying it — the user should never have to know what format the system prefers.

  • 03

    Be precise and consistent in what the system outputs — confirmation messages, formatted data, and error states should always appear in the same form so users can rely on them.


How to Apply This

  • Accept multiple input formats for structured data.

    Phone number fields should accept (012) 345-6789, 012-345-6789, and 0123456789 equally. Date fields should accept DD/MM/YYYY and YYYY-MM-DD and natural language. The system should normalise whichever format arrives into a canonical form for storage — and the user should never encounter a 'wrong format' error for information they have correctly provided.

  • Strip rather than reject.

    When a user includes a character or format the system doesn't need — spaces in a card number, a country code in a local phone number — strip it automatically rather than showing an error. Errors should be reserved for genuinely missing or incorrect information, not for formatting choices the system can resolve itself.

  • Make outputs precise and predictable.

    While inputs should be forgiving, outputs must be consistent. Dates should always appear in the same format throughout the product. Currency should always use the same symbol and precision. Confirmation messages should always follow the same structure. Inconsistent output forces users to relearn what each format means, which is exactly the cognitive load Postel's Law is designed to eliminate.

Common Misconception

Postel's Law is sometimes interpreted as 'accept anything.' It means accept anything reasonable — not anything at all. A form field that accepts a name where a date is expected in order to 'be liberal' is not applying the principle correctly. The liberalism is in accepting multiple valid representations of the same information, not in abandoning input validation entirely. Security considerations also apply: being overly permissive in input acceptance is a classic vector for injection attacks.


Origin

The principle was formulated by Jon Postel, an American computer scientist who played a central role in the development of the internet. He wrote it in RFC 761 (1980) as a guideline for TCP implementations: 'Be conservative in what you do, be liberal in what you accept from others.' The principle was intended to make internet protocols robust in the face of imperfect implementations by different vendors — if every system was strict about output but forgiving about input, the network as a whole would be more resilient. It has since been adopted as a general principle in API design, form design, and human-computer interaction.


FAQ

What is Postel's Law?
Postel's Law, also called the Robustness Principle, states: 'Be liberal in what you accept, and conservative in what you send.' In UX, it means designing systems that accept user input in a wide range of formats without error, while delivering outputs that are precise, consistent, and exactly as expected.
How does Postel's Law apply to form design?
It means accepting structured inputs — phone numbers, dates, postal codes, card numbers — in whatever format the user naturally provides them, normalising behind the scenes, and only showing an error when the information itself is missing or genuinely incorrect. It eliminates the category of error that says 'right information, wrong format.'
Why is the 'conservative in output' part important?
Consistency in output is what allows users to build mental models of how a system behaves. If the same piece of information appears in different formats at different times — a date as 14/07/2026 in one place and July 14 in another — users cannot develop reliable expectations. Precise, consistent output is the foundation of a trustworthy interface.
Does Postel's Law conflict with input security best practices?
It can, if misapplied. Being liberal in what you accept does not mean skipping validation or sanitisation — it means accepting multiple valid representations of correct information. Input should always be validated and sanitised before processing, regardless of how many formats are accepted. The liberalism is in the range of accepted formats, not in the absence of security boundaries.

Related Principles

Further Reading