基于 Turbo 与 pnpm 的 monorepo 结构,划分 apps 与 packages
next-starter-tpl — Next.js 启动器模板
作者 wayofdev
Wayofdev 维护的 Next.js 单体仓库启动模板,使用 Turbo 与 pnpm 管理,包含 web、docs、storybook 三个应用和若干共享包,并预置了类型检查、代码规范、测试、SEO、监控等工具配置。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 2
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
内置 web、docs、storybook 三个应用,以及 i18n、Facebook Pixel、Google Tag Manager、UI 等共享包
预置 TypeScript 严格模式、ESLint(含 Airbnb 预设)、Prettier、Tailwind CSS 与 PostCSS
集成 Jest 单元测试与 Cypress 端到端测试配置
包含 Next SEO、next-sitemap、Sentry、Bundle Analyzer 等配置
使用 Husky 与 lint-staged 管理 Git 钩子和暂存文件检查
模板详细介绍
这是一个以 Next.js 应用为目标的 monorepo 启动模板,由 Wayofdev 维护,采用 Turbo 构建、pnpm 作为包管理器。仓库按 apps 与 packages 划分:apps 下包含 web(Next.js 应用,带 i18n、SSR、API、Jest、Cypress)、docs(Nextra 文档站)以及 storybook(React 组件浏览器);packages 下包含 common-i18n(多语言文案)、facebook-pixel、google-tag-manager 和 ui(React 占位组件)。模板的设计目的包括展示共享包、语言包、资源与 API 类型的创建和消费方式,并预置 tsconfig、ESLint、Jest、Cypress、Tailwind、changelog、版本管理、Codecov、CodeClimate、Sentry 等工具配置。
使用该模板需要满足特定环境要求:macOS Monterey+ 或 Linux、Docker 20.10 或更新版本、系统中运行 dnsmasq 服务,并且需要克隆、配置并运行 docker-shared-services 仓库,以通过 Traefik 提供系统级 DNS、路由与 TLS 支持。安装与使用步骤需参考其官方文档的 getting-started 指南。
该仓库基于 belgattitude 的 nextjs-monorepo-example 模板,采用 MIT 许可,允许免费使用、修改、商用和分发代码,但分发时需保留版权声明与许可声明;演示图片、字体、图标等第三方素材需单独核对许可,域名、托管、数据库等外部服务可能另外收费。
适合你的项目吗?
适用场景
- 需要以 monorepo 方式组织多个 Next.js 应用与共享包的团队项目
- 希望直接获得已配置好 lint、测试、SEO、监控等工具链的 Next.js 项目起点
- 需要同时维护面向用户的 Web 应用、文档站和组件 Storybook 的项目
- 需要多语言文案、Facebook Pixel 或 Google Tag Manager 集成能力的项目
适合人群
- 熟悉 pnpm、Turbo 和 monorepo 工作流的开发团队
- 需要在项目初期就统一代码规范与 CI 配置的团队
- 计划将前端与 Laravel 后端模板(laravel-starter-tpl)配合使用的项目
- 能够配置 Docker、dnsmasq 与 docker-shared-services 的开发者
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
需要 macOS Monterey+ 或 Linux 环境,并安装 Docker 20.10 或更新版本
- 2
系统中需运行 dnsmasq 服务,可参考 ansible-role-dnsmasq 进行安装配置
- 3
需克隆、配置并运行 docker-shared-services 仓库,以提供系统级 DNS、路由与 TLS 支持
- 4
安装与使用步骤请遵循官方文档中的 getting-started 指南
- 5
使用前建议核对第三方素材与外部服务的许可和费用
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发该版本代码。
- 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- 使用该模板要求操作系统为 macOS Monterey 或更新版本,或 Linux;不支持 Windows 等其他系统。
- 需要安装 Docker 20.10 或更新版本,否则无法按文档方式运行。
- 系统中必须安装并运行 dnsmasq 服务,用于本地 DNS 解析。
- 必须克隆、配置并运行 docker-shared-services 仓库,以通过 Traefik 提供系统级 DNS、路由与 TLS 支持。
- 安装使用前需先配置并运行 docker-shared-services 仓库,否则无法获得系统级 TLS 与 DNS 支持。
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
查看原文依据
Permission is hereby granted, free of charge
许可证原文
**macOS** Monterey+ or **Linux**
README 原文
**Docker** 20.10 or newer
README 原文
Installed **dnsmasq** service, running in the system.
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.
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.
README 原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-10-02。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- GitHub
- 资料与维护参考分
- 资料较完整 · 87 / 100
- 技术栈
- Next.js · React
- 网站类型
- 启动器
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2026-10-01
- 截图检查日期
- 2026-10-02
已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。
目录记录的主要技术栈是 Next.js。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
已完成服务器许可规则与 AI 来源核对;未经过人工编辑审核。
查看当时使用的来源资料
SHA-256: 8a493ac27f10d539437246c4e765de0b2a8e3ff044e43efdd10d8aa8bfae6a75
2026-10-02T16:44:35.810Z
来源文件 / 仓库<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>
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

ai-website-cloner-template
Clone any website with one command using AI coding agents
Next.js · 启动器

Next.js SaaS Starter
Next.js SaaS Starter 是 Next.js 官方维护的 SaaS 起点模板,定位介于学习资源和可直接部署的脚手架之间。
Next.js · SaaS

Next.js Commerce
Next.js Commerce 是 Vercel 团队维护的电商启动模板,基于 Next.js App Router 构建,采用服务端渲染、React Server Components、Server Actions …
Next.js · 电商

Next-js-Boilerplate
Next-js-Boilerplate 是一个面向 Next.js 16、Tailwind CSS 4 和 TypeScript 的启动器,核心定位是开发者体验优先。
Next.js · 启动器

tailwind-nextjs-starter-blog
tailwind-nextjs-starter-blog 是一个面向个人技术博客的 Next.js 与 Tailwind CSS 启动模板,其 v2 版本基于 App Router 与 React Server Comp…
Next.js · 博客

next-forge
Production-grade Turborepo template for Next.js apps.
Next.js · 启动器
