# First Project block

> Projects empty state with hero illustration, dual actions, and quick-start template list

No-projects empty state for a workspace: hero illustration, New project and Explore templates buttons, and a Quick starts grid of clickable template cards. Uses shadcn Empty, Button, Item. Good for onboarding, first-run, zero-data screens.

- Type: Pro block
- Category: [Empty State](https://web.dev.reui.io/blocks/application/empty-state.md)
- Page: https://web.dev.reui.io/blocks/application/empty-state/empty-state-3
- Docs (Base UI): https://ui.shadcn.com/docs/components/base/empty.md
- Docs (Radix UI): https://ui.shadcn.com/docs/components/radix/empty.md
- MCP: `get_block("empty-state-3")`
- Built with: Button, Empty, Item
- Installs with a ReUI Pro or Ultimate license; setup: https://web.dev.reui.io/docs/license-setup

## Best for

A first project prompt with a stepped isometric cube drawing and 2 shortcut links for a task board and sprint tracker

## Agent notes

- New project and Explore templates are `Button`s with no handler; open your create dialog and template gallery from them
- `QuickStartTemplates` hardcodes the Task board and Sprint tracker `Item` links; swap in your own templates and routes
- `ProjectsEmptyIllustration` is an inline SVG in `currentColor` with a `compact` variant the block never renders

## When not to use

- A members area where nobody has been invited yet: use [Invite First Member](https://web.dev.reui.io/blocks/application/empty-state/empty-state-7.md) (`get_block("empty-state-7")`)
- A reports area with no reports yet, beside a blank preview slot: use [Reports Workspace](https://web.dev.reui.io/blocks/application/empty-state/empty-state-4.md) (`get_block("empty-state-4")`)

## Install

```bash
npx shadcn@latest add @reui/empty-state-3
```

## About Empty State blocks

### When to use

- A first run screen for records, projects, reports or a library that holds nothing yet
- A search with zero matches or an export page that has nothing to download yet
- A setup prompt to invite the team, enable a feature or connect file storage

### When not to use

- A compact no data message placed inside a table, list or panel you already have: use [Empty](https://web.dev.reui.io/components/empty.md) (`get_component("empty")`)
- Only the layered isometric illustration, with no title, copy or actions: use [Icon Stack](https://web.dev.reui.io/components/icon-stack.md) (`get_component("icon-stack")`)
- A populated tile that shows stats, a profile, links or an integration: use the [Card blocks](https://web.dev.reui.io/blocks/application/card.md)

### Agent notes

- `EmptyState` takes no props in every block, so its copy, media and actions are fixed in the block files; add props to reuse it
- Every page.tsx centers `EmptyState` in a `min-h-svh` wrapper with padding; drop that wrapper inside your own layout
- No action is wired: buttons have no `onClick` or only fire a sonner `toast`, and every `href` is a hash anchor

Every ReUI item has a twin like this one; the index is https://web.dev.reui.io/llms.txt. Agents with the ReUI MCP (https://web.dev.reui.io/docs/mcp) get the same guidance from the getters named above.
