Next.jsReact企业官网启动器

monorepo-template — Next.js 企业官网模板

作者 dknalp

面向 Go + Next.js 的 monorepo 起步模板,包含 web 与 admin 两个前端应用、api/auth/storage 三个 Go 服务、共享 Go 与 UI 包,以及 Docker Compose 与 GitHub Actions CI 配置。

看看你的网站会是什么样

浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。

2 个预览视图
桌面端首页1 / 2
桌面端截图首屏预览

由服务器浏览器实际访问页面后截取。

全部页面与视图 2

截图用于了解视觉与布局,交互效果请以实际项目为准。

采集于 2026-10-14查看来源

值得关注的模板亮点

从已有项目资料中,快速了解它的特点。

01

包含 apps/web 与 apps/admin 两个 Next.js 应用,分别映射到 3000 与 3001 端口

02

包含 services/api、services/auth、services/storage 三个 Go 服务,分别映射到 8080、8081、8082 端口

03

packages/go-api-lib 提供共享 Go 中间件、响应辅助与错误处理,packages/ui 提供共享 React 组件与 Tailwind 预设

04

使用 Turborepo + pnpm workspaces 管理 JS 侧,使用 go.work 管理 Go 侧

05

infra 目录提供 docker-compose.yml 与每个服务对应的 Dockerfile

06

README 列出五条项目规则:main.go 仅做引导、数据库按服务隔离、共享 Go 代码只放 go-api-lib、共享 UI 代码只放 ui、internal 为私有

模板详细介绍

该模板是一个 Go + Next.js + Tailwind CSS 的 monorepo 起步项目,README 建议为每个新项目克隆使用,并先阅读 CONTRIBUTING.md。仓库结构分为 apps(web 运行于 localhost:3000、admin 运行于 localhost:3001)、services(api 8080、auth 8081、storage 8082)、packages(go-api-lib 提供 Go 中间件、响应辅助与错误处理;ui 提供共享 React 组件与 Tailwind 预设)、infra(docker-compose.yml 与每个服务一个 Dockerfile)以及 .github/workflows/ci.yml。JS 侧使用 Turborepo 与 pnpm workspaces,Go 侧使用 go.work 原生工作区,数据库为 PostgreSQL 且每个服务一个数据库。README 列出了本地开发命令(pnpm install、pnpm dev、go run ./cmd/api、docker compose up)、新项目首次配置步骤(修改 go.mod 模块名、package.json 包名、复制 .env.example 为 .env、执行 go work sync),以及新增服务与新增前端应用的操作步骤。README 未说明各服务的具体业务功能、数据库表结构、环境变量清单、部署到生产环境的方式,也未说明测试覆盖情况。

Next.js企业官网启动器

适合你的项目吗?

适用场景

  • 需要同时维护多个 Next.js 前端与多个 Go 后端服务的新项目起步
  • 希望用 go.work 与 pnpm workspaces 在同一仓库中分别管理 Go 与 JS 依赖
  • 需要为每个服务独立配置 PostgreSQL 数据库并避免跨服务共享 schema
  • 希望通过 Docker Compose 在本地一次性启动全部前端与后端服务
  • 需要基于 GitHub Actions 的 CI 配置作为持续集成起点

适合人群

  • 使用 Go 与 Next.js 构建多服务应用的开发团队
  • 需要按服务拆分数据库并共享 Go 与 UI 代码的 monorepo 项目
  • 熟悉 pnpm、Turborepo、Docker Compose 与 Go workspaces 的开发者
  • 希望以模板方式统一新项目结构与协作规范的团队

上手与定制指南

结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。

  1. 1

    前置要求:Go 1.22+、Node.js 20+、pnpm 9+、Docker 与 Docker Compose

  2. 2

    克隆后执行 pnpm install 安装 JS 依赖,使用 pnpm dev 启动前端热重载,进入 services/api 执行 go run ./cmd/api 运行 Go 服务,或在 infra 目录执行 docker compose up 启动全部服务

  3. 3

    新项目首次配置需修改所有 go.mod 中的模块名(github.com/agency/* 改为自己的组织与项目路径)、修改 package.json 中的包名(@agency/* 改为自己的作用域)、复制 .env.example 为 .env 并填写值,然后执行 go work sync

  4. 4

    新增服务需创建 services/<name>/cmd/<name> 与 internal/{handler,service,repository} 目录,复制 go.mod 并更新模块名,在 go.work 中添加入口,在 infra/docker-compose.yml 与 infra/dockerfiles 中补充对应配置

  5. 5

    新增前端应用需在 apps 目录执行 pnpm create next-app 并指定 TypeScript、Tailwind、app 与 no-src-dir,添加 @agency/ui 的 workspace 依赖,并将 tailwind.config.ts 改为扩展 packages/ui/tailwind-preset

查看仓库使用说明

授权与来源资料

使用条件与限制

免费使用 · 保留许可声明

本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。

使用时需要遵守

  • 允许免费使用、修改、商用和分发该版本代码。
  • 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
  • 代码按现状提供;担保与责任限制以原许可证及适用法律为准。

额外费用与待核对事项

  • 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
  • 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
查看原文依据

DeepSeek 根据仓库许可证和 README 整理 ·2026-10-14。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。

项目核对记录与介绍依据

模板资料

来源平台
GitHub
资料与维护参考分
资料较完整 · 85 / 100
技术栈
Next.js · React
网站类型
企业官网 · 启动器
这个分数如何计算

本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。

这个项目需要核对什么

记录的仓库更新时间
2026-09-09
截图检查日期
2026-10-14

已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。

目录记录的主要技术栈是 Next.js。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。

查看具体选型方法 →

介绍的制作与核对状态

介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。

审核声明: codex-user-requested-batch-review-20261015 · 2026-10-15

查看当时使用的来源资料

SHA-256: 42d9ef67d7df9d4f14bf98985d1f7d7e8c6283bb429ac307751e92ea7620c4a1

2026-10-14T00:24:53.328Z

来源文件 / 仓库
# Agency Monorepo Template

> Production-ready monorepo starter for Go + Next.js + Tailwind CSS.
> Clone this for every new project. Read `CONTRIBUTING.md` before writing any code.

[![CI](https://github.com/dknalp/monorepo-template/actions/workflows/ci.yml/badge.svg)](https://github.com/dknalp/monorepo-template/actions/workflows/ci.yml)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE)

---

## Stack

| Layer | Technology |
|---|---|
| Frontend | Next.js 15, React 19, Tailwind CSS 4 |
| Backend | Go 1.22, stdlib `net/http` |
| Monorepo (JS) | Turborepo + pnpm workspaces |
| Monorepo (Go) | `go.work` (native Go workspaces) |
| Database | PostgreSQL — **one DB per service** |
| Containers | Docker + Docker Compose |
| CI | GitHub Actions |

---

## Structure

```
.
├── apps/
│   ├── web/               # Main Next.js app          → localhost:3000
│   └── admin/             # Admin Next.js app          → localhost:3001
│
├── services/
│   ├── api/               # API gateway               → localhost:8080
│   ├── auth/              # Auth service              → localhost:8081
│   └── storage/           # Storage service           → localhost:8082
│
├── packages/
│   ├── go-api-lib/        # Shared Go: middleware, response helpers, errors
│   └── ui/                # Shared React components + Tailwind preset
│
├── infra/
│   ├── docker-compose.yml
│   └── dockerfiles/       # One Dockerfile per service
│
├── .github/workflows/ci.yml
├── go.work                # Ties all Go modules together
├── turbo.json
└── pnpm-workspace.yaml
```

---

## Getting Started

### Prerequisites

- Go 1.22+
- Node.js 20+
- pnpm 9+
- Docker + Docker Compose

### Local Development

```bash
# Clone
git clone https://github.com/dknalp/monorepo-template.git my-project
cd my-project

# Install JS deps
pnpm install

# Run all frontends (hot reload)
pnpm dev

# Run a Go service
cd services/api && go run ./cmd/api

# Run everything with Docker
cd infra && docker compose up
```

### First-time Setup for a New Project

```bash
# 1. Update module names in all go.mod files
#    Change: github.com/agency/* → github.com/yourorg/yourproject/*

# 2. Update package names in package.json files
#    Change: @agency/* → @yourorg/*

# 3. Copy .env.example → .env and fill in values

# 4. Run go work sync
go work sync
```

---

## The 5 Rules (must be followed on every project)

1. **`cmd/<service>/main.go` is bootstrap only** — no business logic ever
2. **Database-per-service** — never share schemas across services
3. **Shared Go code** → `packages/go-api-lib` only
4. **Shared UI code** → `packages/ui` only
5. **`internal/` is private** — Go enforces this at compile time

See [CONTRIBUTING.md](./CONTRIBUTING.md) for full standards.

---

## Adding a New Service

```bash
mkdir -p services/myservice/cmd/myservice
mkdir -p services/myservice/internal/{handler,service,repository}
# Copy go.mod from services/api, update module name
# Add entry to go.work
# Add service to infra/docker-compose.yml
# Add infra/dockerfiles/myservice.Dockerfile
```

## Adding a New Frontend App

```bash
cd apps && pnpm create next-app myapp --typescript --tailwind --app --no-src-dir
# Add "@agency/ui": "workspace:*" to dependencies
# Replace tailwind.config.ts to extend packages/ui/tailwind-preset
```

---

## License

[MIT](./LICENSE)
反馈内容错误

看看同类模板

对比同技术栈与用途的模板,找到更适合的视觉与内容结构。