Skip to content
Back to skills

Frontend Setup

ASecurity

Interactive multi-level skill for scaffolding frontend projects from source. Use when user wants to: (1) Create a new frontend project (web, mobile, desktop, or cross-platform) (2) Set up a React, Vue, Svelte, Angular, Flutter, React Native, Electron, or Tauri project (3) Configure shadcn/ui with custom styling, colors, fonts, and components (4) Set up architecture patterns (Bulletproof React, Clean Architecture, Feature-based, etc.) (5) Add state management, data fetching, forms, validation,...

  • 666 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added February 8, 2026
developmentgoswiftkotlinbashreactvueangularnextjsnodedocker

Works with

  • cli
  • api

Security analysis

A100/100

Scanned February 12, 2026

npx -y skills add majiayu000/claude-skill-registry --skill frontend-setup --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Frontend Setup?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Frontend Setup
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-frontend-setup/badge)](https://www.skillsdirectory.com/skills/majiayu000-frontend-setup)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: frontend-setup
description: |
  Interactive multi-level skill for scaffolding frontend projects from source. Use when user wants to:
  (1) Create a new frontend project (web, mobile, desktop, or cross-platform)
  (2) Set up a React, Vue, Svelte, Angular, Flutter, React Native, Electron, or Tauri project
  (3) Configure shadcn/ui with custom styling, colors, fonts, and components
  (4) Set up architecture patterns (Bulletproof React, Clean Architecture, Feature-based, etc.)
  (5) Add state management, data fetching, forms, validation, testing, or tooling

  Triggers: "create frontend project", "setup react app", "new vue project", "scaffold mobile app", "setup shadcn", "create next.js app", "new expo project", "setup tauri app"
---

# Frontend Setup

Interactive skill for scaffolding frontend projects. Guides through platform, framework, and tooling selection using cascading questions, then generates commands and directory structure.

## Question Flow Strategy

Use `AskUserQuestion` with **max 4 options per question**. For categories with more options, use cascading questions:

1. First ask about **category/family**
2. Then ask for **specific choice** within that category

See [references/frameworks.md](references/frameworks.md) for all groupings and options.

## Workflow

### Level 1: Platform

```
? Select target platform:
  > Web
  > Mobile
  > Desktop
  > Cross-Platform
```

### Level 2: Framework

**Cascading pattern** - ask family first, then specific:

**Web:**
```
Q1: ? Framework family:
    > React-based
    > Vue-based
    > Svelte-based
    > Other

Q2 (if React): ? React framework:
    > TanStack Start (Recommended)
    > Vite (SPA)
    > Next.js

Q2 (if Vue): ? Vue framework:
    > Vite (SPA)
    > Nuxt (Full-stack)

Q2 (if Svelte): ? Svelte framework:
    > Vite (SPA)
    > SvelteKit (Full-stack)

Q2 (if Other): ? Select framework:
    > Angular
    > Solid / Qwik
    > Astro
    > Vanilla
```

**Mobile:**
```
Q1: ? Mobile approach:
    > React Native
    > Flutter
    > Native

Q2 (if RN): ? React Native setup:
    > Expo (Recommended)
    > Bare CLI

Q2 (if Native): ? Native platform:
    > iOS (Swift/SwiftUI)
    > Android (Kotlin)
```

**Desktop:**
```
Q1: ? Desktop approach:
    > Web-based (Electron/Tauri)
    > Cross-platform native
    > Platform-specific

Q2 (if Web-based): ? Framework:
    > Tauri (Recommended)
    > Electron

Q2 (if Cross-platform): ? Framework:
    > Flutter Desktop
    > .NET MAUI
```

### Level 3: Package Manager (Node.js only)

Skip for Flutter/Native.
```
? Package manager:
  > pnpm (Recommended)
  > npm
  > yarn
  > bun
```

### Level 4: Architecture

See [references/architecture.md](references/architecture.md) for patterns. Most frameworks have ≤4 options.

### Level 5: Design System

**Cascading pattern for React/Vue (>4 options):**

```
Q1: ? Design approach:
    > Tailwind-based
    > Component library
    > Unstyled / None

Q2 (if Tailwind): ? Tailwind system:
    > shadcn/ui (Recommended)
    > Tailwind CSS only
    > Headless UI + Tailwind

Q2 (if Component): ? Library:
    > Material UI
    > Chakra UI
    > Mantine
    > Ant Design
```

**If shadcn/ui selected:** Continue to Level 6 ([references/shadcn.md](references/shadcn.md))

### Level 6: shadcn/ui Configuration

Use cascading questions for options >4. See [references/shadcn.md](references/shadcn.md).

**Style (5 options):**
```
Q1: ? Style preference:
    > Classic (Vega)
    > Compact (Nova, Mira)
    > Soft (Maia)
    > Sharp (Lyra)

Q2 (if Compact): ? Compact style:
    > Nova (Reduced padding)
    > Mira (Dense interfaces)
```

**Theme Color (18 options):**
```
Q1: ? Color family:
    > Neutral tones
    > Cool colors
    > Warm colors
    > Greens

Q2 (Neutral): > neutral, stone, zinc, gray
Q2 (Cool): > blue, cyan, indigo, violet (then sky, purple, teal if needed)
Q2 (Warm): > red, orange, amber, rose (then pink, fuchsia, yellow if needed)
Q2 (Greens): > green, emerald, lime, teal
```

**Font (10 options):**
```
Q1: ? Font style:
    > Modern sans-serif
    > Classic sans-serif
    > Friendly/Rounded
    > Monospace

Q2 (Modern): > Inter, DM Sans, Public Sans, Outfit
Q2 (Classic): > Roboto, Noto Sans, Raleway
Q2 (Friendly): > Nunito Sans, Figtree
Q2 (Monospace): > JetBrains Mono (single option, skip Q2)
```

**Components (50+ multi-select):**
```
? Component bundle:
  > All components
  > Essentials (Button, Input, Form, Card, Dialog, Toast)
  > Dashboard kit (Table, Chart, Sidebar, Tabs, Command)
  > Custom selection

(if Custom): Ask by category - Forms, Data Display, Navigation, Overlay
```

### Levels 7-17: Additional Configuration

Continue with cascading pattern where needed. See [references/frameworks.md](references/frameworks.md).

**State Management (React - 8 options):**
```
Q1: ? State approach:
    > Minimal (Zustand/Jotai)
    > Full-featured (Redux/MobX)
    > Server + Client
    > None

Q2 (Minimal): > Zustand, Jotai, Context only
Q2 (Full): > Redux Toolkit, MobX, Recoil
```

**Data Fetching (JS - 9 options):**
```
Q1: ? Data fetching type:
    > Query libraries
    > GraphQL
    > Simple HTTP
    > None

Q2 (Query): > TanStack Query, SWR, RTK Query
Q2 (GraphQL): > Apollo Client, urql
Q2 (HTTP): > tRPC, Axios, Fetch API
```

**Authentication (8 options):**
```
Q1: ? Auth approach:
    > Managed service
    > BaaS auth
    > Self-hosted
    > None / Later

Q2 (Managed): > Clerk, Auth.js
Q2 (BaaS): > Supabase, Firebase, Amplify
Q2 (Self-hosted): > Lucia, Custom JWT
```

**Deployment (Web - 8 options):**
```
Q1: ? Deployment type:
    > Serverless platform
    > Full platform
    > Self-hosted
    > None / Later

Q2 (Serverless): > Vercel, Netlify, Cloudflare
Q2 (Full): > Railway, Fly.io, Amplify
```

**Additional Features (13 multi-select):**
```
? Feature bundle:
  > Common (i18n, Dark mode, Path aliases)
  > DevOps (CI/CD, Docker, Error tracking)
  > Full bundle
  > Custom selection
```

## Execution

After collecting selections:

1. **Generate commands** using reference below
2. **Run framework CLI** to create project
3. **Install dependencies** based on selections
4. **Create directory structure** based on architecture
5. **Generate config files** (tsconfig, eslint, etc.)

## Command Reference

### Package Manager Mapping

| Manager | Create | Execute |
|---------|--------|---------|
| npm | `npm create` | `npx` |
| pnpm | `pnpm create` | `pnpm dlx` |
| yarn | `yarn create` | `yarn dlx` |
| bun | `bun create` | `bunx` |

### Framework Commands

```bash
# TanStack Start (Recommended for React)
{pmx} create-start@latest {name}

# React (Vite)
{pm} create vite@latest {name} -- --template react-ts

# Next.js
{pmx} create-next-app@latest {name}

# Vue (Vite)
{pm} create vite@latest {name} -- --template vue-ts

# Nuxt
{pmx} nuxi@latest init {name}

# Svelte (Vite)
{pm} create vite@latest {name} -- --template svelte-ts

# SvelteKit
{pmx} sv create {name}

# Angular
{pmx} @angular/cli@latest new {name}

# Expo
{pmx} create-expo-app@latest {name}

# React Native CLI
{pmx} @react-native-community/cli@latest init {name}

# Flutter
flutter create {name}

# Tauri
{pm} create tauri-app@latest

# Electron
{pm} create electron-vite@latest
```

### shadcn/ui

```bash
# Create new project with preset (recommended)
{pmx} shadcn@latest create --preset "{preset_url}&template={template}" --template {template}

# Templates: next, vite, remix, gatsby, laravel, astro, tanstack-start, react-router
# Example:
{pmx} shadcn@latest create --preset "https://ui.shadcn.com/init?base=radix&style=vega&baseColor=neutral&theme=blue&iconLibrary=lucide&font=inter&radius=default&menuColor=default&menuAccent=subtle&template=next" --template next

# Init in existing project
{pmx} shadcn@latest init --preset "{preset_url}"

# Add components
{pmx} shadcn@latest add {components}
{pmx} shadcn@latest add --all
```

See [references/shadcn.md](references/shadcn.md) for preset URL construction.

### Common Dependencies

```bash
# State Management
{pm} install zustand
{pm} install @tanstack/react-query
{pm} install jotai
{pm} install @reduxjs/toolkit react-redux

# Forms & Validation
{pm} install react-hook-form zod

# Testing
{pm} install -D vitest @testing-library/react
{pm} init playwright@latest

# Tooling
{pm} install -D @biomejs/biome && {pmx} @biomejs/biome init
```

## Directory Structure

See [references/architecture.md](references/architecture.md) for complete structures.

### Quick Reference

```bash
# Bulletproof / Feature-based
mkdir -p src/components/ui src/components/layouts src/features src/hooks src/lib src/stores src/types src/styles

# Clean Architecture
mkdir -p src/domain/{entities,usecases} src/data/{repositories,datasources} src/presentation/{pages,components,hooks}

# Simple
mkdir -p src/{components,pages,hooks,utils,types}
```

## Post-Setup

1. Run `{pm} run dev` to verify
2. Initialize git if requested: `git init && git add . && git commit -m "Initial commit"`

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.