KaisouMail
KaisouMail 是 Cloudflare temporary email platform,基于 Email Routing、Workers、D1、R2,以及 React + shadcn/ui control plane。README.md 和 README.zh-CN.md 同时存在,说明文档需要中英双语入口;公开 docs site 与 Storybook 也是产品交付面,而不只是开发辅助。
- Progressive web app
- README content contract
- shadcn/ui
目录
技术栈
运行与交付
- CI 工作流
- ci-main.yml
- ci-pr.yml
- deploy-main.yml
- docs-pages.yml
- label-gate.yml
- notify-release-failure.yml
- release.yml
- 能力标记
- bun_lock
- github_actions
- package_json
依赖与工具
- package.json
- 开发依赖
- @biomejs/biome
- @types/node
- lefthook
- typescript
- 项目脚本
- brand:generate
- build
- build-docs-site
- build-storybook
配置与质量
- 配置文件
- .gitignore
- biome.json
- lefthook.yml
- package.json
- tsconfig.base.json
其他信息
- Package manager
bun@1.3.11
{
"ci_workflows": [
"ci-main.yml",
"ci-pr.yml",
"deploy-main.yml",
"docs-pages.yml",
"label-gate.yml",
"notify-release-failure.yml",
"release.yml"
],
"configs_root": [
".gitignore",
"biome.json",
"lefthook.yml",
"package.json",
"tsconfig.base.json"
],
"markers_present": [
"bun_lock",
"github_actions",
"package_json"
],
"package_json": {
"deps_dev": [
"@biomejs/biome",
"@types/node",
"lefthook",
"typescript"
],
"scripts": [
"brand:generate",
"build",
"build-docs-site",
"build-storybook",
"check",
"check:root",
"prepare",
"test",
"test:e2e",
"typecheck",
"version:write"
]
},
"package_manager": "bun@1.3.11"
}Purpose
KaisouMail 是 Cloudflare temporary email platform,基于 Email Routing、Workers、D1、R2,以及 React + shadcn/ui control plane。README.md 和 README.zh-CN.md 同时存在,说明文档需要中英双语入口;公开 docs site 与 Storybook 也是产品交付面,而不只是开发辅助。
Taxonomy
- Tags: Progressive web app, README content contract, shadcn/ui
Repository map
apps/api-worker/承载 Cloudflare Worker/API 层;apps/web/承载 React control plane。packages/shared/保存跨 Worker/Web 的共享类型或逻辑。apps/web/public/site.webmanifest与apps/web/public/*.png定义 install metadata、theme color、maskable icons 和 app identity。docs-site/使用 Rspress 发布公开文档,并链接/storybook.html与/zh/storybook.html。apps/web/.storybook、apps/web/package.json和大量*.stories.tsx证明 Storybook 是公开组件/页面 QA surface。
Runtime and delivery
根 package.json 是 Bun workspace,check、typecheck、test、build、build-storybook 会跨 root、shared、api-worker、web、docs-site 运行。Cloudflare 部署由 deploy-main.yml 和 app 内 wrangler/config 负责;Playwright e2e 在 apps/web/playwright.config.ts 与 test:e2e 中体现。当前显式 PWA 证据集中在 apps/web/index.html 和 apps/web/public/site.webmanifest:这个 control plane 已经维护 display: standalone、scope: /、theme_color、maskable icons 与 apple-touch-icon,说明安装面是有意维护的;但当前 snapshot 还没有把 service worker/offline/update lifecycle 写成同等级 contract。
Architecture notes
架构由 Cloudflare 控制面分层:Email Routing 收邮件,Workers 处理 API/控制逻辑,D1 存 mailbox/domain/API key 等元数据,R2 存邮件对象,React UI 暴露 mailbox、domains、API keys、identity/passkeys 等操作。直接域名绑定、apex-only 约束和 zone cleanup 在 README 中是重要产品规则。
证据锚点:README.md。
Workflow and quality gates
.github/workflows/ci-main.yml、ci-pr.yml、deploy-main.yml、docs-pages.yml、label-gate.yml、release.yml、notify-release-failure.yml 拆分 PR、main、deploy、docs 和 release alert。因为 Cloudflare 资源是真实外部系统,release/deploy 失败通知比普通前端站更重要。
.github/workflows/ci-pr.yml 把 edited metadata 重验与普通 candidate 放入可取消的 per-PR concurrency group;重验不能取消当前 head 的 gate 是 GitHub Actions scheduling 的独立约束,不能混入 Cloudflare deploy 或 release 规则。
Reusable decisions
- 公开 docs 和 Storybook 作为产品 surface 一起发布,适合控制台类项目。
- 根 workspace 脚本聚合所有 package gate,避免只检查 Web 忽略 Worker。
- 双语 README + docs-site 导航符合中文优先、英文可读的受众。
- 若要把控制台作为 installable Web app 交付,最好像当前仓库这样把
site.webmanifest、apple-touch-icon和 maskable icons 一起纳入品牌资产生成链,而不是手工散落维护。 - README 的产品入口与安装身份应分开维护:
README.md/README.zh-CN.md负责产品说明,site.webmanifest和生成的 icon 资产负责 install surface;不能把 maskable 或 Apple touch 外壳直接当作 README Logo contract。
Risks and open questions
- Cloudflare zone discovery/direct bind/delete 是高风险操作,项目记忆要保留 apex-only 与 cleanup 语义。
- Storybook 是公开资产,破坏路径会影响 docs-site。
- D1/R2/Email Routing 权限和环境变量需要部署证据,不应只看本地 build。
- 当前 install metadata 已经存在,但 service worker / offline / update UX 没有同等强度的公开证据;后续若对外宣称“PWA 可离线使用”,需要先补齐这部分 contract。
Evidence index
README.mdREADME.zh-CN.mdpackage.jsonapps/web/package.jsonapps/web/index.htmlapps/web/public/site.webmanifestapps/web/.storybook/apps/web/playwright.config.tsscripts/generate-brand-assets.pydocs-site/package.jsondocs-site/docs/zh/deployment-environment.md.github/workflows/ci-main.yml.github/workflows/deploy-main.yml.github/workflows/docs-pages.yml.github/workflows/notify-release-failure.yml
相关内容
Progressive web app
主题Progressive web app 在这套 playbook 里不是“网页顺手带个 manifest”的统称,而是“把一个 Web surface 当成可安装应用去维护”的工程模式。
README content contract
主题README content contract 是面向项目入口文档的可审查规范:README 先让目标读者理解产品、边界和下一步,再提供可复现的 Quick Start、集成 contract、交付语义、文档真相源、许可证入口、有限产品 preview,以及有来源的 Logo 和 Badge 入口。
shadcn/ui
主题shadcn/ui 表示项目采用官方 shadcn/ui 风格的 checked-in component layer:components.json、@/components/ui aliases、Radix primitives、Tailwind utilities、class-variance-authority、tailwind-merge、clsx 和 Lucide icons 共同构成组件约定。