---
title: Turborepo Quickstart
description: Create your first monorepo or add Turborepo to an existing project.
---

import { readdirSync, lstatSync, readFileSync } from 'fs';
import path from 'path';
import { QuickStartArea, LearnMoreArea, MonoreposArea } from "../../../components/QuickStart";
import { ExamplesArea } from "../../../components/ExamplesArea";
import { FullTurboCTA } from "../../../components/FullTurboCTA";

export const getStaticProps = ({ params }) => {
  // path to examples directory at the monorepo root.
  const examplesDirectory = path.join(__dirname, '../../../../../examples')
  const examples = [];
  readdirSync(examplesDirectory).forEach(file => {
    if (lstatSync(path.join(examplesDirectory, file)).isDirectory()) {
      try {
        examples.push({
          slug: file,
          ...JSON.parse(readFileSync(path.join(examplesDirectory, file, "meta.json")).toString())
          }
        );
      } catch (err) {
        console.log(`No meta.json found for ${file}, excluding from docs`);
      }
    }
  });
  // throw an error if no examples are found
  if (examples.length === 0) {
    throw new Error(
      `No examples found in ${examplesDirectory}! Make sure you have updated the path if moving this file.`
    )
  }
  return {
    props: {
      ssg: {
        examples
      }
    },
    revalidate: 60 * 60 * 24
  }
}

# Turborepo Quickstart

Turborepo is an intelligent **build system optimized for JavaScript and TypeScript codebases**.

Your codebase's tasks - like `lint`, `build` and `test` - **don't run as fast as they could**. Turborepo uses [caching](/repo/docs/core-concepts/caching) to turbocharge your local setup and speed up your CI.

Turborepo is designed to be **incrementally adopted**, so you can add it to most codebases in a few minutes.

<QuickStartArea />

## Features

Turborepo leverages advanced build system techniques to speed up development, **both on your local machine and your CI/CD**.

<LearnMoreArea />

## Monorepos

Turborepo works out-of-the-box with monorepo tools like `npm`, `pnpm` and `yarn`. If you've ever felt that your monorepo slowed you down, it might be time for Turborepo.

<MonoreposArea />

## Examples

You can also clone a Turborepo starter repository to get a head start on your monorepo. For even more examples and starters, see the [Turborepo examples directory on GitHub](https://github.com/vercel/turbo/tree/main/examples).

<ExamplesArea filter="featured" />

<FullTurboCTA />
