预置 Next.js + React + TypeScript 严格模式,Pages Router 与 App Router 混用
template-next — Next.js 作品集模板
作者 r-vilemen
一个基于 Next.js 的通用项目起始模板,内置 PWA、styled-components、TypeScript 严格模式、Biome、Vitest 与 Auth.js,并附带可一键移除的示例首页布局。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 2
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
内置 styled-components 主题、Biome 格式化与 lint、Vitest 测试及 GitHub Actions CI
集成 Serwist PWA,构建时生成 service worker 并由 route handler 提供
Auth.js v5 演示凭据登录,受保护页面通过 withAuth 在 getServerSideProps 中校验
附带可自动或手动移除的示例首页布局,含 pt/en 双语与五个首页区块
模板详细介绍
该模板面向需要快速搭建 Next.js 应用的项目,仓库中已预置一套较完整的工程配置:使用 Pages Router 组织页面,同时用 App Router 承载 Auth.js 路由处理与 Serwist service worker;样式采用 styled-components 的 CSS-in-JS 方案并带主题文件;代码质量由 Biome 负责格式化、lint 与 import 排序,类型检查通过 tsc --noEmit 执行,测试使用 Vitest 与 Testing Library 并在 jsdom 环境运行,另有 Husky + lint-staged 的提交前钩子与 GitHub Actions 的 CI 流程。
模板自带一个可选的示例首页布局,集中在 src/homepage/ 目录,包含固定 Header(带 scrollspy)、Footer(年份动态生成)、五个首页区块(Intro、Features、Como usar、Comandos、Métricas)以及 pt/en 双语支持。开发模式下页面右下角会出现“Remover layout de exemplo”按钮,通过 POST /api/remove-homepage 自动还原 wiring 文件并删除该目录,该接口在非开发环境返回 403;也可按 README 给出的顺序手动删除并回退 _app.tsx、index.tsx 与 GlobalStyles.ts。
认证部分使用 Auth.js v5,配置位于 src/auth.ts,仅提供演示用的凭据 provider([email protected] / admin123),受保护页面通过 src/lib/withAuth.ts 在 getServerSideProps 中校验。PWA 由 Serwist 在构建时生成 service worker,经 src/app/serwist/[path]/route.ts 在 /serwist/sw.js 提供,注册由 _app.tsx 中的 SerwistProvider 完成,开发环境不启用。
使用前需注意:README 要求 Node.js v24 以上(仓库含 .nvmrc),登录页与演示 dashboard 在替换为生产 provider 后可以删除;示例图片、字体、图标等第三方素材需单独核对许可,代码本身为 MIT 许可。
适合你的项目吗?
适用场景
- 需要快速起步的 Next.js 新项目,希望直接获得工程配置与目录结构
- 想参考 Pages Router 与 App Router 混用、Auth.js 与 Serwist 集成方式的开发者
- 需要一个带示例首页与双语支持、且能整体剥离的起始布局
适合人群
- 准备新建 Next.js 应用并希望减少初始配置工作的开发者
- 需要 PWA、认证、测试与 CI 基础配置一并就位的项目
- 希望以 MIT 许可自由修改和分发代码的个人或团队
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
克隆仓库后执行 npm install,并复制 .env.example 为 .env.local,再用 npx auth secret 生成密钥
- 2
README 要求 Node.js v24 以上,仓库包含 .nvmrc 可参考
- 3
开发环境运行 npm run dev,访问 http://localhost:3000
- 4
示例首页可在开发模式下用右下角按钮自动移除,或按 README 步骤手动删除 src/homepage 并回退相关文件
- 5
演示登录页与 dashboard 在替换凭据 provider 后可以删除
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发该版本代码。
- 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
- 使用该模板需要 Node.js v24 或更高版本,仓库内附有 .nvmrc 文件可供参考。
- 登录页与演示 dashboard 仅为演示用途,替换为生产环境的凭据 provider 后可以删除。
- 认证部分仅提供演示用凭据登录([email protected] / admin123),并非生产级认证方案。
- 自动移除示例首页的接口仅在开发模式下可用,非开发环境会返回 403 且按钮隐藏。
- Serwist 生成的 service worker 在开发环境下处于禁用状态,仅在构建产物中生效。
- 使用前需复制 .env.example 为 .env.local 并通过 npx auth secret 生成 Auth.js 密钥。
查看原文依据
Permission is hereby granted, free of charge
许可证原文
O Node.js v24+ é necessário (`.nvmrc` incluído).
README 原文
A página de login e o dashboard demo podem ser removidos ao trocar o provider de credenciais pelo de produção.
README 原文
Auth.js v5 (next-auth)**: login com credenciais demo (`[email protected]` / `admin123`)
README 原文
A rota só executa em desenvolvimento (fora dele responde `403`) e o badge fica oculto.
README 原文
em desenvolvimento o SW fica desabilitado.
README 原文
https://github.com/r-vilemen/template-next/blob/main/LICENSEhttps://github.com/r-vilemen/template-next/blob/main/README.mdCopie as variáveis de ambiente e gere um secret para o Auth.js:
README 原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-10-12。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- GitHub
- 资料与维护参考分
- 资料较完整 · 88 / 100
- 技术栈
- Next.js · React · HTML
- 网站类型
- 作品集
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2026-08-07
- 截图检查日期
- 2026-10-12
已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。
目录记录的主要技术栈是 Next.js。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
审核声明: [email protected] · 2026-10-13
查看当时使用的来源资料
SHA-256: 1f8a2e7b89375e4329fc9fb111cbed1b836fa3bdee620a0ae30058e0c6b72407
2026-10-12T13:53:24.754Z
来源文件 / 仓库# Next.js Template Project Template base para iniciar rapidamente projetos **Next.js**. Já vem com PWA (Serwist), styled-components, TypeScript estrito, Biome, testes (Vitest) e CI configurados. ## 🛠 Tecnologias Utilizadas - **Next.js 16** (Pages Router + App Router para rotas especiais) + **React 19** + TypeScript estrito - **Styled-Components** para estilos CSS-in-JS com temas - **PWA**: [Serwist](https://serwist.pages.dev/) com **Turbopack** — service worker gerado em build e servido em `/serwist/sw.js` - **Biome**: formatação, lint e organização de imports (substitui ESLint/Prettier) - **Vitest + Testing Library**: testes unitários e de componentes - **Husky + lint-staged**: hooks de pré-commit - **GitHub Actions**: CI (check, typecheck, testes e build) - **Auth.js v5 (next-auth)**: login com credenciais demo (`[email protected]` / `admin123`) ## 📂 Estrutura de Pastas ```bash src/ │ ├── components/ # Componentes reutilizáveis │ ├── Links/ # Tags <head> (manifest, ícones) │ └── SEO/ # Meta tags e SEO por página │ ├── homepage/ # Layout de exemplo (Header, Footer, Layout, │ # seções da home, i18n, hooks e estilos) │ ├── pages/ # Páginas da aplicação (Pages Router) │ ├── _app.tsx # Providers globais (auth, tema, PWA, fontes) │ ├── _document.tsx # Documento customizado (SSR styled-components) │ ├── index.tsx # Página inicial │ ├── login/ # Página de login (Auth.js) │ ├── dashboard/ # Página protegida (withAuth) │ └── 404/ # Página de erro 404 │ ├── app/ # App Router (rotas especiais) │ ├── api/auth/[...nextauth]/ # Route handler do Auth.js │ ├── serwist/[path]/ # Route handler que serve o service worker │ └── sw.ts # Service worker (Serwist + Turbopack) │ ├── auth.ts # Configuração do Auth.js v5 ├── lib/ # Utilitários de servidor (withAuth) ├── services/api/ # Camada de API (wrapper de fetch) ├── components/ │ ├── ui/ # Componentes base (Button, Input, Modal, Toast, Spinner) │ └── ... │ ├── ui/ │ ├── assets/ # Ícones e imagens │ └── styles/ # Estilos globais e tema │ ├── theme.ts # Tema (cores, fontes, breakpoints) │ ├── GlobalStyles.ts # Reset e estilos globais │ └── styles.d.ts # Tipagem do tema para styled-components │ └── utils/ └── functions/ # Funções utilitárias ├── getDate.ts # Ano, mês e dia atuais ├── hexToRgba.ts # Conversão de HEX para RGBA ├── scrollToElement.ts # Scroll suave até um elemento └── valueFormat.ts # Formatação de valores (BRL) ``` ## 🔧 Como Usar 1. Clone o repositório e instale as dependências: ```bash npm install ``` 2. Copie as variáveis de ambiente e gere um secret para o Auth.js: ```bash cp .env.example .env.local npx auth secret ``` 3. Rode em desenvolvimento: ```bash npm run dev ``` Acesse `http://localhost:3000`. ## 📜 Scripts | Script | Descrição | | ------------------ | --------------------------------------------- | | `npm run dev` | Ambiente de desenvolvimento (Turbopack) | | `npm run build` | Build de produção (Turbopack) | | `npm start` | Servidor de produção | | `npm run lint` | Lint com Biome | | `npm run format` | Formatação com Biome | | `npm run check` | Formatação + lint + organização de imports | | `npm run typecheck`| Verificação de tipos (tsc --noEmit) | | `npm test` | Executa os testes (Vitest) | | `npm run test:watch` | Executa os testes em modo watch | ## 🧪 Testes Os testes ficam colados aos arquivos utilitários (`*.test.ts`) e são executados com Vitest em ambiente `jsdom`. ## 🚀 PWA O service worker é gerado durante o build pelo Serwist com **Turbopack** (`src/app/sw.ts`, empacotado via esbuild) e servido em `/serwist/sw.js` pelo route handler `src/app/serwist/[path]/route.ts`. O registro é feito pelo `SerwistProvider` no `_app.tsx`; em desenvolvimento o SW fica desabilitado. ## 🔐 Autenticação Auth.js v5 configurado em `src/auth.ts` com provider de credenciais **demo** (`[email protected]` / `admin123`). O route handler fica em `src/app/api/auth/[...nextauth]/route.ts` e páginas protegidas usam `withAuth` (`src/lib/withAuth.ts`) no `getServerSideProps`. ## 🚀 Iniciar um novo projeto a partir deste template 1. **Crie o repositório** usando este template e clone-o. 2. **Renomeie o projeto** no `package.json` (campo `name`) e ajuste a `src/config/site.ts` (nome do site, autor, descrição, tema e URL de produção). 3. **Copie e preencha as variáveis de ambiente**: ```bash cp .env.example .env.local npx auth secret ``` 4. **Instale e verifique**: ```bash npm install npm run check npm run typecheck npm test npm run build ``` 5. **Comece a desenvolver**: adicione páginas em `src/pages/` e componentes em `src/components/`. Para autenticar uma página, use `withAuth` no `getServerSideProps`. Para chamadas de API, use `src/services/api`. > O Node.js v24+ é necessário (`.nvmrc` incluído). A página de login e o dashboard demo podem ser removidos ao trocar o provider de credenciais pelo de produção. ## 🧹 Removendo o layout de exemplo (homepage) O template inclui um layout de exemplo opcional, consolidado em `src/homepage/`: Header fixo com scrollspy, Footer com ano dinâmico, 5 seções na homepage (Intro, Features, Como usar, Comandos, Métricas), i18n pt/en e hooks auxiliares. > Guia completo e detalhado: [`src/homepage/README.md`](src/homepage/README.md) ### Opção automática (dev mode) Rodando `npm run dev`, um botão fixo **Remover layout de exemplo** aparece no canto inferior direito. Ele exige confirmação (modal com **Remover e limpar**) e dispara `POST /api/remove-homepage`, que reverte os arquivos de wiring, apaga `src/homepage` e se auto-destrói. A rota só executa em desenvolvimento (fora dele responde `403`) e o badge fica oculto. Para excluir manualmente, siga a ordem: 1. **Apague a pasta `src/homepage/`:** ```bash rm -rf src/homepage # Windows (PowerShell): # Remove-Item -Recurse -Force src/homepage ``` 2. **Reverta `src/pages/_app.tsx`** — remova o `Layout` e o `LanguageProvider`, mantendo `SerwistProvider`, `SessionProvider`, as fontes e o `<ToastProvider>` em volta de `<Component {...pageProps} />`. 3. **Reverta `src/pages/index.tsx`** — troque os imports/seções de `@/homepage/components/Home/…` pelo placeholder original (`<h1>home page</h1>`). 4. **Reverta `src/ui/styles/GlobalStyles.ts`** — remova o bloco de `scroll-behavior: smooth` e o `@media (prefers-reduced-motion: reduce)`. 5. **Verifique:** ```bash npm run check npm run typecheck npm test npm run build ``` Depois disso, `/login` e `/dashboard` renderizam sem Header/Footer/Layout, em um estado minimalista pronto para o seu próprio layout. ## 📄 Licença MIT. Sinta-se à vontade para usar, modificar e compartilhar.
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

react-resume-template
A personal resume website template built with React.js, Typescript, Next.js, and styled with Tailwind css
Next.js · 作品集

nxt-lnk
Custom bio links for creatives who love coding. A perfect custom alternative for linktree, bio and other short…
Next.js · 作品集

sylph
A minimal portfolio template.
Next.js · 作品集

sleek-portfolio
sleek-portfolio 是一个面向开发者个人品牌展示的现代作品集模板,基于 Next.js 15、TypeScript、Tailwind CSS 和 Shadcn UI 构建。
Next.js · 作品集

research-website-template
React + Next.js template for research websites (for PhD students, researchers, etc)
Next.js · 作品集

shadcn-portfolio
shadcn-portfolio 是一个面向开发者的作品集模板,技术栈为 Next.js 15、shadcn/ui、Tailwind CSS 和 Framer Motion。
Next.js · 作品集
