This is the official starter for the Shadcn Extension Turborepo, a monorepo setup for developing and sharing reusable UI components.
Turborepo is a high-performance build system for JavaScript and TypeScript codebases. It is designed for scaling monorepos and also makes workflows in single-package workspaces faster, too. Turborepo optimizes build and development processes by caching, parallel execution, and dependency graph analysis.
This repository is a monorepo, which means it contains multiple projects managed in a single codebase. This approach simplifies dependency management and sharing code between projects.
- pnpm: A fast, disk space-efficient package manager.
- Turborepo: A build system for monorepos.
- TypeScript: A statically typed superset of JavaScript.
- Next.js: A React framework for production.
The repository is structured as follows:
shadcn-extension-turborepo/
├── apps/
│ └── extension/
│ ├── content/
│ │ └── docs/
│ ├── public/
│ │ ├── registry/
│ │ ├── next.svg
│ │ ├── og.png
│ │ └── vercel.svg
│ ├── src/
│ │ ├── __registry__/
│ │ ├── app/
│ │ ├── components/
│ │ ├── config/
│ │ ├── hooks/
│ │ ├── lib/
│ │ ├── registry/
│ │ ├── script/
│ │ ├── types/
│ │ └── env.ts
├── packages/
│ ├── CLI/
│ │ ├── src/
│ │ ├── __tests__/
│ │ ├── commands/
│ │ ├── utils/
│ │ └── index.ts
│ ├── eslint-config/
│ │ ├── library.js
│ │ ├── next.js
│ │ ├── package.json
│ │ ├── react-internal.js
│ │ └── README.md
│ └── typescript-config/
│ ├── base.json
│ ├── nextjs.json
│ ├── package.json
│ └── react-library.json
└── pnpm-workspace.yaml
First, clone the monorepo to your local machine:
git clone https://github.com/BelkacemYerfa/shadcn-extension.git
cd shadcn-extension
Install all dependencies using pnpm
:
pnpm install
To build all apps and packages, run the following command:
pnpm build
This will compile the TypeScript code and prepare the project for development and production.
To start the development server for all apps and packages, run:
pnpm dev
This command will run the development servers and watch for changes, enabling live reload for a smoother development experience.
The @shadx/cli
package is a command-line interface (CLI) for adding components to your project. It helps automate repetitive tasks, such as creating new components or setting up configurations.
You can find detailed instructions for using the CLI in the CLI README.
Contributions are welcome! Please open an issue or submit a pull request with your changes. Make sure to follow the project's code of conduct and guidelines for contributing.
This project is licensed under the MIT License. See the LICENSE file for details.