Monorepo structure based on Turbo and pnpm, divided into apps and packages
next-starter-tpl — Next.js Starter Template
By wayofdev
A Next.js monorepo starter template maintained by Wayofdev, managed with Turbo and pnpm. It includes three applications—web, docs, and storybook—along with several shared packages, and comes preconfigured with tooling for type checking, code standards, testing, SEO, and monitoring.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 2
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Includes three built-in applications—web, docs, and storybook—plus shared packages for i18n, Facebook Pixel, Google Tag Manager, and UI
Preconfigured with TypeScript strict mode, ESLint (including the Airbnb preset), Prettier, Tailwind CSS, and PostCSS
Integrates Jest unit testing and Cypress end-to-end testing configurations
Includes configurations for Next SEO, next-sitemap, Sentry, and Bundle Analyzer
Uses Husky and lint-staged to manage Git hooks and staged file checks
Template Details
This is a monorepo starter template targeting Next.js applications, maintained by Wayofdev, built with Turbo and using pnpm as the package manager. The repository is divided into apps and packages: apps contains web (a Next.js application with i18n, SSR, API, Jest, and Cypress), docs (a Nextra documentation site), and storybook (a React component explorer); packages contains common-i18n (multilingual copy), facebook-pixel, google-tag-manager, and ui (React placeholder components). The template is designed to demonstrate how to create and consume shared packages, language packs, assets, and API types, and it comes preconfigured with tooling including tsconfig, ESLint, Jest, Cypress, Tailwind, changelog, version management, Codecov, CodeClimate, and Sentry.
Using this template requires specific environment requirements: macOS Monterey+ or Linux, Docker 20.10 or newer, a running dnsmasq service on the system, and cloning, configuring, and running the docker-shared-services repository to provide system-level DNS, routing, and TLS support through Traefik. Installation and usage steps should follow the getting-started guide in its official documentation.
The repository is based on belgattitude's nextjs-monorepo-example template and is MIT licensed, allowing free use, modification, commercial use, and distribution of the code, provided the copyright notice and license notice are retained when distributing; third-party assets such as demo images, fonts, and icons require separate license verification, and external services such as domains, hosting, and databases may incur additional charges.
Is it right for your project?
Use Cases
- Team projects that need to organize multiple Next.js applications and shared packages as a monorepo
- Projects that want a Next.js starting point with linting, testing, SEO, and monitoring toolchains already configured
- Projects that need to maintain a user-facing web application, a documentation site, and a component Storybook simultaneously
- Projects that require multilingual copy, Facebook Pixel, or Google Tag Manager integration capabilities
Suitable For
- Development teams familiar with pnpm, Turbo, and monorepo workflows
- Teams that need to unify code standards and CI configuration early in the project
- Projects planning to use the frontend together with the Laravel backend template (laravel-starter-tpl)
- Developers able to configure Docker, dnsmasq, and docker-shared-services
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
Requires macOS Monterey+ or a Linux environment, and Docker 20.10 or newer installed
- 2
A dnsmasq service must be running on the system; refer to ansible-role-dnsmasq for installation and configuration
- 3
The docker-shared-services repository must be cloned, configured, and run to provide system-level DNS, routing, and TLS support
- 4
Follow the getting-started guide in the official documentation for installation and usage steps
- 5
Before use, verify the licenses and costs of third-party assets and external services
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version in the public repository under the MIT license; the free scope applies to that version's code and does not mean external services or third-party assets are free.
Must comply with when using
- Free use, modification, commercial use, and distribution of this version's code are permitted.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
- The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- Using this template requires macOS Monterey or newer, or Linux; other systems such as Windows are not supported.
- Docker 20.10 or newer must be installed; otherwise it cannot be run as documented.
- The dnsmasq service must be installed and running on the system for local DNS resolution.
- The docker-shared-services repository must be cloned, configured, and run to provide system-level DNS, routing, and TLS support through Traefik.
- Before installation and use, the docker-shared-services repository must be configured and running; otherwise system-level TLS and DNS support will not be available.
- Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses; the code's MIT license alone cannot be used to judge them.
- External services such as domains, hosting, databases, payments, or AI may incur additional charges.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
**macOS** Monterey+ or **Linux**
Original README
**Docker** 20.10 or newer
Original README
Installed **dnsmasq** service, running in the system.
Original README
**Cloned, configured and running** [docker-shared-services](https://github.com/wayofdev/docker-shared-services) to support system-wide DNS, routing, and TLS support via Traefik.
Original README
https://github.com/wayofdev/next-starter-tpl/blob/master/LICENSE.mdhttps://github.com/wayofdev/next-starter-tpl/blob/master/README.mdYou should configure, set up, and run the [docker-shared-services](https://github.com/wayofdev/docker-shared-services) repository to ensure system-wide TLS and DNS support.
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-02. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- More documented · 87 / 100
- Technologies
- Next.js · React
- Website type
- Starter
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2026-10-01
- Screenshot last checked
- 2026-10-02
A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.
The catalog identifies Next.js as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Automatically checked against source and license rules; no manual editorial review.
Inspect the recorded source material
SHA-256: 8a493ac27f10d539437246c4e765de0b2a8e3ff044e43efdd10d8aa8bfae6a75
2026-10-02T16:44:35.810Z
Source file / repository<br>
<div align="center">
<img width="456" src="https://raw.githubusercontent.com/wayofdev/next-starter-tpl/master/assets/logo.gh-light-mode-only.png#gh-light-mode-only">
<img width="456" src="https://raw.githubusercontent.com/wayofdev/next-starter-tpl/master/assets/logo.gh-dark-mode-only.png#gh-dark-mode-only">
</div>
<br>
<br>
<div align="center">
<a href="https://next-starter-tpl-docs.wayof.dev"><b>View Documentation / Demo</b></a>
</div>
<br>
<div align="center">
<a href="https://actions-badge.atrox.dev/wayofdev/next-starter-tpl/goto"><img alt="Build Status" src="https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fwayofdev%2Fnext-starter-tpl%2Fbadge&style=flat-square"/></a>
<a href="https://github.com/wayofdev/next-starter-tpl/tags"><img alt="GitHub package.json version" src="https://img.shields.io/github/package-json/v/wayofdev/next-starter-tpl?style=flat-square"></a>
<a href="LICENSE.md"><img src="https://img.shields.io/github/license/wayofdev/next-starter-tpl.svg?style=flat-square&color=blue" alt="Software License"/></a>
<a href="#"><img alt="Commits since latest release" src="https://img.shields.io/github/commits-since/wayofdev/next-starter-tpl/latest?style=flat-square"></a>
<a href="https://codeclimate.com/github/wayofdev/next-starter-tpl"><img alt="Code Climate maintainability" src="https://img.shields.io/codeclimate/maintainability/wayofdev/next-starter-tpl?style=flat-square"></a>
<a href="https://codeclimate.com/github/wayofdev/next-starter-tpl/issues"><img alt="Code Climate issues" src="https://img.shields.io/codeclimate/issues/wayofdev/next-starter-tpl?style=flat-square"></a>
<a href="https://codeclimate.com/github/wayofdev/next-starter-tpl"><img alt="Code Climate technical debt" src="https://img.shields.io/codeclimate/tech-debt/wayofdev/next-starter-tpl?style=flat-square"></a>
<a href="https://codeclimate.com/github/wayofdev/next-starter-tpl">
<img alt="Codecov" src="https://img.shields.io/codecov/c/github/wayofdev/next-starter-tpl?flag=web&style=flat-square"></a>
</div>
<br>
# NextJS Starter Template
## 📄 About
This repository contains a [monorepo](https://turbo.build/repo/docs/handbook/what-is-a-monorepo) boilerplate written in [Next.js](https://nextjs.org/), managed by the [pnpm](https://pnpm.io) package manager.
You can use it with the backend template, written in Laravel — [laravel-starter-tpl](https://github.com/wayofdev/laravel-starter-tpl).
### → Purpose
- Establish a clear structure and present a lifecycle perspective (developer experience, continuous integration/continuous deployment, and deployments);
- Demonstrate how to create and consume shared packages, locales, assets, and API types;
- Provide a fully configured repository with integrated tools and configs, such as tsconfig, eslint, jest, cypress, tailwind, changelogs, versioning, codecov, codeclimate, sentry, and others;
- Clarify advantages of using a monorepo, such as team cohesion, consistency, duplication, refactorings, and atomic commits.
### → Utilities and Features
This repository has some additional tools already setup for you:
- Supporting [NextJS 13.1.1+](https://nextjs.org/blog/next-13)
- [TypeScript](https://www.typescriptlang.org/) support for static type checking
- Strict Mode for TypeScript and React 18
- [ESLint](https://eslint.org/) for code linting and configured presets: NextJS Recommended, NextJS Core Web Vitals and [Airbnb Style Guide](https://www.npmjs.com/package/eslint-config-airbnb)
- Code formatting with [Prettier](https://prettier.io/)
- Integrated with [Tailwind CSS](https://tailwindcss.com/)
- [PostCSS](https://postcss.org/) for processing Tailwind CSS and [CSSNANO](https://cssnano.co/) for CSS optimization on production systems
- Support for [HeroIcons](https://heroicons.com) out of the box
- [Husky](https://typicode.github.io/husky/#/) for modern native git hooks
- [Lint-staged](https://github.com/okonet/lint-staged) for running linters on Git staged files
- [GitHub Actions](https://github.com/features/actions) support out of the box
- SEO metadata, JSON-LD and Open Graph tags with [Next SEO](https://github.com/garmeeh/next-seo)
- Sitemap support using [next-sitemap](https://www.npmjs.com/package/next-sitemap)
- [Bundler Analyzer](https://www.npmjs.com/package/@next/bundle-analyzer) — Visualize size of webpack output files with an interactive zoomable treemap
- Optimized [Lighthouse](https://web.dev/performance-scoring/) performance score
- End-2-end testing with [cypress](https://www.cypress.io/) and [JestJS](https://jestjs.io/) support for writing unit tests
- Package auto-update in all workspace projects using [npm-check-updates](https://www.npmjs.com/package/npm-check-updates)
- Keep package.json sorted using [sort-package-json](https://www.npmjs.com/package/sort-package-json)
- Client and server side [error reporting](https://sentry.io/) supported by [@sentry/nextjs](https://www.npmjs.com/package/@sentry/nextjs)
<br>
🙏 If you find this repository useful, please consider giving it a ⭐️. Thank you!
<br>
## 🤔 What's inside?
[](https://gitpod.io/#https://github.com/wayofdev/next-starter-tpl)
This turborepo uses [pnpm](https://pnpm.io) as a package manager. It includes the following packages/apps:
### → Structure
```bash
.
├── apps
│ ├── web # Next.js app - i18n, SSR, API, Jest, Cypress
│ └── docs # Nextra app
└── packages
├── common-i18n # Locales...
├── facebook-pixel # Facebook Pixel tracking functionality
├── google-tag-manager # Google Tag Manager functionality
└── ui # React stub components
```
### → Apps
| Application | URL | Description |
| ----------- | --------------------------------------------------------- | ------------------------------------------------------------ |
| `docs` | **[Demo](https://next-starter-tpl-docs.vercel.app/)** | [Nextra](https://nextra.site/) documentation template generated from [Nextra: Docs Starter Kit](https://vercel.com/templates/next.js/documentation-starter-kit) |
| `web` | **[Demo](https://next-starter-tpl-web.vercel.app/)** | [Next.js](https://nextjs.org/) app with TailwindCSS, Facebook Pixel and Google Tag Manager tracking, and Sentry support |
| `storybook` | **[Demo](https://next-starter-tpl-storybook.vercel.app)** | [Storybook](https://storybook.js.org) — UI component explorer for React components |
> **Note:** Apps should not depend on apps, they can depend on packages
### → Packages
| Package | Docs | Description |
| -------------------- | ------------------------------------------------------------ | ------------------------------------- |
| `common-i18n` | [README.md](https://github.com/wayofdev/next-starter-tpl/blob/master/packages/common-i18n/README.md) | Locales for multi-language support |
| `facebook-pixel` | [README.md](https://github.com/wayofdev/next-starter-tpl/blob/master/packages/facebook-pixel/README.md) | Facebook Pixel tracking functionality |
| `google-tag-manager` | [README.md](https://github.com/wayofdev/next-starter-tpl/blob/master/packages/google-tag-manager/README.md) | Google Tag Manager functionality |
| `ui` | [README.md](https://github.com/wayofdev/next-starter-tpl/blob/master/packages/ui/README.md) | Shared react stub components |
> **Note:** Apps can depend on packages, packages can depend on each others
<br>
## 🚩 Requirements
To use this repository, you need to meet the following requirements:
- **macOS** Monterey+ or **Linux**
- **Docker** 20.10 or newer
- [How To Install and Use Docker on Ubuntu 22.04](https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-22-04)
- Installed **dnsmasq** service, running in the system. You can use [ansible-role-dnsmasq](https://github.com/wayofdev/ansible-role-dnsmasq) to install and configure this service.
- **Cloned, configured and running** [docker-shared-services](https://github.com/wayofdev/docker-shared-services) to support system-wide DNS, routing, and TLS support via Traefik.
<br>
## 💿 Installation and Usage
> Warning: You should configure, set up, and run the [docker-shared-services](https://github.com/wayofdev/docker-shared-services) repository to ensure system-wide TLS and DNS support.
**[Follow getting-started guide in documentation](https://next-starter-tpl-docs.wayof.dev/guide/getting-started)** 🔗
<br>
## 🤝 License
[](./LICENSE)
[](https://app.fossa.com/projects/git%2Bgithub.com%2Fwayofdev%2Fnext-starter-tpl?ref=badge_large)
<br>
## 🧱 Credits and Useful Resources
This repository is based on the [nextjs-monorepo-example](https://github.com/belgattitude/nextjs-monorepo-example) template from [belgattitude](https://github.com/belgattitude).
- Check his benchmark on package managers — [belgattitude/compare-package-managers](https://github.com/belgattitude/compare-package-managers)
Learn more about the power of **Turborepo**:
- [What is Monorepo?](https://turbo.build/repo/docs/handbook/what-is-a-monorepo)
- [Pipelines](https://turbo.build/repo/docs/core-concepts/monorepos/running-tasks)
- [Caching](https://turbo.build/repo/docs/core-concepts/caching)
- [Remote Caching](https://turbo.build/repo/docs/core-concepts/remote-caching)
- [Filtering](https://turbo.build/repo/docs/core-concepts/monorepos/filtering)
- [Configuration Options](https://turbo.build/repo/docs/reference/configuration)
- [CLI Usage](https://turbo.build/repo/docs/reference/command-line-reference)
Here are some other monorepo templates you may find useful:
- [waldronmatt/pnpm-turborepo-auto-boilerplate](https://github.com/waldronmatt/pnpm-turborepo-auto-boilerplate) — a monorepo boilerplate using pnpm, turborepo, and auto.
- [mkosir/turborepo-boilerplate](https://github.com/mkosir/turborepo-boilerplate) — frontend turborepo boilerplate
- [vercel/turbo](https://github.com/vercel/turbo/tree/main/examples) — turborepo examples from Vercel
- [nextauthjs/next-auth](https://github.com/nextauthjs/next-auth) — Authentication package, built as monorepo; real life example
Other projects:
- [Lots of the latest examples](https://github.com/vercel/next.js/tree/canary/examples) for NextJS from Vercel
<br>
## 🙆🏼♂️ Author Information
This repository was created in **2022** by [lotyp / wayofdev](https://github.com/wayofdev).
<br>
## 🙌 Want to Contribute?
Thank you for considering contributing to the wayofdev community!
We are open to all kinds of contributions. If you want to:
- 🤔 Suggest a feature
- 🐛 Report an issue
- 📖 Improve documentation
- 👨💻 Contribute to the code
You are more than welcome. Before contributing, kindly check our [guidelines](https://next-starter-tpl-docs.wayof.dev/contribution).
<br>
## 🫡 Contributors
<img align="left" src="https://img.shields.io/github/contributors-anon/wayofdev/next-starter-tpl?style=for-the-badge" alt="Contributors"/>
<a href="https://github.com/wayofdev/next-starter-tpl/graphs/contributors">
<img src="https://opencollective.com/wod/contributors.svg?width=890&button=false" alt="Contributors">
</a>
<br>
## 🤑 Sponsors
<table>
<tbody>
<tr>
<td align="center" valign="top">
<a href="https://prisma.io" target="_blank">
<img width="128px" src="https://avatars.githubusercontent.com/u/110109081?s=200&v=4" alt="Reproto Logo" /></a><br />
<div>Reproto</div><br />
<sub>🎖️ Financial Support</sub>
</td>
<td align="center" valign="top">
<a href="https://varsitybase.com" target="_blank">
<img width="128px" src="https://raw.githubusercontent.com/wayofdev/next-starter-tpl/master/assets/vb-logo.png" alt="VarsityBase Logo" /></a><br />
<div>VarsityBase</div><br />
<sub>🎖️ Financial Support</sub>
</td>
<td align="center" valign="top">
<a href="https://vercel.com" target="_blank">
<img width="128px" src="https://avatars.githubusercontent.com/u/14985020?s=200&v=4" alt="Vercel Logo" /></a><br />
<div>Vercel</div><br />
<sub>☁️ Infrastructure Support</sub>
</td>
<td align="center" valign="top">
<a href="https://sentry.io" target="_blank">
<img width="128px" src="https://avatars.githubusercontent.com/u/1396951?s=200&v=4" alt="Sentry Logo" /></a><br />
<div>Sentry</div><br />
<sub>☁️ Infrastructure Support</sub>
</td>
<td align="center" valign="top">
<a href="https://zenhub.com" target="_blank">
<img width="128px" src="https://avatars.githubusercontent.com/ml/9?s=200&v=4" alt="ZenHub Logo" /></a><br />
<div>ZenHub</div><br />
<sub>☁️ Infrastructure Support</sub>
</td>
</tr><tr></tr>
</tbody>
</table>
Explore similar templates
Compare previews and descriptions within the same stack and category.

Next.js SaaS Starter
The official Next.js SaaS starter template, integrating email/password authentication, Stripe Checkout subscriptions, a dashboard with user/team CRUD, basic Owner/Member RBAC, and activity logging.
Next.js · SaaS

Next.js Commerce
Vercel's officially maintained Next.js App Router ecommerce starter with deep Shopify integration, offering a complete product catalog, cart, and checkout flow. Core logic is modular for swapping backends, and community provider versions exist for BigCommerce, Medusa, and Saleor.
Next.js · E-commerce

Next-js-Boilerplate
A developer-first Next.js 16 starter with Tailwind CSS 4 and TypeScript, supporting both App Router and Page Router.
Next.js · Starter

tailwind-nextjs-starter-blog
A Next.js and Tailwind CSS blog starter template using Contentlayer for Markdown/MDX, with built-in SEO, code highlighting, and tags. It targets personal technical blogs and migration from Jekyll/Hugo to React, and supports one-click Vercel deployment.
Next.js · Blog

next-forge
next-forge is a Turborepo-based Next.js template maintained by Vercel, positioned as a starting point for SaaS products.
Next.js · Starter

SaaS-Boilerplate
SaaS-Boilerplate is an open-source SaaS starter template built with Next.js App Router, React 19, TypeScript, Tailwind CSS, and Shadcn UI.
Next.js · SaaS
