---
title: "Empty State Design for SaaS | Utkarsh Panwar"
description: "Empty state design for SaaS: four kinds of empty state, a what, why and next copy rule, permission states, and the first-run screen at CodeAnt AI."
url: https://www.utkarshdesign.com/guides/empty-states
author: Utkarsh Dhairya Panwar
updated: 2026-10-08
---

# Empty state design for SaaS products

Guide · 6 min read · By [Utkarsh Dhairya Panwar](https://www.utkarshdesign.com/about) · Updated 8 Oct 2026

**An empty state is what a screen shows when there's nothing to show yet, and in SaaS the first one a user sees is part of onboarding. It should say what will appear, why it's empty now and the one action that fills it, even if that's asking an admin.**

## Four empty states, four different jobs

Teams tend to design one empty state, usually an illustration with "Nothing here yet", and reuse it everywhere. But a screen can be empty for very different reasons, and each calls for a different next step.

| Kind | Why it's empty | What the user needs |
| --- | --- | --- |
| First use | The account is new and nothing has been connected or created | The fastest route to the first real content |
| Cleared | The user finished or deleted everything, like an empty inbox | Confirmation that this is good, and a light pointer to what's next |
| No results | A search or filter matched nothing | Their query shown back, and a way to loosen it |
| Blocked | A permission, plan limit or failed sync stops content from loading | The reason in plain words and who can fix it |

First-use and blocked states are the ones that cost trials; the other two mostly cost a bit of patience. Mature design systems treat the split seriously: GitHub's Primer lists empty states as a pattern of their own, next to degraded experiences and loading, instead of leaving each team to improvise one.

![GitHub Primer UI Patterns page with cards for Data visualization, Degraded experiences and Empty states, and a sidebar listing feature onboarding, forms, loading and navigation patterns](https://www.utkarshdesign.com/images/web/primer-ui-patterns.webp)

_Screenshot: GitHub Primer's UI patterns page, October 2026. Empty states and degraded experiences are separate patterns._

## The copy rule: what, why, next

Every empty state I write says three things in this order: what will live here once it's working, why it's empty right now for this particular user, and one action named after what it does. Here it is applied to a code health dashboard, in example lines I wrote for this page.

- Weak: "No data available." It describes the screen instead of the situation and gives the user nothing to do.
- Better: "Security findings for your repositories will show here. You haven't connected a repository yet. Connect repository."
- Blocked: "Findings will show here once your GitHub org approves the CodeAnt app. Only an org admin can do that. Ask your admin."
- No results: "No critical findings match 'payments-service'. Clear the severity filter to see all 12 findings."

An illustration would add nothing to any of these. It can set a tone, but it can't explain why or point to the next step, and on a dense B2B screen it often pushes the button below the fold.

## First run at CodeAnt: no blank dashboard

CodeAnt AI's dashboards (reviews, security, quality, developer metrics) have nothing to show until a repository is connected and analysed. New users don't land on empty charts. They get the Get Started screen, with each product line as a tab, every setup task linked directly and finished ones marked done.

![CodeAnt Get Started page with tabs for AI Code Review, Code Security, Code Quality and Insights, five completed setup steps, integrations, IDE extensions and Invite More Teammates](https://www.utkarshdesign.com/images/codeant-get-started.webp)

_In place of "nothing to show yet", a list of exactly what to do to get something to show._

The most useful first-use empty state is barely empty at all. This one is a short, specific to-do list that goes away once real content arrives, with room for what often matters most in B2B: inviting the teammates who can do the next step.

## When the next step belongs to someone else

Blocked empty states do the most damage of the four. At CodeAnt, connecting a company repo needed an org admin, and developers without admin rights hit a screen with no reason and no way forward. I turned it into a request they could send to the admin (the full story is in how we doubled trial-to-paid).

Any empty state caused by a permission should do the same: name the role that can fix it, and give a one-click way to reach that person. Then tell the user what happens next, so the screen they come back to isn't the same dead end.

![CodeAnt Request Admin Approval modal with an invite link field and Copy button, an org admin email field with Send, and a Book a Call link](https://www.utkarshdesign.com/images/codeant-request-admin-approval.webp)

_A blocked state turned into a request the user can send._

## Fill it before the user has to

Sometimes you can avoid the empty state altogether. Each way of doing that has a cost:

- Ask one or two questions up front and use the answers. In the Soundsphere concept, new listeners pick a few topics and people so the For You feed starts relevant instead of blank. Cost: a short extra step at sign-up.
- Show sample content, clearly labelled. Good for analytics and databases. Cost: it can be mistaken for real data, so label it and make it easy to clear.
- Start work immediately on something that already exists, such as scanning the default branch while the user waits for their first pull request. Cost: you need the permissions first.

![Four Soundsphere onboarding screens: a welcome screen with sign-up options, a sign-up form, a Pick 3 or more topics screen with chips, and a Pick 3 or more people avatar grid](https://www.utkarshdesign.com/images/zIh2L5bSM1Y64cvCkgeB2P17KAI.webp)

_Two quick picks during sign-up so the first feed isn't empty._

## A short checklist

- Does each empty screen know which of the four kinds it is?
- Does the copy say what goes here, why it's empty for this user, and one next action?
- Is the primary button visible without scrolling on a laptop?
- Do blocked states name who can fix it and offer a way to reach them?
- Does the empty state disappear, or change, once the first content arrives?

Empty states are one of the first things I look at in an onboarding audit, because they're cheap to fix and new users see them before anything else.

## Questions people ask

### What is an empty state in UX?

The screen a user sees when there's no content to show yet, such as a new account's dashboard, an empty search result or a page they don't have access to. It should explain why and offer a next step.

### Should empty states have illustrations?

They can, for tone, but the copy and the action do the work. On dense B2B screens, keep illustrations small so the next step stays visible.

### Is sample data better than an empty state?

Often, for products that are blank until the user's data arrives. Label it clearly as sample data and make it easy to remove.

### How is an empty state different from an error message?

An error says something went wrong, while an empty state can be completely normal, like a new account. A blocked empty state sits between the two and should explain the cause without sounding like a failure.

## Sources

1. [Empty states](https://primer.style/product/ui-patterns/empty-states/), GitHub Primer
2. [Degraded experiences](https://primer.style/product/ui-patterns/degraded-experiences/), GitHub Primer
3. [Designing Empty States in Complex Applications: 3 Guidelines](https://www.nngroup.com/articles/empty-state-interface-design/), Nielsen Norman Group

## Working on this?

Tell me what you're building and where it's stuck: [book a 30-minute call](https://cal.com/utkarsh-design/30min), email [work@utkarshdesign.com](mailto:work@utkarshdesign.com) or [send a brief](https://www.utkarshdesign.com/contact).

## Related

- [SaaS dashboard design for managers and contributors](https://www.utkarshdesign.com/guides/saas-dashboard-design)
- [Error message UX best practices, with rewrites](https://www.utkarshdesign.com/guides/error-message-design)
- [Do product tours work?](https://www.utkarshdesign.com/guides/product-tours)
- [SaaS onboarding and activation UX audit](https://www.utkarshdesign.com/services/saas-onboarding-audit)

---

Utkarsh Dhairya Panwar, Founding Product Designer and Design Engineer (IIT Roorkee; Founding Designer at CodeAnt AI, YC W24). Email: work@utkarshdesign.com · Book a call: https://cal.com/utkarsh-design/30min · Hire: https://www.utkarshdesign.com/hire · About: https://www.utkarshdesign.com/llms.txt
