Patterns & Practice
Specific UX patterns and decisions, with the reasoning and research behind each one — not a screenshot gallery.
Pricing pages that actually convert
Pricing pages that actually convert present options clearly, reduce decision friction, and leverage psychological principles like anchoring, framing, and perceived fairness while prioritizing transparency over manipulation.
Empty states that respect the user
Empty states are the screens or sections shown when there is no data or content yet. Thoughtful empty states respect the user by reducing anxiety, providing clear next steps, and turning potential frustration into a moment of orientation and delight.
Form design and the truth about length
Form design and the truth about length is the recognition that perceived effort and cognitive load matter far more than the raw number of fields — users abandon forms when they feel overwhelming or pointless, not simply because they are “long.”
Progressive disclosure
Progressive disclosure is the practice of revealing information and options gradually, showing only what is relevant at each step, to reduce cognitive load — but it must be balanced carefully because excessive hiding can create confusion and mistrust.
The anatomy of honest onboarding
Honest onboarding focuses on helping users achieve a meaningful first win as quickly as possible, with transparency and respect, rather than overwhelming them with features or using deceptive patterns to boost short-term activation metrics.
Microcopy that doesn't feel like marketing
Microcopy that doesn't feel like marketing uses clear, human, and honest language that respects the user's intelligence and context, rather than treating every label, button, or error message as an opportunity to sell or manipulate.
Error messages as a design surface
Error messages as a design surface means treating every error not as a failure announcement, but as a helpful, respectful communication that explains the problem clearly, offers a solution, and preserves user dignity.
Designing the loading state
Designing the loading state is the practice of shaping how users experience delays so that waiting feels shorter, more transparent, and less frustrating, even when actual performance cannot be improved.
Confirmation and the undo principle
Confirmation and the undo principle is the practice of using protective confirmation dialogs only for truly destructive or irreversible actions, while favoring easy undo for most other cases to reduce friction and respect user flow.
Accessibility as a design default, not a checklist
Accessibility as a design default means building products that work well for the widest range of human abilities, contexts, and needs from the beginning, using WCAG as a practical baseline rather than a final checklist.