Turborepo, Next, and NextUI Starter with yarn
This repository contains a template for creating a turborepo using Next.js with NextUI. A turborepo is a monorepo that uses workspaces to manage multiple projects in a single repository. This makes it easier to share code and dependencies between projects, and it also makes it easier to manage updates to multiple projects at the same time.
This template includes everything you need to get started with a turborepo, including:
- A Next.js project for the front-end
- A turborepo configuration file
- A README file with instructions on how to get started
What's inside?
This Turborepo template uses yarn as a packages manager. It includes the following packages/apps:
Apps and Packages
docs: a Next.js appweb: another Next.js apputils: a stub React component library which can be shared by all applicationsui: a stub Next component library shared by bothwebanddocsapplications, this contains NextUI - a React UI Framework.eslint-config-custom:eslintconfigurations (includeseslint-config-nextandeslint-config-prettier)tailwind-config:tailwindconfigurations used byui,webanddocsapplications/packages.tsconfig:tsconfig.jsons used throughout the monorepo
Setup
To install packages of every workspace
yarn installUtilities
This Turborepo has some additional tools already setup for you:
- TypeScript for static type checking
- ESLint for code linting
- Prettier for code formatting
- Tailwind CSS, a utility-first CSS framework packed with classes that can be composed to build any design.
- NextUI, a UI library for React that helps you build beautiful and accessible user interfaces.
Build
To build all apps and packages, run the following command:
yarn buildDevelop
To develop all typescript apps and packages, run the following command:
yarn devTo add packages:
yarn <workspace> add <package-name>To remove packages:
yarn <workspace> remove <package-name>Remote Caching
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 loginThis 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 linkUseful Links
Learn more about the power of Turborepo: