12 — Roadmap

Sprint-by-sprint plan. Each sprint is shippable on its own; later sprints stack on earlier ones. Loosely modeled after the agicore-foundry sprint cadence (small ships, push to production fast, learn).

The first three sprints (0-2) get a creator from "I opened BKA" to "I have a published post on my own infrastructure." Everything after that is polish + extension.


Sprint 0 — Repo scaffold + 4G base

Goal: a 4G app shell that knows it's BKA, deploys cleanly to CF Pages, signs in with Google, and renders an empty dashboard.

Ships:

Out of scope: any actual functionality. This is the skeleton.

Done when: page loads at the URL, sign-in works, all four tabs render placeholder content.


Sprint 1 — Onboarding wizard (steps 1-4)

Goal: a creator can sign in, connect GitHub, pick a handle, and end up with their two repos provisioned.

Ships:

Out of scope: Cloudflare integration (next sprint), publishing (sprint after).

Done when: a brand-new user runs the wizard, ends with two repos in their GitHub account, can re-open BKA without re-running the wizard.


Sprint 2 — Onboarding wizard (steps 5-9) + first publish

Goal: creator completes onboarding through first published post.

Ships:

Out of scope: media uploads (sprint 4), the rich composer (sprint 3).

Done when: brand-new user goes from "sign in" to "my site is live" without leaving BKA.


Sprint 3 — Compose tab (chat-with-doc)

Goal: the rich composer with AI assistance, mirroring agicore-foundry's Library route.

Ships:

Out of scope: media (next sprint), publishing flow (already in sprint 2 in starter form; full version in sprint 5).

Done when: a creator can draft a post end-to-end with AI assistance, draft persists across reloads, conversation can span the draft.


Sprint 4 — Media library

Goal: creator can upload images, audio, video; they end up in the right place (small → repo, large → Releases).

Ships:

Out of scope: video editing, audio editing — BKA isn't an editor for media, it's a publisher.

Done when: creator can upload a video, reference it in a draft, the video URL works in the live published post.


Sprint 5 — Full publish pipeline

Goal: the publish action handles everything atomically, deploys correctly, optionally pings the indexer.

Ships:

Out of scope: viewer template details (next sprint).

Done when: end-to-end publish from BKA to live site in under 90 seconds, the feed validates against the schema.


Sprint 6 — Viewer template

Goal: a real public site for creators, not just a starter index.html.

Ships:

Out of scope: comments, subscribers, custom themes beyond the three.

Done when: a creator's published posts render correctly on their CF Pages site, all routes work, RSS validates.


Sprint 7 — Indexer worker

Goal: the central discovery component is live and functional.

Ships:

Out of scope: federation with other indexers (post-v1), advanced BabyAI specialists.

Done when: a creator can register their feed, the indexer crawls it on cadence, /api/discover returns results.


Sprint 8 — Stats tab

Goal: creator can see how their site is doing.

Ships:

Out of scope: deep analytics, audience demographics, third-party analytics integration (creators add Plausible themselves if they want).

Done when: opening Stats shows real numbers, refreshes on demand.


Sprint 9 — Polish + alpha launch

Goal: BKA is openable, usable, shippable.

Ships:

Done when: an external alpha tester can sign up, onboard, and publish without help.


Sprint 10+ — Comments, subscribers, syndication

Post-v1. Each is its own multi-sprint arc:

Each ships when there's user demand, not on a fixed schedule.


Beyond v1

These are real but deferred until v1 ships + has users.


What's NOT on the roadmap (won't build)

These would each kill the thesis. Roadmap is bounded by them.