跳到正文
Hacker News· sean_dowdall·· 5 天前AI 评分36

Tidy:面向设计师、工程师与智能体的开源产品画布

Tidy – Open-Source Paper

AI 导读

Tidy 是一款面向设计师、工程师和智能体的开源产品画布,采用 Apache License 2.0 协议,包含可编辑设计工作区、协作功能、网页捕获扩展,以及让智能体操作设计的 MCP server。

正文 · AI 翻译

Codex in Ghostty edits a landing page alongside Tidy’s live teammate cursor

Tidy 是面向设计师、工程师和智能体的产品画布。它包含可编辑的设计工作区、协作、网页捕获扩展,以及一个用于通过智能体处理设计的 MCP 服务器。

Tidy 在 Apache License 2.0 下开源。捆绑的第三方资源保留其各自的许可证;请参阅 第三方声明。

本地开发

要求:Bun 1.3.14、Git、Docker Compose 和 PostgreSQL 17 命令行工具,用于一次性数据库测试。使用你自己的开发邮件和可选的服务商应用;源码中不包含托管服务凭据。

bun install --frozen-lockfile
docker compose up -d --wait
cp apps/web/.env.example apps/web/.env.local

在应用的本地环境文件中生成 BETTER_AUTH_SECRET 和一个单独的 base64 编码的 32 字节 VAULT_ENCRYPTION_KEY。示例数据库 URL 指向端口 55432 上的回环 PostgreSQL;其密码是开发测试值,绝不是生产凭据。运行本地命令时不要继承生产数据库 URL。全新的 Docker 数据库会自动应用有序迁移;现有数据库需要 migrations/ 中缺失的文件。

密码账户必须在登录前验证邮箱。在创建账户之前,配置你自己的 Cloudflare Email Sending 令牌、账户和发件人;禁用会保留验证/重置链接的邮件预览。可选的社会化登录、连接器、分析、计费和原生智能体在你于环境示例中添加各自的环境变量值之前保持未配置状态。

bun dev
# In another terminal, for local realtime presence:
bun dev:realtime

打开 http://localhost:3000。bun dev:site 在端口 3001 上启动可选的落地页。bun dev:extension 启动 WXT 扩展;其默认服务器是 localhost。要将其加载到你自己的 Chrome 配置文件中,请运行 bun run build:extension,在 chrome://extensions 启用开发者模式,并加载已解压的 apps/extension/.output/chrome-mv3。为分发构建时,将 WXT_BELLA_URL 设置为你自己的 HTTPS 应用源。

使用 docker compose down 停止本地数据库;添加 -v 会移除其数据。本地 Node 开发会绕过 Worker 特定的共享尝试限制。在公开暴露任何部署之前,请参阅自托管。

工作区

工作区 用途
apps/web Next.js 应用和 Cloudflare Worker
apps/site 可选的静态落地页
apps/extension WXT 网页捕获扩展
apps/gpt-plugin 智能体插件、技能和预览 UI
packages/design 浏览器安全的文档和捕获模式
packages/design-renderer 共享编辑器、预览和导出渲染
packages/ui 共享 UI 控件

工作区命令从根目录运行:bun typecheck、bun lint、bun test 和 bun run build。使用 bun run build:worker 进行 Cloudflare Webpack/OpenNext 构建。支持源码归档和没有提交的新仓库。你可以设置 NEXT_PUBLIC_APP_VERSION 作为独立于 Git 的发布标签。

数据库测试夹具拥有一次性 PostgreSQL 集群并模拟服务商 HTTP。显式运行相关测试套件;默认单元测试会跳过数据库套件。账户套件是 bun run test:account-controls;package.json 还会列出 auth、MCP、agents、plans、files、versions、images、clipboard、runtime、storage、multiplayer 和 connector 套件。请参阅贡献指南了解必需的检查。

运行 bun run bench:mcp,针对一次性本地数据库进行经过身份验证的 MCP HTTP 延迟、吞吐量、查询次数和负载基准测试。请参阅MCP 性能报告,了解可复现的对比以及本地测量与托管 Worker 性能之间的区别。

自托管

托管应用使用 Cloudflare Workers、Hyperdrive、私有 R2 存储桶、Images 和 Durable Objects。被跟踪的 apps/web/wrangler.jsonc 是一个构建模板。将其复制到被忽略的 apps/web/wrangler.deploy.jsonc,并配置你自己的 Worker 名称、匹配的 WORKER_SELF_REFERENCE、域名、Hyperdrive 连接和存储绑定。保留 Durable Object 绑定和迁移标签。

使用独立的运行时和迁移数据库登录。在启动应用前,按顺序应用数据库迁移并授予受限的运行时权限。将 BETTER_AUTH_URL 配置为你的 HTTPS 源,并通过 Cloudflare 提供运行时变量和密钥,以 apps/web/.env.example 作为配置参考。不要将密钥放入 Wrangler 文件和 NEXT_PUBLIC_* 变量中。在恢复现有数据库时,请保留认证和加密密钥。

从仓库根目录,使用你的私有配置进行构建和部署:

bun run build:worker
TIDY_DEPLOY_CONFIG=./wrangler.deploy.jsonc bun run deploy:worker

配置路径相对于 apps/web。预览和生产环境需要单独的密钥、数据库和存储桶。在接受真实数据之前,请用两个用户测试认证和工作区隔离。公共 Node 部署需要等效的共享限流器、私有存储和实时传输;Node 命令支持本地开发。

有关代理设置,请参阅代理插件和原生运行器。CI 使用合成夹具和只读令牌。请按照 SECURITY.md 中的流程私下报告漏洞。

来源:Hacker News · github.com