Echo · 公众号「5 分钟 AI」写作工作台

echo.mvp.restry.cn — Next.js 16 · React 19 · NextAuth v5 · Drizzle · PostgreSQL · Azure OpenAI

HTTPS QR / OAuth finalize redirect (HMAC) 公众号 API RSC / API jwt / session SQL SSE 流式 PG protocol v1 surface ~5min/张 save b64 → fs /api/files (auth'd) 导出 HTML 复制粘贴 用户 / 浏览器 Echo (Next.js 16) — echo.mvp.restry.cn:3795 服务端依赖 外部云服务 用户 PC / 手机 前端 React 19 + RSC 登录 / 仪表盘 编辑器 + AI 工具 @uiw/react-md-editor API Routes /api/auth/* /api/wx/finalize Server Actions CRUD + 状态 AI Routes (SSE) /api/ai/draft/* /api/ai/rewrite /api/ai/cover-image /api/ai/auto-illustrate 本地文件存储 data/article-images/ /api/files (鉴权) NextAuth v5 Credentials + JWT Drizzle ORM postgres-js 图片管线 azure-image.ts 8x 退避 + 串行 wx-gateway wx.mvp.restry.cn 扫码 / OAuth / HMAC 共享造悟者公众号 微信公众号 造悟者 wx225bf76b... 服务号 PostgreSQL deployer-shared • ec_users • ec_pubaccounts • ec_articles • ec_writing_kits db: echo Azure OpenAI · Chat resley-sweden-ext model: gpt-5.4 起草 / 改写 / prompt 生成 Azure OpenAI · Image model: gpt-image-2 封面 / 段落 / 全文配图 ~5min / 张 v1 surface Image Studio design.mvp.restry.cn 引流目标产品 CTA × 4 处 引流 CTA 公众号编辑器 用户手动粘贴 最终发布平台 图例 前端 (UI) 后端 (Routes) 数据库 云服务 (Azure) 安全 / 认证 引流 / 发布 外部 认证 / HMAC 流 同步请求 数据流 / 导出

前端层

  • • Next.js 16 App Router + React 19 RSC
  • • @uiw/react-md-editor 双栏编辑
  • • Tailwind v4 + shadcn/ui
  • • EventSource 接 SSE 流式 AI
  • • 移动端响应式(<md 单列堆叠)

后端 / API

  • • 11 个 AI Routes(SSE 流式 + 非流式)
  • • NextAuth v5 jwt session + 按需 DB 回灌
  • • /api/wx/finalize HMAC + idempotent upsert
  • • Server Actions 做 CRUD
  • • 文件鉴权 /api/files (path traversal 拦截)

数据 / 存储

  • • Drizzle ORM + postgres-js
  • • ec_users / ec_pubaccounts / ec_articles
  • • ec_writing_kits(5 个 KitDoc jsonb)
  • • ec_settings.modelRouting (jsonb)
  • • 文件本地落盘 data/article-images/

外部云 / AI

  • • Azure OpenAI Sweden (v1 surface)
  • • gpt-5.4 (chat) — 起草 / 改写 / prompt
  • • gpt-image-2 — 封面 / 段落 / 全文配图
  • • 8x 指数退避 (RateLimitError)
  • • maxDuration=600 / runtime=nodejs

认证 / 微信

  • • 邮箱密码 (NextAuth Credentials)
  • • 微信扫码 (PC + 公众号回调)
  • • 微信内 OAuth (UA 自动跳转)
  • • 共享 wx-gateway (造悟者服务号)
  • • jwt 缺 name/picture 时按需查 DB

发布 / 引流

  • • 📤 公众号 HTML 导出 (红 span / 无列表 / CTA)
  • • 用户复制粘贴到公众号后台
  • • 状态流转: draft → unsent → sent
  • • 4 处 Image Studio CTA 引流
  • • Sidebar 底部固定 CTA 卡片