Skip to content

Adoption kit: one-click deploy, read-only demo, setup screen, README and 0.2.0 changelog - #59

Merged
joelborch merged 6 commits into
mainfrom
growth/adoption-kit
Oct 20, 2026
Merged

joelborch merged 6 commits into
mainfrom
growth/adoption-kit

Conversation

@joelborch

Copy link
Copy Markdown
Owner

Makes Flow quick to try and easy to judge from the README. Draft until the demo is hosted: the README's demo link is still the placeholder DEMO_URL.

What's in it

  • Deploy to Cloudflare button. The committed root wrangler.jsonc is what the button reads: Worker, SPA, Durable Object, R2 and queues on a *.workers.dev address.
    • keep_vars keeps dashboard-set variables across redeploys.
    • The send_email binding is left out until Email Sending is onboarded, so a first deploy can't fail on it.
    • The root pnpm deploy now runs scripts/deploy-worker.mjs. It uses a self-hoster's apps/api/wrangler.jsonc when present and the root config otherwise, so existing setups are unchanged.
    • package.json describes the variables for the button's setup page.
  • Setup screen. A fresh deploy has no Access configured. It used to redirect every 401 to an Access login that doesn't exist on that hostname. Now the public GET /api/setup reports access, dev or unconfigured, and the app shows the three remaining steps with a link to the guide.
  • Read-only demo. pnpm build:demo builds a static SPA on the sample workspace, and pnpm deploy:demo hosts it as an assets-only Worker (demo/wrangler.jsonc).
    • Reads answer from the board, including descriptions and an agent exchange on the sample handoff.
    • Writes toast "this is a read-only demo". A badge links to deploying a real copy, and ?embed hides the badge.
    • The welcome dialog and the early WebSocket are skipped.
  • README: the deploy button, a demo link, light and dark board screenshots, the handoff panel and My Work, and a one-click path in the quickstart.
  • CHANGELOG.md: 0.2.0, the first tagged release, covering everything since the July publish. package.json moves to 0.2.0.
  • docs/assets/social-preview.png: 1280×640, for the repo's social preview setting.
  • CI: builds the demo and dry-runs the one-click config.

Checks

  • pnpm typecheck clean. pnpm test: api 476, core 415, web 107, importer 63, all passing. The web and demo builds are ok.
  • Dry runs ok for the one-click config, the self-hoster config (deploy-worker.mjs picks each correctly) and the demo config.
  • Local runs in a browser:
    • Demo: the board, a deep-linked task panel with its description and agent comments, a write showing the read-only toast, and no console errors.
    • Unconfigured Worker: /api/setup returns unconfigured, and the app shows the setup screen instead of redirecting.

Before merging (needs the maintainer)

  1. Host the demo. Run pnpm deploy:demo on the maintainer's Cloudflare account, then replace DEMO_URL in the README.
  2. Test the button from this branch: https://deploy.workers.cloudflare.com/?url=https://github.com/joelborch/flow/tree/growth/adoption-kit. The docs say Cloudflare "does not fully support monorepos", and Access on a workers.dev hostname is documented but untested here, so only a real run proves it.

🤖 Generated with Claude Code

joelborch and others added 5 commits October 20, 2026 12:08
Demo: `pnpm build:demo` (VITE_DEMO=true) builds the SPA as a static site
on the sample workspace, with no server. Reads answer from the board
(task detail gets a description and, on the handoff, an agent exchange),
writes are turned away as a 403 the store toasts ("this is a read-only
demo"), the welcome dialog and the early WebSocket are skipped, and a
badge links to deploying a real copy (`?embed` hides it). `pnpm
deploy:demo` hosts it as an assets-only Worker (demo/wrangler.jsonc).
The sample data now has delegated tasks and named subtasks, so My Work's
assigned-out rail and subtask rows look real.

Setup screen: a fresh deploy has no Access configured, so every request
401s and the app used to redirect to an Access login that doesn't exist
on that hostname. The public GET /api/setup now reports whether sign-in
is configured ("access", "dev" or "unconfigured"); on a 401 the app asks
it once and, when unconfigured, shows the remaining steps instead, and
stops retrying the socket.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The root wrangler.jsonc is what the Deploy to Cloudflare button reads: it
serves the Worker and SPA from a *.workers.dev address with the Durable
Object, R2 bucket and queues, keeps dashboard-set variables across
redeploys (keep_vars), and leaves out the send_email binding until Email
Sending is onboarded. The root `pnpm deploy` now runs
scripts/deploy-worker.mjs, which uses apps/api/wrangler.jsonc when a
self-hoster has one and the root config otherwise, so existing setups
deploy exactly as before. package.json describes the variables the
button's setup page shows. CI builds the demo and dry-runs the one-click
config alongside the example one.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The README gains the Deploy to Cloudflare button, a link to the
read-only demo, a light/dark board screenshot, the handoff panel and My
Work, and a one-click path at the top of the quickstart. CHANGELOG.md
records 0.2.0, the first tagged release, covering everything since the
initial publish, and package.json moves to 0.2.0. docs/assets also holds
a 1280x640 social preview image for the repository settings.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
COMPARISON.md and CONTRIBUTING.md still counted the original 15; the three
handoff tools brought it to 18 everywhere else.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The README's demo link now points at the hosted read-only demo. ROADMAP.md
lists what's next (docs catch-up, an importer resend flag, @-mentions,
member management, more importers, directory listings) and what's
deliberately out of scope, and the README links it. The MCP server
reports 0.2.0 to match package.json and the changelog.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@joelborch
joelborch marked this pull request as ready for review October 20, 2026 16:27
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@joelborch
joelborch merged commit 3d468ee into main Oct 20, 2026
5 checks passed
@joelborch
joelborch deleted the growth/adoption-kit branch October 20, 2026 16:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant