---
title: "Turborepo & Gatsby Starter"
description: "This is an official starter Turborepo with a Gatsby app, a Next.js app, and a React.js component library shared by both applications."
url: "https://vercel.com/templates/gatsby/turborepo-gatsby-starter"
links:
  repository: "https://github.com/vercel/turborepo/tree/main/examples/with-gatsby"
  demo: "https://turborepo-examples-gatsby-web.vercel.sh"
  deploy: "https://vercel.com/new/clone?demo-title=Turborepo+%26+Gatsby+Starter&demo-description=This+is+an+official+starter+Turborepo+with+a+Gatsby+app%2C+a+Next.js+app%2C+and+a+React.js+component+library+shared+by+both+applications.&demo-url=https%3A%2F%2Fturborepo-examples-gatsby-web.vercel.sh&demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F2CF5oKjthhZFlfVkaZY5cV%2F5f57dfa48dbeb63af600e92c4f4c6f74%2FGatsby.png&project-name=Turborepo+%26+Gatsby+Starter&repository-name=turborepo-gatsby-starter&repository-url=https%3A%2F%2Fgithub.com%2Fvercel%2Fturborepo%2Ftree%2Fmain%2Fexamples%2Fwith-gatsby&from=templates&skippable-integrations=1&root-directory=apps%2Fweb&build-command=turbo+build"
---

# Turborepo & Gatsby Starter

This is an official starter Turborepo with a Gatsby app, a Next.js app, and a React.js component library shared by both applications.

# Turborepo Gatsby.js starter

This is a community-maintained example. If you experience a problem, please submit a pull request with a fix. GitHub Issues will be closed.

## Using this example

Use Node.js 26.11.1 or newer and pnpm 12.11.2. Install the declared package manager and create the workspace:

```sh
npm install --global pnpm@12.11.2
npx create-turbo@2.11.8 -e with-gatsby
cd my-turborepo
pnpm install
```

The workspace explicitly approves the install scripts needed by Gatsby and its native dependencies in `pnpm-workspace.yaml`.

## What's inside?

### Apps and Packages

- `docs`: a [Next.js](https://nextjs.org/) Pages Router app
- `web`: a [Gatsby.js](https://www.gatsbyjs.com/docs) app
- `@repo/ui`: a React component library shared as TypeScript source by both applications
- `@repo/eslint-config`: shared ESLint flat configurations, including the Next.js plugin, Turbo rules, and Prettier compatibility
- `@repo/typescript-config`: shared TypeScript configurations

Both apps use React 19. Gatsby compiles `@repo/ui` with `gatsby-plugin-compile-es6-packages`; Next.js uses `transpilePackages`.

### Utilities

- [TypeScript](https://www.typescriptlang.org/) for static type checking
- [ESLint](https://eslint.org/) for code linting
- [Prettier](https://prettier.io) for code formatting

### Build

From the workspace root:

```sh
pnpm build
```

### Develop

```sh
pnpm dev
```

Open the Gatsby app at [http://localhost:8000](http://localhost:8000) and the Next.js app at [http://localhost:3001](http://localhost:3001).

### Lint and type check

```sh
pnpm lint
pnpm check-types
```

To run all non-persistent checks together:

```sh
pnpm exec turbo run build lint check-types
```

### Preview production builds

After building, run `pnpm --filter web start` for Gatsby at port 9000 or `pnpm --filter docs start` for Next.js at port 3001.

### Remote Caching

> [!TIP]
> Vercel Remote Cache is free for all plans. Get started today at [vercel.com](https://vercel.com/signup?utm_source=remote-cache-sdk&utm_campaign=free_remote_cache).

Turborepo can use [Remote Caching](https://turborepo.dev/docs/core-concepts/remote-caching) to share cache artifacts across machines, enabling your team and CI/CD pipelines to share build caches.

By default, Turborepo caches locally. To enable Remote Caching, create a [Vercel account](https://vercel.com/signup?utm_source=turborepo-examples), then run these commands from the workspace root using the installed CLI:

```sh
pnpm exec turbo login
pnpm exec turbo link
```

## Useful Links

- [Tasks](https://turborepo.dev/docs/crafting-your-repository/running-tasks)
- [Caching](https://turborepo.dev/docs/crafting-your-repository/caching)
- [Remote Caching](https://turborepo.dev/docs/core-concepts/remote-caching)
- [Filtering](https://turborepo.dev/docs/crafting-your-repository/running-tasks#using-filters)
- [Configuration Options](https://turborepo.dev/docs/reference/configuration)
- [CLI Usage](https://turborepo.dev/docs/reference/command-line-reference)

## Related Templates

### [Turborepo & Next.js Starter](https://vercel.com/templates/next.js/turborepo-next-basic)

This is an official starter Turborepo with two Next.js sites and three local packages

### [Turborepo & SvelteKit Starter](https://vercel.com/templates/svelte/turborepo-sveltekit-starter)

This is an official starter Turborepo with two SvelteKit apps and two local packages.

---

## Additional documentation

The [Vercel Knowledge Base](https://vercel.com/kb) contains guides and answers to common questions about Vercel, including deployment, framework configuration, domains, caching, and troubleshooting.
