🃏 Story Points GitHub Create a room →
🕐 Last updated 2026-07-15 | | Ⓜ️ View as Markdown | 🤖 Agent setup

Self-host ("eject")

Story Points is MIT-licensed and designed to be ejected: if the hosted app ever goes away, goes bad, or your company wants its own, three commands put an identical copy on your own Cloudflare account — free plan included. That's the answer to "what's the catch": the license removes the ability for there to be one.

What you need

"Free" is honest at the scale self-hosting is for: you and your teams, estimating a few sessions a week — that's a rounding error against the free-plan quotas. If your copy somehow ends up serving the whole world, you'll graduate to the Workers paid plan (~$5/mo) — a good problem, and still cheap.

The three commands

git clone https://github.com/danielrose7/story-points
cd story-points && npm install
npm run deploy   # runs `wrangler deploy`; prompts `wrangler login` once

That's it. Wrangler prints your copy's URL (story-points.<your-subdomain>.workers.dev) — rooms, themes, the API, docs, and llms.txt all work identically. Your rooms live in your Durable Objects; nothing phones home.

The one honest caveat

Rooms are Cloudflare Durable Objects — the single non-portable piece. "Eject" means to your own Cloudflare account, not to an arbitrary box. There is deliberately no Node/Postgres/Redis abstraction layer: the DO free tier is the landing zone, and keeping the codebase small is what keeps it forkable.

Make it yours

Staying current

Your fork is yours — there's no auto-update and no telemetry. git pull && npm run deploy picks up upstream changes whenever you like.

Questions or improvements? Open an issue — or don't; the MIT license means you never need permission.