Template

项目结构

代码库地图——路由、组件、内容和配置分别位于何处。

路由位于 src/app/,资源行为和 UI 位于 src/modules/,共享基础设施来自 @zybric/app。

目录布局

content/        MDX 条目及其图片
public/         内容以外的静态资源
src/
  app/          App Router 路由和元数据路由
  db/           数据库客户端、关系和表汇总
  env/
    client.ts   经校验的浏览器可见环境变量
    server.ts   经校验的服务端专用环境变量
  lib/          应用基础设施:认证、内容、i18n 和元数据默认值
  modules/      按资源组织的行为、持久化、调用接口和 UI
tests/
  api/          Playwright HTTP 合约测试
  e2e/          按用户目标命名的 Playwright 流程测试
  fixtures/     负责创建和清理测试资源的 fixture
  helpers/      无状态测试工具和断言

资源模块

各模块只使用需要的目录:

src/modules/<resource>/
  schemas/      规范资源 schema 和推导类型
  domain/       资源规则、路径和持久化合约
  adapters/     持久化、表和外部服务实现
  app/          命令和查询
  ports/        Server Action、loader、MCP 工具和 CLI 适配器
  ui/           组件、表单、hook 和邮件模板

UI 属于它展示或修改的资源。应用通用 UI 放在 src/modules/shared/ui/。通过 @zybric/app 导入可复用组件;应用不使用本地 src/components 或 src/hooks 目录。

路由与配置

公开的语言地址化页面位于 src/app/[locale]。首页、博客、法律和作者页面共享 (marketing) 布局;文档使用 Fumadocs 外壳。

Dashboard 对所有语言都使用 /dash。用户的语言偏好决定界面译文;/zh/dash 等带语言前缀的路径无效。

src/app 下只放 App Router 文件及同名样式表,例如 page.tsx、layout.tsx、loading.tsx、route.ts、page.css 和 layout.css。组件、辅助函数和 schema 放在路由树之外。路由测试可以使用对应的路由文件名,例如 route.test.ts。

应用的工具与配置文件位于应用根目录。workspace.env 保存项目选择配置,gt.config.json 定义语言,source.config.ts 定义内容集合。Vercel Development 的取值拉取到被忽略的 .env。

条目布局见撰写内容,语言路由和元数据见 i18n 与 SEO。

On this page