集成 TypeScript 严格模式、Tailwind CSS 与 shadcn/ui 组件
next-template — Next.js 启动器模板
作者 hHolyMolly
基于 Next.js 的启动器模板,集成 TypeScript、Tailwind CSS、i18n、状态管理、表单校验与安全中间件,并附带可移除的示例代码。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 2
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
使用 next-intl 实现 [locale] 路由、消息键一致性检查与 hreflang
提供 Redux Toolkit 与 TanStack Query 的示例代码,含流式 SSR 预取
内置 CSP nonce、限流、CSRF 检查等安全中间件
通过 pnpm check 统一运行 ESLint、Stylelint、Prettier、Vitest 等质量门禁
附带 clean:demo 命令,可移除首页演示代码与示例路由
模板详细介绍
该模板是一个 Next.js 启动器,仓库为 hHolyMolly/next-template,采用 MIT 许可。README 说明其集成 TypeScript 严格模式、Tailwind CSS、next-intl 国际化、Redux Toolkit 与 TanStack Query 状态管理、React Hook Form 与 Zod 表单校验,以及 CSP nonce、限流、CSRF 检查等安全中间件。项目提供可运行的示例页面与 API 路由,并通过 clean:demo 命令移除演示代码。质量工具链包括 ESLint、Stylelint、Prettier、Vitest、knip 和 commitlint,pnpm check 统一运行。环境要求 Node.js 24+ 与 pnpm 10.16+,部署支持 Vercel 或自托管。
适合你的项目吗?
适用场景
- 需要快速搭建带国际化与类型安全的新 Next.js 项目
- 希望参考表单校验、状态管理与安全中间件的集成方式
- 在团队中统一代码质量工具链与提交规范
- 部署到 Vercel 或自托管环境并复用现有 CI 检查
适合人群
- 使用 Next.js 与 TypeScript 的前端开发者
- 需要国际化与多语言路由的应用
- 重视代码质量门禁与安全配置的团队
- 希望从可运行示例起步并自行清理演示代码的项目
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
需要 Node.js 24+ 与 pnpm 10.16+
- 2
使用 npx degit hHolyMolly/next-template my-app 获取模板,然后 pnpm install
- 3
运行 pnpm dev 启动开发服务器,next-env.d.ts 由 pnpm dev 或 pnpm typecheck 生成
- 4
使用 pnpm clean:demo my-app 移除首页演示代码与示例路由
- 5
环境变量 NEXT_PUBLIC_CLIENT_URL 为必填,本地覆盖可写入 .env.local
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发该版本代码。
- 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
- 运行环境要求:需 Node.js 24 及以上版本,并使用 pnpm 10.16 及以上版本。
- 必须配置环境变量 NEXT_PUBLIC_CLIENT_URL,否则项目无法正常运行。
- 自托管部署时需置于反向代理之后,并设置 TRUSTED_PROXY_HOPS 环境变量。
查看原文依据
Permission is hereby granted, free of charge
许可证原文
Node.js 24+, pnpm 10.16+.
README 原文
Required: `NEXT_PUBLIC_CLIENT_URL`.
README 原文
https://github.com/hHolyMolly/next-template/blob/main/LICENSEhttps://github.com/hHolyMolly/next-template/blob/main/README.mdSelf-hosted — `pnpm build && pnpm start` behind a reverse proxy (set `TRUSTED_PROXY_HOPS`).
README 原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-10-06。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- GitHub
- 资料与维护参考分
- 资料较完整 · 88 / 100
- 技术栈
- Next.js · React
- 网站类型
- 启动器
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2026-10-06
- 截图检查日期
- 2026-10-06
已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。
目录记录的主要技术栈是 Next.js。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
审核声明: [email protected] · 2026-10-06
查看当时使用的来源资料
SHA-256: 2d089b76d0728f77d8d485e79bf756496142feed2ac7144a40352a1ad0345da7
2026-10-06T07:08:24.911Z
来源文件 / 仓库<div align="center">
<h1>Next Template</h1>
<p>Production-ready Next.js starter with TypeScript, Tailwind CSS v4, i18n and working examples for every shipped library</p>
<p>
<a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D24-brightgreen?style=flat-square" alt="Node.js"></a>
<a href="https://nextjs.org"><img src="https://img.shields.io/badge/next.js-16-black?style=flat-square" alt="Next.js"></a>
<a href="https://www.typescriptlang.org"><img src="https://img.shields.io/badge/typescript-strict-3178C6?style=flat-square" alt="TypeScript"></a>
<a href="https://github.com/hHolyMolly/next-template/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue?style=flat-square" alt="License"></a>
</p>
</div>
<br />
## Features
- **Next.js 16** — App Router, Turbopack, React 19, React Compiler
- **TypeScript** — strict mode (`noUncheckedIndexedAccess`, `exactOptionalPropertyTypes`)
- **Tailwind CSS v4** — CSS-first config, oklch design tokens, shadcn/ui components
- **i18n** — next-intl, `[locale]` routing, key-parity check, typed messages, title template + hreflang
- **State** — Redux Toolkit (live `uiSlice` example) + TanStack Query (streaming SSR: pending-query dehydration + `useSuspenseQuery`)
- **Forms** — React Hook Form + shared Zod schema, re-validated in a Server Action
- **Security** — per-request CSP nonce (`strict-dynamic`), hardened headers, one rate-limit identity rule for pages/API/actions, CSRF check for actions, header-only ISR webhook secret
- **Quality gates** — ESLint (0 warnings), Stylelint, Prettier, typecheck (app + tests), Vitest 5, i18n parity, knip, commitlint — `pnpm check` runs them all; CI and Vercel run the same set
- **Supply chain** — pnpm `minimumReleaseAge` + install-script allow-list, SHA-pinned Actions, Dependabot cooldown
## Quick Start
```bash
npx degit hHolyMolly/next-template my-app
cd my-app
pnpm install
git init && pnpm prepare # enable git hooks
pnpm dev
```
Remove the demo surface when you start building:
```bash
pnpm clean:demo my-app # degit clones: also renames + finalizes
pnpm clean:demo my-app --force # git clones: force the finalization step
```
> Node.js 24+, pnpm 10.16+. `next-env.d.ts` is generated by `pnpm dev` / `pnpm typecheck`.
## Living Examples (removed by `clean:demo`)
Every shipped library is exercised by real code on the home page:
| Example | Shows |
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------- |
| `[locale]/components/ContactForm` | RHF + zodResolver → Server Action (`withServerAction` + CSRF + rate limit) → toast |
| `[locale]/components/HealthStatus` | TanStack Query streaming SSR: in-process prefetch + `HydrationBoundary` → `useSuspenseQuery` + `ErrorBoundary`; axios refetches |
| `[locale]/components/DemoBanner` | Redux `uiSlice` + `featureFlags` + `useLocalStorage` |
| `GET /api/health` · `POST /api/echo` | `withApiHandler`: Zod validation, typed errors, rate-limit headers |
## Commands
| Command | Description |
| -------------------------------------------- | -------------------------------------------------- |
| `pnpm dev` / `build` / `start` / `preview` | Develop · build · serve |
| `pnpm lint` / `lint:fix` | ESLint, 0 warnings allowed |
| `pnpm lint:css` / `lint:css:fix` | Stylelint check · autofix |
| `pnpm format` / `format:check` | Prettier write · check |
| `pnpm typecheck` / `typecheck:test` | TypeScript: app · tests |
| `pnpm test` / `test:watch` / `test:coverage` | Vitest (+ coverage thresholds) |
| `pnpm check` | All gates in one command (same set as CI) |
| `pnpm check:i18n` | Locale key parity |
| `pnpm knip` | Unused files / deps (blocking), exports (advisory) |
| `pnpm analyze` | Turbopack bundle analyzer |
| `pnpm clean` / `clean:cache` / `clean:demo` | Cleanup |
Git hooks: pre-commit (lint-staged + i18n parity) · commit-msg (commitlint) · pre-push (typecheck + tests).
## Project Structure
```
src/
├── app/
│ ├── layout.tsx # <html>/<body>, JSON-LD (nonce), styles, font variable
│ ├── api/ # health · echo (demo) · revalidate (ISR webhook) — withApiHandler
│ └── [locale]/
│ ├── layout.tsx # locale + NextIntlClientProvider (client namespaces)
│ ├── page.tsx # demo home (SSR query prefetch)
│ ├── components/ # demo surface (clean:demo removes it)
│ └── (routes)/ # Header/Footer layout, template page, 404 catch-all
├── components/ UI/ (shadcn) · layouts/ (Header, Footer, LanguageSwitch, WebVitals, …) · icons/
├── configs/ project · metadata · routes · env · featureFlags
├── hooks/ 13 SSR-safe hooks
├── lib/ withApiHandler · withServerAction · rateLimit · errors · errorReporting · cn · queryClient
├── messages/ {en,ru}/{translations,metadata,demo}.json
├── services/ api (http policy · axios · serverFetch · queryOptions · cache) · i18n (next-intl)
├── store/ Redux Toolkit (slices/uiSlice)
├── styles/ tailwind.css (@theme) · vars.css (oklch tokens) · normalize.css (@layer base) · fonts.ts
└── proxy.ts middleware: rate limit → CSP nonce → next-intl
```
## Environment
`.env.development` / `.env.production` are committed (no secrets). Local overrides go to
`.env.local` (gitignored, wins). Required: `NEXT_PUBLIC_CLIENT_URL`. Full list: [.env.example](.env.example).
## Deploy
**Vercel** — import the repo; `vercel.json` runs `pnpm check && pnpm build` on every push (same gates as CI).
Self-hosted — `pnpm build && pnpm start` behind a reverse proxy (set `TRUSTED_PROXY_HOPS`).
## Docs
Architecture rules, conventions and security contracts live in [AGENTS.md](AGENTS.md) —
the single source of truth for humans and AI agents alike. Debugging notes: [docs/gotchas.md](docs/gotchas.md).
Release checks: [docs/verification-playbook.md](docs/verification-playbook.md). Security policy: [SECURITY.md](SECURITY.md).
## License
MIT © [HolyMolly](https://github.com/hHolyMolly)
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

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 · 启动器
