Back to templates

Template details

Turborepo & Next.js Starter

Official Turborepo starter with two Next.js apps and three shared packages, fully typed in TypeScript.

About this template

Turborepo & Next.js Starter is an official boilerplate from the Turborepo core team for scaffolding a monorepo that pairs the Turborepo build system with two Next.js applications. It ships with a shared React component library, shared ESLint and TypeScript configurations, and preconfigured commands for building, developing, and remote caching across all packages.

What is the Turborepo & Next.js Starter?

It is a minimal monorepo template maintained by the Turborepo core team. Run npx create-turbo@latest to generate a workspace containing a docs app and a web app, both built with Next.js, plus three local packages: @repo/ui, @repo/eslint-config, and @repo/typescript-config. Every app and package is 100% TypeScript, and the repository includes ESLint for linting and Prettier for code formatting.

Key Features

  • Two Next.js apps — docs and web are separate Next.js applications included in the starter, demonstrating how to run multiple front-end sites from one repository.
  • Shared UI component library — @repo/ui is a React component library stubbed for reuse by both web and docs, so UI code is written once and consumed everywhere.
  • Centralized ESLint setup — @repo/eslint-config bundles eslint-config-next and eslint-config-prettier, giving every package consistent linting rules out of the box.
  • Shared TypeScript configs — @repo/typescript-config provides tsconfig.json presets used throughout the monorepo, so type checking behavior is uniform across apps and packages.
  • Preconfigured build and dev commands — turbo build and turbo dev run tasks across all packages, with --filter=docs or --filter=web to target a single app.
  • Remote Caching with Vercel — the starter supports Turborepo Remote Caching; turbo login and turbo link connect the CLI to a Vercel account to share cache artifacts across team machines and CI/CD pipelines.

Who is it for?

This starter is aimed at developers building JavaScript or TypeScript monorepos with Turborepo. Team leads can use it as a baseline for multi-app projects, front-end engineers can extend the two Next.js sites, and open-source maintainers can fork it to publish their own Turborepo-based templates. Because the repo is maintained by the Turborepo core team, it also serves as a reference for the recommended project layout and configuration.

Use cases

  • Teams managing several Next.js sites: start from the two-app layout and add more applications as the monorepo grows.
  • Design system authors: replace the stub @repo/ui with a real component library and share it across the web and docs apps.
  • CI pipeline builders: use the preconfigured turbo build commands and Remote Caching to reduce build times by reusing cache artifacts.

How does it work?

Run npx create-turbo@latest to generate a new workspace. After scaffolding, you can run turbo build to build all apps and packages, turbo dev to start development servers, and --filter=web to scope either command to a single app. To enable Remote Caching, run turbo login with a Vercel account, then turbo link to connect the repository to Vercel Remote Cache, which is free on all plans.

FAQ

Is the Turborepo & Next.js Starter free?

The starter itself is part of the open-source Turborepo project, and the README notes that Vercel Remote Cache is free for all plans. You can create a Vercel account to use Remote Caching without a paid tier.

How do I create a project from this starter?

Run npx create-turbo@latest from the command line. The command scaffolds the monorepo with the docs and web Next.js apps and the three local packages described in the README.

Can I build only one app?

Yes. Use Turbo filters, for example turbo build --filter=docs or turbo dev --filter=web, to run the task for a single package instead of the whole monorepo.

Does the starter include TypeScript?

Every app and package in the starter is 100% TypeScript, and a shared @repo/typescript-config package provides tsconfig.json presets used across the monorepo.

How do I enable Remote Caching?

Run turbo login to authenticate with a Vercel account, then run turbo link to connect the repository. After linking, Turborepo shares build cache artifacts across machines and CI/CD pipelines via Vercel Remote Cache.

screenshot of Turborepo & Next.js Starter on template0.com