React + Vite + TypeScript + Zustand + TailwindCSS + shadcn/ui starter template.
| Tech | Version |
|---|---|
| React | ^19.1.1 |
| TypeScript | ~5.8.3 |
| Vite | ^7.1.7 |
| Zustand | ^5.0.8 |
| TailwindCSS | ^3.4.17 |
| shadcn | ^3.3.1 |
| React Router DOM | ^7.9.2 |
Others: class-variance-authority, tailwind-merge, clsx, lucide-react, tailwindcss-animate, Radix Primitives (@radix-ui/react-*) etc.
- Node.js LTS (recommended)
- npm (or pnpm/yarn — replace commands as needed)
- Click Use this template on GitHub → create a new repository
- Clone locally:
git clone https://github.com/<your-id>/<your-repo>.git
cd <your-repo>git clone https://github.com/minijae011030/react-template.git
cd react-templatenpm inpm run devnpm run buildnpm run previewnpm run lint # ESLint checks
npm run format # Prettier + Tailwind class auto-sortingsrc/
├─ components/
│ └─ ui/ # shadcn components (button, card, dialog, etc.)
├─ pages/ # Route pages (Home, About, Playground)
├─ store/ # Zustand stores (e.g., theme, user)
├─ router.tsx # react-router-dom router
├─ main.tsx # Entry point
└─ index.css # Tailwind entry
- React Router: Basic routing setup
- ESLint + Prettier: Includes prettier-plugin-tailwindcss for class sorting
- Vite: Fast dev server & bundler
- Zustand – Lightweight global state management with persistence (e.g. theme toggle)
- TailwindCSS: Extended colors/border radius, tailwindcss-animate plugin
- shadcn/ui: Radix-based, accessible UI components
- To add shadcn components:
npx shadcn@latest add button card dialog input label textarea tabs separator sheet dropdown-menu- To add routes: create a component in src/pages → register it in router.tsx