SaaS App Shell with Command Palette
A complete SaaS application shell featuring a collapsible sidebar, command palette (⌘K), notification drawer, and multi-workspace switcher — the skeleton for any SaaS product.
Build a complete SaaS application shell — the outer frame/skeleton that wraps the entire product. Include:
1. **Top navigation bar (48px tall):**
- Left: A workspace/account switcher (shows current workspace logo + name + ▾ dropdown. Clicking opens a dropdown listing all workspaces + "Create workspace" and "Sign out" at bottom).
- Center: A fake search bar that reads "Search or jump to... ⌘K". Clicking it opens the command palette modal (see below).
- Right: A notification bell (with red badge count), a "?" help button, and the current user avatar (opens a small popover with Profile, Settings, Changelog, Sign out).
2. **Left sidebar (240px, collapsible to 64px icon rail):**
- A collapse toggle button at the top right of the sidebar.
- Primary nav section: Home, Inbox, Projects, Tasks, Docs. Each item has an icon + label. Active state shows blue background.
- A "Projects" section below with a list of 3-4 user-created projects (with colored dots and names) and a "+ New project" button.
- A "Favorited" section with 2 items.
- Bottom of sidebar: Upgrade plan nudge ("You're on Starter. Upgrade for more →"), and a help link.
3. **Main content area** — This is the slot where any page renders. Show a placeholder with a gray "Page content renders here" message to represent the slot.
4. **Command palette modal (⌘K):**
- Appears as a centered modal with a blurred/dimmed backdrop.
- Full-width search input at the top with a search icon and keyboard hint.
- Results grouped by type: "Recent Pages", "Projects", "People", "Actions". Each result has an icon + title + shortcut hint on the right.
- A footer row showing keyboard nav hints: ↑↓ to navigate, ↵ to open, ⎋ to close.
5. **Notification drawer:**
- Slides in from the right as a panel (400px).
- Header: "Notifications" + "Mark all read" link.
- List of notification rows: avatar, name, action ("commented on"), target ("Task: Launch v2"), timestamp. Unread rows have a blue dot.
Use zinc-900 background for the sidebar and nav bar, white for main content. Clean icon set (Heroicons or Lucide style).[TOP NAV BAR — 48px, zinc-900 bg]
[Acme Inc ▾] [🔍 Search or jump to... ⌘K ] [🔔 3] [?] [Avatar ▾]
[TWO-COLUMN — sidebar + main]
[SIDEBAR — 240px, zinc-900, collapsible → icon rail]
[← collapse]
MAIN
🏠 Home
📥 Inbox (2 unread badge)
📁 Projects
✅ Tasks
📄 Docs
PROJECTS
🔵 Acme Website
🟢 Mobile App v2
🔴 Q1 Marketing
+ New project
FAVORITED
⭐ Design System
⭐ Sprint Board
──────────────────────
↑ You're on Starter.
Upgrade for more →
💬 Help & Support
[MAIN CONTENT — white, flex-1]
┌──────────────────────────────────────────────────────────┐
│ │
│ │
│ [Page content renders here] │
│ │
│ │
└──────────────────────────────────────────────────────────┘
[COMMAND PALETTE — modal, centered, dimmed backdrop]
┌────────────────────────────────────────────────────────┐
│ [🔍 Search commands, pages, people... ] ⎋ │
│ ────────────────────────────────────────────────────── │
│ RECENT PAGES │
│ 📄 Design System ↵ │
│ 📁 Mobile App v2 ↵ │
│ PROJECTS │
│ 🔵 Acme Website ↵ │
│ ACTIONS │
│ ✨ Create new task ⌘N │
│ 📩 Invite a teammate ⌘I │
│ ────────────────────────────────────────────────────── │
│ ↑↓ navigate ↵ open ⎋ close │
└────────────────────────────────────────────────────────┘
[NOTIFICATION DRAWER — right panel, 400px]
Notifications Mark all read
─────────────────────────────────────────────────────────
● [Av] Sara commented on "Launch v2" 2 min ago
● [Av] Tom assigned you "Fix header bug" 1 hr ago
[Av] Acme Website marked as complete 3 hrs ago
[Av] New teammate joined workspace Yesterday┌──────────┬────────────────────────────────────┐
│ ◉ App │ Search [____________] 🔔 👤 │
│ ├────────────────────────────────────┤
│ ● Home │ │
│ ○ Inbox │ ┌───────────────────────────────┐│
│ ○ Tasks │ │ ⌘K Quick Actions ││
│ ○ Docs │ │ ───────────────────────── ││
│ ○ Team │ │ 📄 New Document ││
│ ○ API │ │ 👥 Invite Team Member ││
│ │ │ ⚙ Open Settings ││
│ ──────── │ │ 📊 View Analytics ││
│ Settings │ │ ... ││
│ Help │ └───────────────────────────────┘│
│ │ │
│ │ ┌──────────┐ ┌──────────────────┐│
│ │ │ Projects │ │ Recent Activity ││
│ │ │ ──────── │ │ ─────────────── ││
│ │ │ ▸ Alpha │ │ ● Deploy v2.1 ││
│ │ │ ▸ Beta │ │ ○ PR merged ││
│ │ │ ▸ Gamma │ │ ○ Issue #42 ││
│ │ └──────────┘ └──────────────────┘│
└──────────┴────────────────────────────────────┘UI Patterns Used
``` [•••] ▾ ──────────── Edit Move Duplicate
Dropdown Menu
Contextual list of actions or options that appears on click or hover
``` ┌────────────────────────────────────────────┐ │ [Title] [X] │ │ ────────────────────────────────────────── │ │ │ │ │ │ │ Modal body content goes here. │ │
Modal / Dialog
Overlaid modal dialog for focused tasks, confirmations, and complex forms
``` ┌─────────────┬──────────────────────────────┐ │ Logo │ │ ├─────────────┤ Main Content │ │ › Dashboard │ │ │ › Analytics │ │
Sidebar Navigation
Vertical navigation menu positioned on the side of a page, typically on the left, containing links and menu items
Learn more about the UI patterns used in this layout.
Related Layouts
┌──────────┬────────────────────────────────────┐
│ ◉ App │ Search [____________] 🔔 👤 │
│ ├────────────────────────────────────┤
│ ● Home │ │
│ ○ Inbox │ ┌───────────────────────────────┐│
│ ○ Tasks │ │ ⌘K Quick Actions ││
│ ○ Docs │ │ ───────────────────────── ││
│ ○ Team │ │ 📄 New Document ││
│ ○ API │ │ 👥 Invite Team Member ││
│ │ │ ⚙ Open Settings ││
│ ──────── │ │ 📊 View Analytics ││
│ Settings │ │ ... ││
│ Help │ └───────────────────────────────┘│
│ │ │
│ │ ┌──────────┐ ┌──────────────────┐│
│ │ │ Projects │ │ Recent Activity ││
│ │ │ ──────── │ │ ─────────────── ││
│ │ │ ▸ Alpha │ │ ● Deploy v2.1 ││
│ │ │ ▸ Beta │ │ ○ PR merged ││
│ │ │ ▸ Gamma │ │ ○ Issue #42 ││
│ │ └──────────┘ └──────────────────┘│
└──────────┴────────────────────────────────────┘Data Table CRUD Interface
A full-featured data table CRUD interface with column filters, inline row editing, bulk actions, add/delete controls, CSV export, and pagination for SaaS admin screens.
┌──────────┬────────────────────────────────────┐
│ ◉ App │ Search [____________] 🔔 👤 │
│ ├────────────────────────────────────┤
│ ● Home │ │
│ ○ Inbox │ ┌───────────────────────────────┐│
│ ○ Tasks │ │ ⌘K Quick Actions ││
│ ○ Docs │ │ ───────────────────────── ││
│ ○ Team │ │ 📄 New Document ││
│ ○ API │ │ 👥 Invite Team Member ││
│ │ │ ⚙ Open Settings ││
│ ──────── │ │ 📊 View Analytics ││
│ Settings │ │ ... ││
│ Help │ └───────────────────────────────┘│
│ │ │
│ │ ┌──────────┐ ┌──────────────────┐│
│ │ │ Projects │ │ Recent Activity ││
│ │ │ ──────── │ │ ─────────────── ││
│ │ │ ▸ Alpha │ │ ● Deploy v2.1 ││
│ │ │ ▸ Beta │ │ ○ PR merged ││
│ │ │ ▸ Gamma │ │ ○ Issue #42 ││
│ │ └──────────┘ └──────────────────┘│
└──────────┴────────────────────────────────────┘Inbox and Messaging Layout
A three-pane inbox and messaging layout with a contacts sidebar, thread list panel, and full conversation view — modeled after Gmail, Linear, and Intercom.
┌──────────┬────────────────────────────────────┐
│ ◉ App │ Search [____________] 🔔 👤 │
│ ├────────────────────────────────────┤
│ ● Home │ │
│ ○ Inbox │ ┌───────────────────────────────┐│
│ ○ Tasks │ │ ⌘K Quick Actions ││
│ ○ Docs │ │ ───────────────────────── ││
│ ○ Team │ │ 📄 New Document ││
│ ○ API │ │ 👥 Invite Team Member ││
│ │ │ ⚙ Open Settings ││
│ ──────── │ │ 📊 View Analytics ││
│ Settings │ │ ... ││
│ Help │ └───────────────────────────────┘│
│ │ │
│ │ ┌──────────┐ ┌──────────────────┐│
│ │ │ Projects │ │ Recent Activity ││
│ │ │ ──────── │ │ ─────────────── ││
│ │ │ ▸ Alpha │ │ ● Deploy v2.1 ││
│ │ │ ▸ Beta │ │ ○ PR merged ││
│ │ │ ▸ Gamma │ │ ○ Issue #42 ││
│ │ └──────────┘ └──────────────────┘│
└──────────┴────────────────────────────────────┘Kanban Task Board
A Kanban task board with draggable columns, task cards with assignees and labels, add task inline, and a board header with sprint controls and filter bar.