NimBuild 文档

项目结构

代码库布局和关键目录概览。

目录概览

├── app/[locale]/              # 使用 next-intl 语言段的 Next.js App Router 路由
│   ├── (marketing)/           # 首页、定价、博客和法律页面
│   ├── (protected)/           # 登录后页面:设置和积分
│   ├── (admin)/admin/         # 管理后台、用户、订阅和积分账本
│   ├── (tools)/tools/         # 登录后 AI 工具工作区页面
│   └── docs/                  # Fumadocs 文档路由
├── app/api/                   # Route Handlers
│   ├── auth/                  # Firebase session API
│   ├── payments/stripe/        # Stripe checkout、webhook 和重定向 fallback
│   ├── upload/                # 用户上传端点
│   ├── admin/                 # 管理员变更 API
│   ├── user/                  # 用户资料、积分和管理员状态 API
│   └── cron/                  # 订阅积分发放和积分过期定时任务
├── features/                  # 产品功能模块
│   ├── admin/                 # 管理后台 UI、actions、服务端查询和变更
│   ├── ai-tools/              # AI 工具 actions、UI、历史记录和服务端工作流
│   ├── auth/                  # 全局登录弹窗、认证 UI 和 Firebase session 辅助逻辑
│   ├── blog/                  # Blog source loader 和 blog 专属组件
│   ├── docs/                  # Fumadocs source、metadata、i18n 和布局辅助逻辑
│   ├── landing/               # 营销页区块
│   └── user-console/          # 设置、积分页面、用户资料 API 支撑和查询
├── modules/                   # 可复用领域模块
│   ├── analytics/             # 分析组件组合入口
│   ├── ai-tools/              # 共享 AI 工具 schema 和类型化 payload
│   ├── auth/                  # Firebase session、用户同步和管理员授权
│   ├── billing/               # 计费展示和订阅积分发放计划辅助逻辑
│   ├── client-api/            # 与浏览器客户端共享的 DTO
│   ├── credits/               # 积分账本变更和失败补偿退款
│   ├── upload/                # 用户文件和图片上传服务端逻辑
│   └── db/                    # Drizzle 客户端和 schema
├── extensions/                # 第三方适配器
│   ├── analytics/google/      # Google Analytics 组件
│   ├── ai/volcengine/         # 火山引擎 OpenAI-compatible AI provider adapter
│   ├── auth/firebase/         # Firebase client/admin SDK 适配器
│   ├── email/                 # 隐藏 provider 的邮件封装、模板和适配器
│   ├── payment/stripe/         # Stripe checkout 和 webhook 入账逻辑
│   └── storage/               # 隐藏 provider 的存储门面,包含 R2 和 S3 兼容适配器
├── components/                # 全局 UI:品牌、布局、共享内容辅助组件和基础组件
├── constants/                 # 计费和网站配置
├── content/blog/              # 博客源内容(MDX)
├── content/docs/              # 文档源内容(MDX)
├── messages/                  # UI 和 SEO 翻译(en、zh)
├── public/                    # 公共图片、logos、robots.txt 和生成的 docs CSS
├── scripts/                   # 本地维护和生成脚本
└── drizzle/                   # Drizzle 迁移文件

路由分组

分组路径访问权限用途
(marketing)//pricing/blog、法律页面公开营销和 SEO 页面
(protected)/credits/settings需要登录用户控制台
(tools)/tools/tools/xiaohongshu需要登录AI 工具工作区
(admin)/admin/admin/users/admin/subscriptions/admin/credits管理员管理面板
docs/docs/*/zh/docs/*公开文档

边界规则

  • App 路由保持轻量:解析参数或请求体,然后调用 feature/server 或 module 代码。
  • Client Components 可以导入 feature actions、feature UI、共享组件、共享类型和客户端安全的辅助函数。
  • Client Components 不应导入 features/*/servermodules/dbmodules/credits、提供商适配器、支付适配器、邮件适配器或存储适配器。
  • 后端模块不应导入 React 组件。
  • API route 应使用 defineApiHandler(...),并且必须在 modules/auth/api-policy.ts 中声明,除非该 route 明确需要自定义协议处理。
  • 这些边界由 eslint.config.mjs 强制执行;新增模块或例外前请先阅读开发规范

关键文件

文件用途
extensions/auth/firebase/client.ts浏览器侧 Firebase 初始化
extensions/auth/firebase/admin.tsFirebase provider adapter 使用的底层 Firebase Admin 初始化
extensions/auth/firebase/provider.tsauth provider 接口的 Firebase 实现
modules/auth/client.ts浏览器侧 Firebase Google 登录和会话辅助函数
modules/auth/action-handler.tsServer Action 的标准 wrapper,统一 user/admin 鉴权
modules/auth/access-cache.ts本地 auth access 字段的可替换缓存 store
modules/auth/provider.ts应用侧 auth provider 接口和当前 provider 绑定
modules/auth/api-handler.tsAPI route 的标准 wrapper,统一鉴权、locale 和错误响应
modules/auth/api-policy.ts每个 app/api route 的显式鉴权策略清单
modules/auth/session.tsSession cookie 解析、本地 access cache 和缓存失效
modules/auth/user-sync.tsProvider 身份到本地用户的同步逻辑
modules/auth/index.ts服务端认证、会话和管理员导出
modules/db/schema.tsDrizzle schema 的事实来源
modules/ai-tools/xiaohongshu.tsAI 文案生成器的共享输入/输出 schema
modules/credits/ledger.ts积分余额和账本变更
modules/credits/compensation.ts失败后退款补偿辅助逻辑
modules/upload/file.ts用户文件和图片上传验证和存储写入
constants/billing.ts订阅计划 key、价格、积分额度和 Stripe Price ID
extensions/analytics/google/Google Analytics 集成
extensions/ai/volcengine/AI 工具生成使用的火山引擎 provider adapter
extensions/payment/stripe/Stripe checkout、签名验证、webhook service 和入账逻辑
extensions/storage/隐藏 provider 的存储门面,包含 Cloudflare R2 和 S3 兼容适配器
features/auth/components/auth-modal-provider.tsx全局 Google 登录弹窗和 ?auth=login 处理
lib/client-api/use-api-fetch.ts浏览器 API fetch hook,统一 locale header 和标准错误 toast
features/blog/source.ts读取 content/blog MDX 文章的 blog manifest loader
features/blog/components/Blog card 和 blog layout 组件
features/docs/source.ts读取生成的 .source/server 输出的 Fumadocs loader
source.config.tsFumadocs MDX 源配置
proxy.ts用于语言路由的 Next.js proxy
i18n.config.ts语言区域配置

On this page