Reducing Friction: Flows, Steps & Progressive Disclosure
Every product asks the user to do some work before they get what they came for. They click, they type, they choose, they wait. The craft of good product sense is making that work as small as possible — so the path from "I want this" to "I have it" feels short and obvious. This chapter is about that path, and how to make it shorter.
What "friction" and "flow" actually mean
- Friction
- Anything that slows, blocks, or frustrates a user on the way to their goal. Extra steps, extra decisions, extra fields to fill in, waits, confusion, and mental effort are all friction. Think of it as a cost the user pays in time, effort, and thought before they reach value.
- Flow
- The ordered sequence of steps a user takes to finish a task — the sign-up flow, the checkout flow, the "create my first product" flow. A flow is made of screens, clicks or taps, decisions, and form fields. The important part: you can literally count all of these.
Not all friction is bad. A confirmation step before deleting a customer's order is good friction — it protects them. Our target is the unnecessary friction: the steps that exist for no reason the user cares about.
How to map a flow and count its cost
You cannot remove friction you cannot see. So write the flow down. For each screen, list every action (every click and every thing the user must type), every decision (any point where they must choose between options), and every required field. Then interrogate each one with a single question: Is this necessary right now? If not, can it be removed, postponed, given a smart default, or filled in automatically?
MAP THE FLOW THEN ASK OF EACH ITEM
----------- --------------------
Screen 1 ─ action Remove it? (delete)
─ decision ──► Defer it? (later)
─ field Default it? (pre-set)
Screen 2 ─ ... Auto-fill it? (detect)
The count is your diagnostic. The numbers are real and sobering. The Baymard Institute, a research group that studies online checkout, found in 2024 that the average checkout is 5.1 steps long with 11.3 form fields, while most retailers only truly need about 8 fields — roughly a 29% cut is sitting there waiting.
Two laws worth knowing
Hick's Law says the time it takes to make a decision grows as you add more choices. More options on the screen means slower, more anxious users. The lesson: cut or group the choices on the critical path.
Tesler's Law (also called the Law of Conservation of Complexity, named after Larry Tesler at Xerox PARC) says every system has an irreducible amount of complexity — you cannot delete it, you can only move it. When you make something simpler for the user, the complexity shifts onto the system and the developers.
Progressive disclosure: show only what's needed now
Progressive disclosure is an interaction pattern named by Jakob Nielsen (co-founder of the Nielsen Norman Group) back in 1995. The idea: show only the primary, essential options by default, and tuck the advanced or rarely used ones behind a "Show more" link, an accordion, or an "Advanced settings" section the user opens only if they need it.
It lowers mental load, makes products faster to learn, and prevents errors — fewer visible options means fewer wrong choices. Google's homepage is the classic case: one search box up front, with advanced search hidden away for the few who want it.
One caution: progressive disclosure is not the same as a wizard. Progressive disclosure splits options into primary versus secondary on the same screen. A wizard splits one task across several sequential screens. More on that below.
Every field has a cost
Each form field you add is another small tax on completion, and the drop-off adds up. The fixes are concrete and reusable:
- Combine "First name" and "Last name" into one "Full name" field.
- Hide optional fields (address line 2, company, coupon code) behind a small link.
- Default the billing address to the shipping address.
- Delay or skip account creation entirely.
Stripe, the payment company, is the gold standard here. Its card form is a single combined field — number, expiry, and security code in one row. It detects the card brand from the number itself (no "card type" dropdown), formats the digits as you type, and validates inline. Stripe absorbs all the complexity — validation, brand detection, security rules — so you type the bare minimum. That is Tesler's Law working for you.
Guest checkout and the forced-account trap
The single most damaging field of all is the one that forces strangers to create an account. Baymard found that 24% of US shoppers abandoned a cart in the past quarter purely because the site forced them to register first. Another ~18% leave because checkout is "too long or too complicated." Yet 62% of sites fail to make guest checkout easy to find.
One-click checkout: deferring friction, not deleting it
Amazon's "1-Click" (patented in 1997, granted 1999, expired in 2017 and since copied by Shop Pay, Bolt and others) collapses an entire multi-step checkout into a single tap. How? It stored the card and address once and reuses them forever. The friction was not deleted — it was deferred and collected a single time. It is widely credited with hundreds of millions in extra revenue. (The exact uplift percentages you see quoted come from secondary blogs, so treat them as illustrative, not gospel.)
Wizards versus a single page
| Pattern | Best for | Watch out for |
|---|---|---|
| Single page | Short tasks; when users want to scan everything at once | Looks overwhelming if the task is long |
| Wizard (multi-step) | Long, complex, or branching tasks; reduces load per screen | More clicks; can hide total length; drop-off between steps |
The rule of thumb: short flows fit on one page; long or branching flows deserve a wizard with a clear progress bar and a back button. A 3-field single screen beats a 6-step wizard — but a short 3-step wizard beats a 20-field wall of inputs.
Onboarding: time-to-value and the "aha moment"
Time-to-value (TTV) is how long it takes from first use until the user gets something real. The "aha moment" is the instant they finally get it — "oh, this is what it does for me." The whole job of onboarding is to shrink the gap between the two.
Teams pick an activation metric — a measurable action that predicts long-term use. Facebook's growth team famously used "7 friends in 10 days"; Dropbox aimed for one file in one folder on one device. (Treat the exact thresholds as well-known industry lore, not precise science — the principle is what's solid.)
Tying it together: the shop owner's first product
For a print-shop owner, the "aha moment" is "my store is live and can take an order." Their job is to go live and sell — not to configure SEO metadata. Every required step before that moment is a place to give up. So:
- Map and count the go-live flow; trim required steps to the minimum.
- Disclose progressively: ask only Name, Price, Photo; defer inventory, variants, and SEO behind "Add more details."
- Default and pre-fill: sensible currency, units, default category, and "published" status — reuse anything onboarding already collected.
- Keep the good friction: a publish confirmation that states consequences, and validation that blocks a $0, un-orderable product.
Key takeaways
- Friction is the cost users pay before value; map the flow and count steps, fields, and decisions to find it.
- Remove, defer, default, or auto-fill — in that order — and absorb the leftover complexity into the system (Tesler's Law).
- Progressive disclosure shows essentials now and hides the rest; every form field has a real cost in drop-off.
- Offer guest checkout; collect details once and reuse them (the one-click principle) rather than gating up front.
- Onboarding's job is to shrink time-to-value and reach the aha moment fast; design around the user's real job.
- The fewer required steps before "your store is live," the more shop owners finish.