Overview
The Monorepo Turborepo boilerplate is a powerful tool for managing monorepo projects. It is powered by Turborepo and provides a comprehensive solution for implementing a monorepo using NX. The boilerplate includes various packages and apps, along with additional tools for static type checking, code linting, code formatting, and commit linting.
Features
- Apps and Packages: The boilerplate includes several apps and packages, such as a documentation site powered by Next.js, a website site powered by Next.js, a SPA website site powered by create-react-app, core React components, a react UI theme kit powered by Tailwind and Headlessui, shared React utilities, a shared tsconfig.json, and an ESLint preset.
- Utilities: The turborepo comes with additional tools already set up, including Typescript for static type checking, ESLint for code linting, Prettier for code formatting, and CommitLint for commit linting.
Installation
To use the Monorepo Turborepo boilerplate, follow these steps:
- Run the following command:
<command>
Changing the NPM organization scope:
- Rename folders in
packages/*
to replace “my” with your desired scope. - Search and replace “my” with your desired scope.
- Re-run
yarn install
.
- Rename folders in
Publishing packages:
- NPM: If you want to publish packages to the public NPM registry, it is already set up for you. To publish packages to a private NPM organization scope, remove specific configuration from each
package.json
. - GitHub Package Registry: See documentation for working with the npm registry for detailed instructions.
- NPM: If you want to publish packages to the public NPM registry, it is already set up for you. To publish packages to a private NPM organization scope, remove specific configuration from each
Summary
The Monorepo Turborepo boilerplate is a comprehensive solution for managing monorepo projects. It provides a wide range of apps, packages, and utilities to help streamline development processes. With features such as static type checking, code linting, code formatting, and commit linting, the boilerplate offers a robust development environment. Additionally, it provides flexibility in terms of NPM organization scope, allowing for both public and private package publishing.