{"id":46433592,"url":"https://github.com/taiga-tech/shadcn-starter","last_synced_at":"2026-03-05T19:01:40.873Z","repository":{"id":299190831,"uuid":"998012106","full_name":"taiga-tech/shadcn-starter","owner":"taiga-tech","description":null,"archived":false,"fork":false,"pushed_at":"2025-11-23T09:05:31.000Z","size":2013,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"develop","last_synced_at":"2025-11-23T09:19:02.462Z","etag":null,"topics":["nextjs","shadcn-ui","storybook","turborepo","vercel"],"latest_commit_sha":null,"homepage":"https://shadcn-starter-web.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/taiga-tech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-07T17:19:18.000Z","updated_at":"2025-09-14T16:56:11.000Z","dependencies_parsed_at":"2025-06-15T08:40:48.542Z","dependency_job_id":"1c37a7b4-9b87-4549-8ee6-91e7677ae2cb","html_url":"https://github.com/taiga-tech/shadcn-starter","commit_stats":null,"previous_names":["taiga-tech/shadcn-starter"],"tags_count":1,"template":true,"template_full_name":null,"purl":"pkg:github/taiga-tech/shadcn-starter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taiga-tech%2Fshadcn-starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taiga-tech%2Fshadcn-starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taiga-tech%2Fshadcn-starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taiga-tech%2Fshadcn-starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/taiga-tech","download_url":"https://codeload.github.com/taiga-tech/shadcn-starter/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taiga-tech%2Fshadcn-starter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30144700,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T16:58:46.102Z","status":"ssl_error","status_checked_at":"2026-03-05T16:58:45.706Z","response_time":93,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["nextjs","shadcn-ui","storybook","turborepo","vercel"],"created_at":"2026-03-05T19:01:40.262Z","updated_at":"2026-03-05T19:01:40.844Z","avatar_url":"https://github.com/taiga-tech.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg alt=\"shadcn/ui\" src=\"https://ui.shadcn.com/apple-touch-icon.png\" width=\"120\"\u003e\n\n# shadcn/ui Monorepo Template\n\n[![Next.js](https://img.shields.io/badge/Next.js-15-black?style=for-the-badge\u0026logo=next.js\u0026labelColor=000)](https://nextjs.org/)\n[![React](https://img.shields.io/badge/React-19-61DAFB?style=for-the-badge\u0026logo=react\u0026labelColor=000)](https://reactjs.org/)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.9-3178C6?style=for-the-badge\u0026logo=typescript\u0026labelColor=000)](https://www.typescriptlang.org/)\n[![Tailwind CSS](https://img.shields.io/badge/Tailwind_CSS-4.1-38B2AC?style=for-the-badge\u0026logo=tailwind-css\u0026labelColor=000)](https://tailwindcss.com/)\n[![Turborepo](https://img.shields.io/badge/Turborepo-2.5-EF4444?style=for-the-badge\u0026logo=turborepo\u0026labelColor=000)](https://turbo.build/repo)\n[![pnpm](https://img.shields.io/badge/pnpm-10+-F69220?style=for-the-badge\u0026logo=pnpm\u0026labelColor=000)](https://pnpm.io/)\n\n**English | [日本語](./README-ja.md)**\n\nA modern monorepo template for shadcn/ui component libraries.\u003cbr /\u003e\nFeatures Turborepo, pnpm workspaces, Next.js 15, React 19, and Storybook integrated for professional development.\n\n  \u003cimg src=\"https://user-images.githubusercontent.com/4060187/196936123-f6e1db90-784d-4174-b774-92502b718836.png\" alt=\"Turborepo\" width=\"60\"\u003e\n  \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003cimg src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/nextjs/nextjs-original.svg\" alt=\"Next.js\" width=\"60\"\u003e\n  \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003cimg src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/react/react-original.svg\" alt=\"React\" width=\"60\"\u003e\n  \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003cimg src=\"https://raw.githubusercontent.com/storybookjs/brand/master/icon/icon-storybook-default.svg\" alt=\"Storybook\" width=\"60\"\u003e\n  \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003cimg src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/typescript/typescript-original.svg\" alt=\"TypeScript\" width=\"60\"\u003e\n  \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003cimg src=\"https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/tailwindcss/tailwindcss-original.svg\" alt=\"Tailwind CSS\" width=\"60\"\u003e\n\n### ✨ Feature Highlights\n\n🚀 **Monorepo Architecture** - Fast builds with Turborepo + pnpm workspaces\u003cbr /\u003e\n🎨 **shadcn/ui** - High-quality UI component library\u003cbr /\u003e\n⚡ **Next.js 15** - Latest development environment with React 19 + Turbopack\u003cbr /\u003e\n📚 **Storybook** - Component-driven development\u003cbr /\u003e\n🛡️ **TypeScript** - Type-safe development\u003cbr /\u003e\n🎯 **Full Testing** - Jest + Playwright + Testing Library\n\n\u003c/div\u003e\n\n### 🚀 Quick Start\n\n```bash\n# Use this template\n# Click \"Use this template\" → \"Create a new repository\" on GitHub\n\n# Clone your new repository\ngit clone https://github.com/YOUR_USERNAME/YOUR_REPO_NAME.git\ncd YOUR_REPO_NAME\n\n# Install dependencies\npnpm install\n\n# Start development servers\npnpm dev\n```\n\n**Access:**\n\n- 🌐 Web App: http://localhost:3000\n- 📚 Storybook: http://localhost:6006\n\n## 🚀 Tech Stack\n\n### Core Technologies\n\n- **Turborepo** - Build orchestration \u0026 monorepo management\n- **pnpm** - Fast package manager with workspace support\n- **TypeScript** - Type-safe development environment\n- **Node.js 22+** - Runtime requirement\n\n### Frontend\n\n- **Next.js 15** - React framework with App Router + Turbopack\n- **React 19** - Latest React library\n- **Storybook** - Component development \u0026 documentation\n- **shadcn/ui** - High-quality UI component library\n- **Tailwind CSS** - Utility-first CSS framework\n- **Radix UI** - Accessible primitive components\n- **next-themes** - Theme support\n- **class-variance-authority** - Component variant management\n- **lucide-react** - Icon library\n\n### Development \u0026 Testing Tools\n\n- **Jest** - Unit \u0026 integration testing\n- **Playwright** - E2E testing\n- **Testing Library** - React component testing\n- **ESLint** - Code quality \u0026 style\n- **Prettier** - Code formatting\n- **Husky** - Git pre-commit hooks\n\n## 📁 Project Structure\n\n\u003cdetails\u003e\n\u003csummary\u003e🗂️ \u003cstrong\u003eView Full Project Structure\u003c/strong\u003e\u003c/summary\u003e\n\n```\n📦 shadcn-starter/\n├── 🌐 apps/\n│   ├── 💻 web/                     # Next.js Web Application\n│   │   ├── 📄 src/app/            # App Router pages\n│   │   ├── 🧩 src/components/     # App-specific components\n│   │   └── 🔧 src/lib/           # Utilities\n│   └── 📚 docs/                   # Storybook Documentation\n│       └── 📖 stories/           # Component stories\n├── 📦 packages/\n│   ├── 🎨 ui/                     # Shared UI Components\n│   │   ├── 🧩 src/components/    # shadcn/ui components\n│   │   └── 🔧 src/lib/          # Utilities\n│   ├── 🧪 e2e-web/               # Playwright E2E tests\n│   ├── ⚙️ eslint-config/          # Shared ESLint config\n│   ├── ⚙️ typescript-config/      # Shared TypeScript config\n│   └── ⚙️ jest-config/            # Shared Jest config\n└── 🔨 scripts/                    # Build \u0026 utility scripts\n```\n\n\u003c/details\u003e\n\n### 🏗️ Architecture Overview\n\n| Directory               | Description             | Tech Stack                         |\n| ----------------------- | ----------------------- | ---------------------------------- |\n| 🌐 **apps/web**         | Main Web Application    | Next.js 15, React 19, Tailwind CSS |\n| 📚 **apps/docs**        | Component Documentation | Storybook 9.1                      |\n| 🎨 **packages/ui**      | Shared UI Components    | shadcn/ui, Radix UI, CVA           |\n| 🧪 **packages/e2e-web** | E2E Test Suite          | Playwright                         |\n| ⚙️ **packages/config**  | Shared Config Packages  | ESLint, TypeScript, Jest           |\n\n## 🛠️ Development Commands\n\n### Basic Development \u0026 Build\n\n```bash\n# Start development servers (Web + Storybook)\npnpm dev\n\n# Build all applications\npnpm build\n\n# Preview built Storybook\npnpm preview-storybook\n```\n\n### Testing\n\n```bash\n# Run all tests\npnpm test\n\n# Run tests by type\npnpm test:unit              # Unit tests only\npnpm test:integration       # Integration tests only\npnpm test:e2e              # E2E tests\npnpm test:all              # All test types\n```\n\n### Code Quality\n\n```bash\n# Run ESLint\npnpm lint\n\n# Check file naming conventions\npnpm lint:ls\n\n# TypeScript type checking\npnpm check-types\n\n# Format with Prettier\npnpm format\n```\n\n### Version Management \u0026 Release\n\n```bash\n# Create changeset\npnpm changeset\n\n# Update package versions\npnpm version-packages\n\n# Publish packages\npnpm release\n```\n\n### Utilities\n\n```bash\n# Generate dependency graph\npnpm generate:graph\n\n# Generate index files\npnpm generate:index\n\n# Clean install dependencies\npnpm clean-install\n\n# Update dependencies\npnpm update-deps\n```\n\n## 🎨 shadcn/ui Component Management\n\n### Adding New Components\n\nAdd shadcn/ui components to the web application:\n\n```bash\n# Add individual components\npnpm dlx shadcn@latest add button -c apps/web\npnpm dlx shadcn@latest add card -c apps/web\npnpm dlx shadcn@latest add dialog -c apps/web\n\n# Add multiple components at once\npnpm dlx shadcn@latest add button card dialog -c apps/web\n```\n\nComponents are placed in `packages/ui/src/components/` and shared across the entire project.\n\n### Using Components\n\n```tsx\nimport { Button } from '@workspace/ui/components/button'\nimport { Card, CardContent, CardHeader } from '@workspace/ui/components/card'\n\nexport default function MyPage() {\n    return (\n        \u003cCard\u003e\n            \u003cCardHeader\u003e\n                \u003ch2\u003eTitle\u003c/h2\u003e\n            \u003c/CardHeader\u003e\n            \u003cCardContent\u003e\n                \u003cButton variant=\"default\"\u003eClick me\u003c/Button\u003e\n            \u003c/CardContent\u003e\n        \u003c/Card\u003e\n    )\n}\n```\n\n## ⚙️ Technical Specifications \u0026 Requirements\n\n### System Requirements\n\n- **Node.js**: 22 or higher required\n- **Package Manager**: pnpm@10.0.0+ (npm and yarn not supported)\n- **Git**: Pre-commit hooks enabled\n\n### Development Principles\n\n- **TypeScript Required**: Zero type errors and ESLint errors policy\n- **App Router Adoption**: No API Routes (use Server Actions instead)\n- **Workspace Management**: Share configs and components via `@workspace/*`\n- **Semantic HTML**: ARIA compliance for accessibility\n\n### Code Style\n\n- No semicolons, single quotes\n- 80-character line limit, 2-space indentation\n- Auto-sorted Tailwind classes and imports\n- Required `cn()` function for className concatenation\n\n## 📚 Development Guidelines\n\n### Project Initialization\n\n```bash\n# Initial setup after cloning repository\npnpm install\npnpm prepare  # Enable Husky hooks\n```\n\n### Development Workflow\n\n1. **Feature Development**: Start development server with `pnpm dev`\n2. **Component Development**: Visual validation with Storybook\n3. **Quality Check**: Run the following commands sequentially\n\n```bash\npnpm check-types    # Type checking\npnpm lint          # ESLint\npnpm test          # Test execution\npnpm build         # Build validation\n```\n\n### Testing Strategy\n\n- **Unit Tests**: `__test__/unit/` - Pure functions \u0026 utilities\n- **Integration Tests**: `__test__/integration/` - Component integration\n- **E2E Tests**: `packages/e2e-web/` - Using Playwright\n- **Visual Tests**: Storybook - Component display \u0026 interaction\n\n### Performance Optimization\n\n- Prioritize Server Components, minimize `use client`\n- Code splitting with dynamic imports \u0026 Suspense\n- Appropriate use of memoization (useMemo/useCallback)\n- Use `next/image` for images, `next/link` for links\n\n## 🔗 Dependency Graph\n\nVisualize project dependencies with the following command:\n\n```bash\npnpm generate:graph\n```\n\n![Dependency Graph](./graph.svg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaiga-tech%2Fshadcn-starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftaiga-tech%2Fshadcn-starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaiga-tech%2Fshadcn-starter/lists"}