Tanplate Docs

代码库

Tanplate 代码库、Monorepo 应用边界和共享包概览。

Tanplate 以一个 pnpm Monorepo 交付。应用负责运行时装配和表现层,共享业务不变量由 packages/* 持有。

Tanplate 模板

项目内容
仓库当前 Tanplate 模板仓库(公开发布前为受限访问)
用户站apps/web
管理后台apps/admin
文档站apps/docs
状态当前仓库持续维护

这是主要的全栈模板仓库,使用 TanStack Start 构建并部署到 Cloudflare Workers。项目初始化、Capability Profile、共享领域包和三个 Worker 都在同一个版本历史中演进。

仓库访问

当前模板仓库尚未公开。已获授权的开发者通过现有工作区或 CLI 配置访问;公开发布前,文档不会把读者导向一个匿名访问返回 404 的仓库链接。

顶级目录

路径职责
apps/web用户站 TanStack Start Worker
apps/admin管理后台 Worker 与统一授权/audit
apps/docsFumadocs 文档 Worker,不绑定业务 D1/R2
packages/auth共享 Better Auth、保护、消息与 Session policy
packages/db共享 Drizzle schema、D1 client 与 migrations
packages/projectsProjects revision、发布、媒体与 Favorites
packages/user-assets私有上传的 owner/配额/状态机
packages/jobsQueue/Cron、lease、重试、DLQ 与 Webhooks
packages/clitanplate create 本地初始化编排
scriptsManifest、环境、部署和数据运维命令
ai-docs架构、PRD、runbook、分析与交接文档

Web 分层

src/pages      UI 路由与路由私有渲染组件
src/services   浏览器类型化 API client 与 HTTP/stream transport
src/stores     Zustand 非敏感持久化状态
src/lib        通用工具、Content 构建索引与格式化
src/api        公开 Server Routes 与 -internal 服务端实现

src/pages 不承载数据库或 Provider 实现。公开请求从 src/api Route 进入,内部 runtime 装配放在 src/api/-internal-internal 被 TanStack 路由生成器排除,不产生 URL。

浏览器请求统一走 src/services/api,底层传输只放 src/services/request。认证 token 不进入 Zustand;Session 由 HttpOnly Cookie 和同源服务端解析。

页面私有组件

路由目录中的 -components 表示只服务当前页面或布局的表现层,不进入 Route Tree,也不作为跨页面公共 API。

pages/_app/
  -components/
    layout/
      header.tsx
      footer/
        index.tsx
      -components/
        header-actions-menu.tsx
        language-switcher.tsx
        theme-toggle-button.tsx
  homepage/
    -components/
  blog/
    -components/

Header/Footer 归 _app 公共壳。Header 直接依赖的菜单、语言和主题控件继续下沉到 layout/-components。首页和 Blog 的组件各自留在页面目录,避免把一次性 section 提升成伪共享组件。

依赖方向

页面 -> 同源 API -> 应用 runtime -> 共享领域包 -> D1/R2/Provider

Web/Admin 可以拥有不同 origin、Cookie 和环境 binding,但认证、Projects、Assets 等领域规则只能有一个共享实现。应用 runtime 负责把 Cloudflare binding 和应用身份传入共享核心,不再增加纯参数转发文件。

代码地图

进入目录前先读 .folder.md。可注释文件以 INPUT / OUTPUT / POS / PROTOCOL Header 描述契约;文件增删后同步更新所属 .folder.md。顶级结构变化还要同步根 README.mdAGENTS.md

On this page