StealThis .dev

SaaS — First-run / Empty States

A polished set of first-run and empty states for a fictional SaaS project area, covering no projects yet, no search results, no data connected, an error with retry, plus loading skeletons and a populated grid. A state switcher and cycle control preview each scene, while an inline create form, source connect, and retry flows transition into a freshly populated dashboard with realistic but clearly fictional data.

Open in Lab
html css vanilla-js
Targets: JS HTML

Code

First-run / Empty States

A compact SaaS shell — sidebar, sticky topbar, and a centered stage — that showcases every empty and first-run state a product area needs. Each scene ships with an intentional inline-SVG illustration (never a blank gray box): a stacked window for “no projects”, a magnifier for “no results”, linked source nodes for “no data”, and a warning marker for the error state. A loading scene uses shimmering skeleton cards.

The topbar holds a state switcher plus a cycle button so you can walk through No projects, No results, No data, Error, and Populated. The interactions actually resolve: the “Create project” CTA opens a tiny inline form with a name field and color swatches that, on submit, prepends a real card and flips to the populated grid. “Connect a source” and “Try again” both route through the loading skeleton before revealing data, and “Clear search” returns you to the populated list. A small toast confirms each action.

Everything is keyboard-usable with visible focus rings, landmark roles, and AA-contrast text, and the layout collapses gracefully to a horizontal nav and single-column stage on narrow screens.

Illustrative SaaS UI only — fictional product, metrics, and billing. No real backend.