项目结构
代码库地图——路由、组件、内容和配置分别位于何处。
路由位于 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。