Next.jsReactHTML作品集

template-next — Next.js 作品集模板

作者 r-vilemen

一个基于 Next.js 的通用项目起始模板,内置 PWA、styled-components、TypeScript 严格模式、Biome、Vitest 与 Auth.js,并附带可一键移除的示例首页布局。

看看你的网站会是什么样

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

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

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

全部页面与视图 2

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

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

值得关注的模板亮点

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

01

预置 Next.js + React + TypeScript 严格模式,Pages Router 与 App Router 混用

02

内置 styled-components 主题、Biome 格式化与 lint、Vitest 测试及 GitHub Actions CI

03

集成 Serwist PWA,构建时生成 service worker 并由 route handler 提供

04

Auth.js v5 演示凭据登录,受保护页面通过 withAuth 在 getServerSideProps 中校验

05

附带可自动或手动移除的示例首页布局,含 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.jsReactHTML作品集

适合你的项目吗?

适用场景

  • 需要快速起步的 Next.js 新项目,希望直接获得工程配置与目录结构
  • 想参考 Pages Router 与 App Router 混用、Auth.js 与 Serwist 集成方式的开发者
  • 需要一个带示例首页与双语支持、且能整体剥离的起始布局

适合人群

  • 准备新建 Next.js 应用并希望减少初始配置工作的开发者
  • 需要 PWA、认证、测试与 CI 基础配置一并就位的项目
  • 希望以 MIT 许可自由修改和分发代码的个人或团队

上手与定制指南

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

  1. 1

    克隆仓库后执行 npm install,并复制 .env.example 为 .env.local,再用 npx auth secret 生成密钥

  2. 2

    README 要求 Node.js v24 以上,仓库包含 .nvmrc 可参考

  3. 3

    开发环境运行 npm run dev,访问 http://localhost:3000

  4. 4

    示例首页可在开发模式下用右下角按钮自动移除,或按 README 步骤手动删除 src/homepage 并回退相关文件

  5. 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 原文

Copie as variáveis de ambiente e gere um secret para o Auth.js:

README 原文
https://github.com/r-vilemen/template-next/blob/main/LICENSEhttps://github.com/r-vilemen/template-next/blob/main/README.md

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.
反馈内容错误

看看同类模板

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