This is a starter template for Turborepo with Next.js, Shadcn/ui and Storybook already setup.
Note This example uses
pnpm
as package manager.
It is very minimal and includes only the essentials needed to get started. I've created this template to help me get started with my projects faster.
If you wish for a version without Storybook, please check out turborepo-shadcn-ui by dan5py.
This Turborepo includes the following packages/apps:
docs
: a Next.js appweb
: another Next.js appui
: a ui library using shadcn-uieslint-config-custom
:eslint
configurations (includeseslint-config-next
andeslint-config-prettier
)tsconfig
:tsconfig.json
s used throughout the monorepo
Each package/app is 100% TypeScript.
This Turborepo has some additional tools already setup for you:
- TypeScript for static type checking
- ESLint for code linting
- Prettier for code formatting
To get started, go to the root and run the following command:
pnpm install
To build all apps and packages, run the following command:
cd my-turborepo
pnpm build
To develop all apps and packages, run the following command:
cd my-turborepo
pnpm dev
I've also included various scripts to help you develop your apps and packages:
dev:docs
: develop thedocs
appdev:web
: develop theweb
appdev:both
: develop both thedocs
andweb
appsdev:ui
: develop theui
package with Storybookui:add
: add a new component to theui
package using the shadcn-ui CLI.
There's probably a better way to do this, but I haven't figured it out yet. If you know how to do this, please let me know.
Turborepo can use a technique known as Remote Caching to share cache artifacts across machines, enabling you to share build caches with your team and CI/CD pipelines.
By default, Turborepo will cache locally. To enable Remote Caching you will need an account with Vercel. If you don't have an account you can create one, then enter the following commands:
cd my-turborepo
npx turbo login
This will authenticate the Turborepo CLI with your Vercel account.
Next, you can link your Turborepo to your Remote Cache by running the following command from the root of your Turborepo:
npx turbo link
Special thanks to shacn/ui for creating this amazing UI library.
If you have any suggestions or improvements, please feel free to open an issue or a pull request.