Skip to content

rubberduck docs

Scales to zero · 25× faster groupbys · stay on Cloudflare

Deploy

Quick path: wrangler + three Cloudflare bindings (Workers, R2, D1). Needs Workers Paid.

bash
pnpm install
# set account_id, D1 id, R2 bucket in:
#   apps/cf-app/wrangler.toml
#   apps/cf-duckdb/wrangler.toml

cd apps/cf-duckdb
wrangler secret put R2_ACCESS_KEY_ID
wrangler secret put R2_SECRET_ACCESS_KEY
wrangler secret put R2_ACCOUNT_ID

pnpm --filter @rubberduck/cf-app db:migrate:remote
pnpm deploy:cf

deploy:cf ships rubberduck-duckdb (engine + Duckling DOs) first, then rubberduck (gateway with cross-worker DO binding).

Samples

bash
pnpm generate:samples && pnpm upload:samples

Orgs: org_tpch, org_clickbench.

Local lab

bash
pnpm seed && pnpm demo && pnpm memory-boundary && pnpm bakeoff

Docs site

Live: https://rubberduck-docs.pages.dev

First deploy (once per Cloudflare account):

bash
npx wrangler pages project create rubberduck-docs --production-branch main
pnpm docs:deploy

After that:

bash
pnpm docs:dev
pnpm docs:build
pnpm docs:deploy

Scales to zero. 25× faster than D1 on groupbys. No need to go to another provider.