shadpanel init
Initialize a new ShadPanel project or merge into an existing Next.js application.
Usage
shadpanel init [project-name] [options]Arguments
[project-name]
The name of your project directory.
- Optional: Prompts if not provided
- Current directory: Use
.to install in the current directory - Examples:
shadpanel init my-admin-panel shadpanel init . # Install in current directory
Options
Package Manager
Choose your preferred package manager:
| Option | Description |
|---|---|
--use-npm | Use npm as package manager |
--use-pnpm | Use pnpm as package manager |
--use-yarn | Use yarn as package manager |
--use-bun | Use bun as package manager |
Example:
shadpanel init my-app --use-pnpmInstallation Type
Control what gets installed:
| Option | Description |
|---|---|
--full-panel | Install complete panel with auth (default) |
--auth-components | Install authentication + components only |
--components-only | Install UI components only |
--no-auth | Skip authentication setup |
Examples:
# Full panel (default)
shadpanel init my-app --full-panel
# Just components
shadpanel init my-app --components-only
# Auth + components
shadpanel init my-app --auth-componentsAuthentication Providers
Configure authentication providers:
| Option | Description |
|---|---|
--credentials | Email/password authentication (default) |
--google | Include Google OAuth provider |
--github | Include GitHub OAuth provider |
Examples:
# Google + GitHub OAuth
shadpanel init my-app --google --github
# Credentials only (default)
shadpanel init my-app --credentials
# All providers
shadpanel init my-app --credentials --google --githubOther Options
| Option | Description |
|---|---|
--skip-install | Skip installing packages |
--disable-git | Skip initializing git repository |
--yes | Use defaults without prompting |
--no-demos | Skip demo pages |
-e, --example <name> | Bootstrap with a specific example |
Examples:
# Skip package installation
shadpanel init my-app --skip-install
# Accept all defaults
shadpanel init my-app --yes
# No demos, no git
shadpanel init my-app --no-demos --disable-gitInstallation Types
Full Panel (Default)
Complete admin panel with everything included:
shadpanel init my-app --full-panelIncludes:
- ✅ Next.js project structure
- ✅ Authentication system (NextAuth.js)
- ✅ Dashboard with sidebar navigation
- ✅ 50+ UI components
- ✅ Form Builder
- ✅ Data Tables
- ✅ Demo pages (optional)
- ✅ Landing page
Best for: Starting from scratch, complete admin panels
Auth Components
Authentication system + component library:
shadpanel init my-app --auth-componentsIncludes:
- ✅ NextAuth.js setup
- ✅ Login/signup pages
- ✅ Auth providers configuration
- ✅ 50+ UI components
- ✅ Form Builder
- ✅ Data Tables
- ❌ Base dashboard structure
Best for: Adding auth to existing apps, custom dashboards
Components Only
Just the component library:
shadpanel init my-app --components-onlyIncludes:
- ✅ 50+ UI components
- ✅ Form Builder
- ✅ Data Tables
- ✅ Utility functions
- ✅ Custom hooks
- ❌ Authentication
- ❌ Dashboard structure
Best for: Existing Next.js apps, component library only
Merging with Existing Projects
ShadPanel can safely merge into existing Next.js projects:
cd my-existing-nextjs-app
shadpanel init .Safe Merge Behavior:
- ✅ Preserves your existing files
- ✅ Only adds new ShadPanel files
- ✅ Prompts before overwriting
- ✅ Merges
package.jsondependencies - ✅ Won’t replace your layout/pages
Merge Example
# You have an existing Next.js app
cd my-app
# Add ShadPanel components only
shadpanel init . --components-only
# Your existing files are preserved:
# ✓ app/page.tsx (your home page)
# ✓ app/layout.tsx (your layout)
# ✓ package.json (your dependencies)
# New files added:
# + components/ui/* (ShadPanel components)
# + lib/utils.ts (utility functions)
# + hooks/* (custom hooks)Interactive Prompts
When you run shadpanel init without flags, you’ll be prompted for:
- Project name (if not provided)
- Package manager (npm, pnpm, yarn, bun)
- Installation type (full-panel, auth-components, components-only)
- Authentication (yes/no)
- Auth providers (Google, GitHub, Credentials)
- Include demos (yes/no)
- Initialize git (yes/no)
Skip Prompts
Use the --yes flag to accept all defaults:
shadpanel init my-app --yesThis creates a full panel with:
- npm as package manager
- Full panel installation
- Credentials authentication
- Demo pages included
- Git repository initialized
Examples
Basic Usage
# Create new project with prompts
shadpanel init my-admin-panel
# Create with pnpm
shadpanel init my-app --use-pnpm
# Skip prompts, use defaults
shadpanel init my-app --yesCustom Configuration
# Full panel with Google OAuth
shadpanel init my-app --google --credentials
# Components only, no installation
shadpanel init my-app --components-only --skip-install
# Auth + components with all providers
shadpanel init my-app --auth-components --google --github --credentialsExisting Project
# Add to existing Next.js app
cd my-existing-app
shadpanel init . --components-only
# Add auth to existing app
cd my-app
shadpanel init . --auth-components --googleAdvanced
# No demos, specific package manager, custom auth
shadpanel init my-app \
--use-pnpm \
--no-demos \
--google \
--github \
--disable-git
# Skip everything except components
shadpanel init my-app \
--components-only \
--skip-install \
--disable-git \
--yesWhat Gets Created
File Structure by Type
Components Only:
my-app/
├── components/ui/
├── lib/utils.ts
├── hooks/
└── (your existing files preserved)Auth Components:
my-app/
├── app/admin/login/
├── app/admin/signup/
├── app/api/auth/[...nextauth]/
├── components/ui/
├── components/login-form.tsx
├── components/signup-form.tsx
├── contexts/
├── lib/utils.ts
├── hooks/
├── types/next-auth.d.ts
└── .envFull Panel:
my-app/
├── app/
│ ├── admin/dashboard/
│ ├── admin/login/
│ ├── admin/signup/
│ ├── api/auth/
│ ├── layout.tsx
│ └── page.tsx
├── components/
├── contexts/
├── hooks/
├── lib/
├── config/
├── types/
├── .env
└── package.jsonNext Steps
After initialization:
-
Navigate to project:
cd my-app -
Install dependencies (if skipped):
npm install -
Set up database (optional):
shadpanel db init -
Start development:
npm run dev
See Also
- Quick Start - Get started guide
- Project Structure - Understand the structure
- Database Commands - Set up database
- Authentication - Configure auth providers