{"slug": "tidy-open-source-paper", "title": "Tidy – Open-Source Paper", "summary": "Tidy, an open-source product canvas for designers, engineers and agents, has been released under the Apache License 2.0, offering an editable design workspace, collaboration, a webpage-capture extension and an MCP server for working with designs through agents. The project requires Bun 1.3.14, Git, Docker Compose and PostgreSQL 17 command-line tools, and its local database defaults to loopback PostgreSQL on port 55432. Developers run `bun install --frozen-lockfile`, `docker compose up -d --wait` and `bun dev`, with an optional realtime presence process via `bun dev:realtime` and MCP latency, throughput, query-count and payload benchmarks via `bun run bench:mcp`.", "body_md": "Tidy is a product canvas for designers, engineers and agents. It includes an editable design workspace, collaboration, a webpage-capture extension and an MCP server for working with designs through agents.\n\nTidy is open source under the [Apache License 2.0](https://github.com/tidydesigns/tidy/blob/main/LICENSE). Bundled third-party\nassets retain their own licenses; see [third-party notices](https://github.com/tidydesigns/tidy/blob/main/THIRD_PARTY_NOTICES.md).\n\nRequirements: Bun 1.3.14, Git, Docker Compose and PostgreSQL 17 command-line tools for the disposable database tests. Use your own development mail and optional provider applications; the source contains no hosted-service credentials.\n\n```\nbun install --frozen-lockfile\ndocker compose up -d --wait\ncp apps/web/.env.example apps/web/.env.local\n```\n\nGenerate `BETTER_AUTH_SECRET` and a separate base64-encoded 32-byte\n`VAULT_ENCRYPTION_KEY` in the app's local environment file. The example database\nURL points to loopback PostgreSQL on port 55432; its password is a development\nfixture, never a production credential. Do not inherit a production database URL\nwhen running local commands. Fresh Docker databases apply ordered migrations\nautomatically; existing databases need the missing files from `migrations/`.\n\nPassword accounts must verify email before sign-in. Configure your own Cloudflare\nEmail Sending token, account and sender before creating accounts; disable email\npreviews that retain verification/reset links. Optional social sign-in,\nconnectors, analytics, billing and native agents stay unconfigured until you add\ntheir own environment values in [the environment example](https://github.com/tidydesigns/tidy/blob/main/apps/web/.env.example).\n\n```\nbun dev\n# In another terminal, for local realtime presence:\nbun dev:realtime\n```\n\nOpen `http://localhost:3000`. `bun dev:site` starts the optional landing page on\nport 3001. `bun dev:extension` starts the WXT extension; its default server is\nlocalhost. To load it in your own Chrome profile, run `bun run build:extension`,\nenable Developer mode at `chrome://extensions`, and load unpacked\n`apps/extension/.output/chrome-mv3`. Set `WXT_BELLA_URL` to your own HTTPS app\norigin when building for distribution.\n\nStop the local database with `docker compose down`; adding `-v` removes its data.\nLocal Node development bypasses Worker-specific shared attempt limits. See\n[self-hosting](#self-hosting) before exposing any deployment publicly.\n\n| Workspace | Purpose | \n|---|---|\n| `apps/web` | Next.js application and Cloudflare Worker | \n| `apps/site` | Optional static landing page | \n| `apps/extension` | WXT webpage capture extension | \n| `apps/gpt-plugin` | Agent plugin, skill and preview UI | \n| `packages/design` | Browser-safe document and capture schemas | \n| `packages/design-renderer` | Shared editor, preview and export rendering | \n| `packages/ui` | Shared UI controls | \n\nWorkspace commands run from the root: `bun typecheck`, `bun lint`, `bun test` and\n`bun run build`. Use `bun run build:worker` for the Cloudflare Webpack/OpenNext build.\nSource archives and new repositories with no commits are supported. You can set\n`NEXT_PUBLIC_APP_VERSION` for a release label independent of Git.\n\nDatabase fixtures own disposable PostgreSQL clusters and simulate provider HTTP.\nRun the relevant suites explicitly; default unit tests skip database suites.\nThe account suite is `bun run test:account-controls`; `package.json` also lists\nauth, MCP, agents, plans, files, versions, images, clipboard, runtime, storage, multiplayer\nand connector suites. See [contributing](https://github.com/tidydesigns/tidy/blob/main/CONTRIBUTING.md) for required checks.\n\nRun `bun run bench:mcp` for authenticated MCP HTTP latency, throughput, query-count\nand payload benchmarks against a disposable local database. See the\n[MCP performance report](https://github.com/tidydesigns/tidy/blob/main/docs/performance/mcp-2026-10.md) for reproducible comparisons\nand the distinction between local measurements and hosted Worker performance.\n\nThe hosted app uses Cloudflare Workers, Hyperdrive, private R2 buckets, Images\nand Durable Objects. The tracked `apps/web/wrangler.jsonc` is a build template.\nCopy it to the ignored `apps/web/wrangler.deploy.jsonc` and configure your own\nWorker name, matching `WORKER_SELF_REFERENCE`, domain, Hyperdrive connection and\nstorage bindings. Retain the Durable Object bindings and migration tags.\n\nUse separate runtime and migration database logins. Apply ordered\n[database migrations](https://github.com/tidydesigns/tidy/blob/main/migrations/README.md) and the restricted runtime grants\nbefore starting the app. Configure `BETTER_AUTH_URL` to your HTTPS origin and\nsupply runtime variables and secrets through Cloudflare, using\n`apps/web/.env.example` as the configuration reference. Keep secrets out of\nWrangler files and `NEXT_PUBLIC_*` variables. Preserve both auth and encryption\nsecrets when restoring an existing database.\n\nFrom the repository root, build and deploy using your private configuration:\n\n```\nbun run build:worker\nTIDY_DEPLOY_CONFIG=./wrangler.deploy.jsonc bun run deploy:worker\n```\n\nThe configuration path is relative to `apps/web`. Preview and production need\nseparate secrets, databases and buckets. Test authentication and workspace\nisolation with two users before accepting real data. Public Node deployments\nrequire an equivalent shared limiter, private storage and realtime transport;\nthe Node commands support local development.\n\nSee the [agent plugin](https://github.com/tidydesigns/tidy/blob/main/apps/gpt-plugin/README.md) and\n[native runner](https://github.com/tidydesigns/tidy/blob/main/apps/web/agent-runner/README.md) for agent setup.\nCI uses synthetic fixtures and a read-only token. Report vulnerabilities privately\nusing the process in [SECURITY.md](https://github.com/tidydesigns/tidy/blob/main/SECURITY.md).", "url": "https://wpnews.pro/news/tidy-open-source-paper", "canonical_source": "https://github.com/tidydesigns/tidy", "published_at": "2026-10-12 19:13:44+00:00", "updated_at": "2026-10-12 19:19:29.722893+00:00", "lang": "en", "topics": ["ai-agents", "agent-protocols", "developer-tools", "ai-tools"], "entities": ["Tidy", "Bun 1.3.14", "PostgreSQL 17", "Docker Compose", "Cloudflare Workers", "WXT", "Next.js", "Apache License 2.0"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/tidy-open-source-paper", "markdown": "https://wpnews.pro/news/tidy-open-source-paper.md", "text": "https://wpnews.pro/news/tidy-open-source-paper.txt", "jsonld": "https://wpnews.pro/news/tidy-open-source-paper.jsonld"}}