The admin for a SaaS business: revenue at a glance, customers and invoices with a page each, reports, an inbox, settings and sign-in.
An app, not a landing page: the admin a SaaS company runs itself on. A sidebar that folds to a rail, a top bar with search and the theme, and a command palette that reaches every page, customer and action. The overview shows revenue, customers and what is unpaid; customers and invoices are full data tables you can search, filter, sort, select and page through, and every customer and invoice has its own page, the invoice laid out to print. Reports show MRR won and lost over any range and retention by cohort; the inbox collects what needs a look. Settings cover the profile, the team and their roles, billing, notifications, API keys and a danger zone, and sign-in comes with sign-up, password reset, a 404 and an error page. The sample company is Kiteline, which sells help desk software, and every figure is computed from one set of customers and their invoices, so the pages agree with each other.
Every page is built from Eased components you can also use on their own, and each one installs by itself from the Pro registry. Light and dark themes, reduced motion, keyboard use and phones down to 390px are handled the same way they are in the library.
The first look
The overview opens in one beat. The four figures roll up from zero, the revenue chart draws in left to right, the plan breakdown sweeps in after it and the lists rise; then the command palette opens to show how to get around, once per visit and only when nothing else is in use. Replay runs it again. With reduced motion everything is simply there, and the palette waits for ⌘K.
Overview/
App shell
A sidebar with a workspace switcher that folds to a rail, a top bar with search and the theme, and a command palette that reaches every page and customer.
Overview
Four rolling figures, an MRR chart against the period before, MRR by plan, recent activity and unpaid invoices, opening in one beat that ends on the command palette.
Inbox/inbox
App shell
A sidebar with a workspace switcher that folds to a rail, a top bar with search and the theme, and a command palette that reaches every page and customer.
Inbox
Notifications grouped by day, each opening the customer or invoice it is about, beside what is waiting on someone and what you are notified about.
Customers/customers
App shell
A sidebar with a workspace switcher that folds to a rail, a top bar with search and the theme, and a command palette that reaches every page and customer.
Customer/customers/[id]
App shell
A sidebar with a workspace switcher that folds to a rail, a top bar with search and the theme, and a command palette that reaches every page and customer.
Customer
One customer's page: their figures and details, six months of MRR in a line chart, every invoice, and their history from trial to today.
Invoices/invoices
App shell
A sidebar with a workspace switcher that folds to a rail, a top bar with search and the theme, and a command palette that reaches every page and customer.
Invoices
What is owed and what came in, over a table of invoices with status badges, tabs, search and a menu per row whose refund asks first.
Invoice/invoices/[id]
App shell
A sidebar with a workspace switcher that folds to a rail, a top bar with search and the theme, and a command palette that reaches every page and customer.
Reports/reports
App shell
A sidebar with a workspace switcher that folds to a rail, a top bar with search and the theme, and a command palette that reaches every page and customer.
Reports
MRR won and lost over a date range, month by month, and retention by cohort in a shaded table you can switch between customers and revenue.
Settings
App shell
A sidebar with a workspace switcher that folds to a rail, a top bar with search and the theme, and a command palette that reaches every page and customer.
Auth
Error pages
App shell
A sidebar with a workspace switcher that folds to a rail, a top bar with search and the theme, and a command palette that reaches every page and customer.
Error pages
A missing page and a page that failed to load, inside the app shell, with the way back, search and a reference to quote.
Download the starter
A Next.js app with every section, the content file and the Eased tokens. Unzip it, run pnpm install and pnpm dev, then make it yours in one file.
Install one section
Each section is its own Pro registry item, with the components it uses. Add it to an app that already has Eased set up.
npx shadcn add @eased-pro/admin-dashboard-overview