Skip to main content
DesignKey Studio
8 Usability Improvements for Any App - featured article image
Design
July 17, 2026
8 min read
Written byDaniel Killyevo

8 Usability Improvements for Any App

Eight concrete usability improvements any app can make - with examples of what bad looks like, what good looks like, and how to tell the difference.

ux-designweb-designproduct-designsoftware-development

Usability problems are almost always specific and fixable. They are not mysterious - they show up in the same patterns across products, and they respond to the same targeted interventions. The following eight improvements can be applied to nearly any app, and each one has a measurable effect on user behavior.

The TL;DR

  • Navigation clarity is the highest-impact usability fix for most apps.
  • Error messages that explain and guide are exponentially more useful than generic error messages.
  • Touch target size and spacing directly affects error rate on mobile.
  • Empty states are UX opportunities most apps squander.
  • Performance is usability - load time and response time affect whether users return.
  • Feedback closing the loop on every action reduces user anxiety.
  • Search and findability degrade usability faster than any other single factor as products grow.
  • Consistent patterns across the app reduce cognitive load and increase confidence.

1. Fix Navigation Clarity

What bad looks like: Navigation items labeled with internal product terminology, icons without labels, sections that don't map to what users are trying to accomplish.

What good looks like: Every navigation item is labeled in plain language that corresponds to a user goal or content type. The active item is visually distinct. The depth of navigation matches the complexity of the product - apps with fewer than 6 top-level sections generally do not need a hamburger menu on desktop.

How to diagnose it: Watch three users navigate to a core feature they have used before. If any of them hesitates, goes somewhere wrong, or uses search to find something that should be directly accessible, your navigation has a labeling or structure problem.

Quick fix: Rename any navigation item that contains an internal product term, a made-up word, or an acronym. Replace with plain language. "Hubs" becomes "Groups." "Streams" becomes "Messages." Test the renamed version with users before shipping.


2. Rewrite Your Error Messages

What bad looks like: "An error occurred." "Request failed." "Error 422: Unprocessable entity." Generic, unexplained, actionless.

What good looks like: "Your session expired. Sign in again to continue." "That email is already registered. Sign in or use a different email." "The CSV file is missing a 'Name' column. Download the template to see the expected format."

Good error messages answer three questions: what happened, why it happened, and what the user should do next. All three answers should fit in two sentences.

How to diagnose it: Review every error message in your app. For each one, ask whether a new user reading it would know exactly what to do next. Any that leave that question unanswered need rewriting.

Quick fix: Start with your most frequently triggered errors. Pull the error log, sort by frequency, and rewrite the top 10. According to Nielsen Norman Group's error message guidelines, plain-language error messages that offer recovery paths dramatically reduce user drop-off after errors.


3. Increase Touch Target Size on Mobile

What bad looks like: Buttons that are technically tappable but require precise placement. Icons at 20x20px. Links inside dense text with no padding between them. Navigation items spaced 4px apart.

What good looks like: Every interactive element has a minimum touch target of 44x44px. Related interactive elements have at least 8px of non-interactive space between them. Form inputs are tall enough to tap without zooming.

How to diagnose it: Test your app on a real phone (not a simulator) with one hand. Try to interact with every tappable element. Any element that requires a second attempt or produces an adjacent-element tap is too small or too close.

Quick fix: In your CSS, add min-height: 44px; min-width: 44px to interactive elements and verify the visual result. For icon buttons without visible borders, add padding rather than changing the visual size. Web.dev's touch target guidance provides WCAG-compliant size recommendations.


4. Design Empty States

What bad looks like: A completely blank screen when a user first loads a section with no data. A table with zero rows and no explanation. A "You have no items" message with nothing else.

What good looks like: Empty states that explain what belongs here, why it is empty right now, and how the user can change that. A "No projects yet" empty state with a "Create your first project" button, and optionally a brief description of what projects are for.

How to diagnose it: Sign up for your own product with a fresh account and go through every section. Note every blank or near-blank state. Ask whether each one gives the user a clear next action.

Quick fix: Write copy for each empty state that follows the structure: "Nothing here yet. [One sentence explaining what would appear here.] [CTA button or link to create the first item.]" Add an icon or illustration if the product has a visual design system - empty states that look like accidents feel different from empty states that look designed.


5. Eliminate Unnecessary Load Time

What bad looks like: Pages that take 3+ seconds to render. Spinners that appear with no indication of progress. Data tables that freeze the UI while loading. Every route transition requiring a full-page reload.

What good looks like: Skeleton screens that show the shape of incoming content while it loads. Optimistic UI that shows the result of an action before the server confirms it. Route transitions that load the next screen's structure immediately while data populates.

How to diagnose it: Use your browser's developer tools (Lighthouse tab) to run a performance audit on your most-visited pages. Any page scoring below 70 on Performance or with a First Contentful Paint above 2 seconds has meaningful usability impact.

Quick fix: Compress all images using tools like Squoosh or the sharp npm package. Implement lazy loading for images below the fold. For apps with frequent data fetching, add skeleton loading components in place of raw spinners. Web.dev's performance guidance provides specific, actionable benchmarks.


6. Close the Feedback Loop on Every Action

What bad looks like: A button that, when clicked, does nothing visibly for 2-3 seconds. A form that submits and clears without confirming what happened. A file that uploads with no indication of progress or completion.

What good looks like: Every user action produces immediate feedback. Buttons that trigger network requests show a loading state. Successful operations show a brief success confirmation. File uploads show progress. Destructive operations ask for confirmation. State changes are visible.

How to diagnose it: Go through every primary action in your app - form submissions, button clicks, drag-and-drop operations, file uploads. For each one, ask whether a user who couldn't see the server logs would know definitively whether their action succeeded, failed, or is in progress.

Quick fix: Add loading states to all async button interactions. Add toast notifications or inline confirmations to successful form submissions. Ensure every form submission that fails does so visibly - not by silently resetting the form.


7. Make Search Actually Work

What bad looks like: Search that only matches exact strings. Search results with no context about why they matched. Search that is hidden or positioned inconsistently. Search that searches only some content types.

What good looks like: Search that handles typos, partial matches, and synonyms. Results that show enough context for the user to identify whether they found the right item. Search that is consistently positioned and accessible via keyboard shortcut (Ctrl+K or Cmd+K is now widely established as the universal shortcut).

How to diagnose it: This one is particularly important for apps with significant content volume. Ask users to find three specific items using search. Observe where they get stuck. Pay attention to how they phrase their queries - if users consistently phrase things differently from how the content is labeled, you have a labeling problem that search cannot fully compensate for.

Quick fix: If your search is purely a database LIKE query, add partial-match support and basic fuzzy matching. At minimum, ensure searches are case-insensitive. For apps with complex content, adding a Cmd+K command palette for navigation and search is one of the highest-leverage usability investments available - users who discover it become immediately more efficient.

Our software development and UX/UI design teams frequently add command palette patterns to apps undergoing usability improvements, and the adoption rate among power users is consistently high.


8. Maintain Consistent Interaction Patterns

What bad looks like: The same action produces different results in different parts of the app. Buttons that look identical trigger different behaviors. Modals that close differently depending on where they were opened. Confirmation dialogs that appear for some destructive actions but not others.

What good looks like: Identical visual elements behave identically everywhere. If clicking outside a modal closes it, clicking outside any modal closes it. If a primary action button is always blue and bottom-right, it is always blue and bottom-right.

How to diagnose it: Walk through your app and document every way that a given interaction can be triggered. Look for cases where the same action (e.g., saving a record) is accomplished differently in different contexts - sometimes via a dedicated button, sometimes via a keyboard shortcut that triggers automatically, sometimes via navigating away. Each variation is a learning cost for users.

Quick fix: Audit your component library (or the UI patterns in use across your app) for drift. Every case where the same concept is represented by multiple different components or patterns is a source of inconsistency. Consolidate to one pattern per concept and apply it everywhere.


How to Prioritize These Improvements

If you are applying these to a live product, the sequencing matters. Prioritize based on impact and effort:

  • High impact, low effort: Rewriting error messages and adding button loading states.
  • High impact, moderate effort: Improving navigation labels and designing empty states.
  • High impact, higher effort: Improving search and establishing consistent design patterns.
  • Ongoing: Touch target auditing and performance monitoring.

If you want a structured assessment of your app's usability gaps - including an audit of which of these problems are present and how severe they are - our team runs UX redesign engagements specifically for this purpose. Reach out to discuss what an assessment would cover.

Share this article

DK
Daniel Killyevo

Founder & Technical Lead

Daniel Killyevo started Design Key with a vision to empower businesses with cutting-edge technology and tailor-made solutions. After years of experience in the tech industry, Daniel recognized the gap between clients' needs and available services. This realization led to the creation of Design Key, an agency that would bridge the divide and help clients achieve their goals with better-designed products. Daniel is an accomplished technical leader with a Master's degree in Computer Science from Poltava National Technical University (2005-2011). Born to a Ukrainian mother and Tanzanian father in Tanzania and raised in Ukraine, he brings a unique global perspective to his work. With more than 15 years of experience in software development and product design, Daniel has successfully delivered more than 50 web and mobile applications. He began his career as a software developer and went on to work with prominent companies such as Ciklum, Corrigo (Terminix), and JustEat, helping build more than 40 prototypes and MVPs for startups. His expertise includes architecting complex cloud-based software solutions, API and data integrations, and building and scaling tech teams. As a seasoned entrepreneur, Daniel has gained invaluable experience working on personal startups and establishing two software agencies.

5 API Integration Failure Modes and Fixes thumbnail
Next Article

5 API Integration Failure Modes and Fixes

Contact Us

Looking for Design Excellence?

Let our design team create beautiful, user-centric experiences for your product.

How does it work?

1

Our solution expert will analyze your requirements and get back to you within 1 business day.

2

If necessary, we can sign a mutual NDA and discuss the project in more detail during a call.

3

You'll receive an initial estimate and our suggestions for your project within 3-5 business days.