POV

5 min

Nobody buys software because of a beautiful form. They quit because of a bad one.

Forms don't sell your product. They're where people decide whether to trust it. Here's how to think about the ones that matter.

Nobody has ever signed up for a product because the signup form looked nice. But plenty of people have abandoned a signup form because it asked for too much, explained too little, or punished a small mistake with a vague error message.

Forms are asymmetric like that. They can’t really win you a customer. They can definitely lose you one. Which means the right way to think about a form isn’t “how do we make this delightful,” it’s “how do we make this impossible to get wrong.”

The real cost of a field

Every field on a form is a small tax. Some of that tax is unavoidable, you genuinely need the email address. Some of it is collected out of habit, because someone once asked for a phone number “just in case” and nobody has removed it since.

Before adding a field, the only question worth asking is what breaks if we don’t have this yet. If the honest answer is “nothing breaks, it’s just useful to have,” it doesn’t belong on the first form. Collect it later, when the person has already decided to trust you, and the cost of asking is lower.

Progressive disclosure isn’t a design trend, it’s a tax cut

Showing the whole form at once front-loads every decision the user has to make. Showing one section at a time, with the next section appearing only once the current one is valid, turns one big decision into several small ones. Small decisions feel easier even when the total amount of work is the same. That’s not a trick. It’s how attention actually works.

The same logic applies to progress indicators. A percentage number creates anxiety because it’s abstract, you don’t know what’s behind the remaining 60%. Showing named sections, “Account details,” then “Company info,” then “Confirm,” tells the user exactly what’s coming and lets them decide if it’s worth finishing. People tolerate a known cost more easily than an unknown one.

Errors are where trust is actually won or lost

A clean form with a bad error state is still a bad form. The moment something goes wrong, like wrong format, missing field, server hiccup, is the moment the user finds out whether the product respects them. “Invalid input” tells the user nothing. “Phone numbers need 10 digits, no spaces” tells them exactly what to fix and gets them back to finishing the task in seconds.

Errors should appear next to the field that caused them, not in a banner at the top the user has to scroll back up to read. And they should never blame the user. “That email looks off, mind double-checking it?” does the same job as “Invalid email” without making anyone feel stupid for a typo.

Save state is a form of respect

Long forms that lose all progress on a refresh or a dropped connection are asking users to trust a system that has just demonstrated it doesn’t deserve trust. If a form takes more than two minutes to complete, saving partial progress isn’t a nice-to-have. It’s the difference between someone finishing later and someone never coming back.

The principle

A form’s job is to get out of the way. Every choice in a form, from field count to error copy to progress indicators, should be judged on one question: did this make it easier for someone to finish what they came here to do, or did it just make the form look more finished?

© 2026 Lam'aan. Designed in the Maldives.

Create a free website with Framer, the website builder loved by startups, designers and agencies.