markdown-first · agent-driven · git-native

Your todos are just files in your repo.

Bastaa Todo Hub renders the markdown your coding agent already commits — a live board sitting on top of version-controlled files. No database to trust, nothing to export. Delete the app tomorrow and your work is still in todo/, in git, exactly where it always was.

Invite-only — accounts are created by your admin.

todo.bastaa.ailive
todo/ahmet.md
## In Progress
- [x] (P1) Wire up install callback
## Waiting — Action
- [ ] Reconnect Bastaa repos
## Done
- [x] Ship favicon set
In Progress
Waiting — Action
Done
agent committed · todo/ahmet.md · "move to In Progress"

The problem

The moment a human stops updating it, the board starts lying.

Standups exist to reconcile a truth the tools already lost. Tickets go stale the second real work starts — someone forgets to drag the card, and the board drifts from reality. A board only stays honest if keeping it honest was never a human's job.

A normal ticket board

Migrate billing webhooks

stale · 6dupdated 6 days ago

Fix onboarding redirect

status: ? · unassigned

Bastaa live

Migrate billing webhooks

in progress · just now

Fix onboarding redirect

done · committed 2m ago

The check-in gate

The board stays honest because the agent has no choice.

Every coding session opens with a gate. Before it writes a line of code, your agent moves a task to In Progress and commits the change. Backlog → In Progress → Waiting → Done isn't a habit you nag for — it's a rule baked into the session prompt.

claude-code — session

$ claude < check-in-gate.md

# todo/ahmet.md

- ## Backlog · Wire up install callback

+ ## In Progress · Wire up install callback

✓ 3f9a1c committed · todo/ahmet.md

enforced at session start · not optional

Zero lock-in

Delete Bastaa tomorrow. Your backlog is still in git.

There is no proprietary store holding your work hostage. Todos live as todo/<you>.md in the repo they belong to, versioned like everything else. git blame your backlog, review it in a PR, grep it from your editor.

todo/ahmet.md — source
## In Progress
- [ ] (P1) Ship rate limiter

## Waiting — Mail
- [ ] Auth review
      (waiting: security)

## Done
- [x] Add favicons
git diff
  ## In Progress
- - [ ] (P1) Ship rate limiter
+ - [x] (P1) Ship rate limiter
+       (done: 2026-07-19)
  ## Done

no DB · no export button needed · it's already yours

Live, read-only boards

One source. Every lens.

Overview across the whole org, per-project, per-person — the same files, framed three ways. Boards auto-refresh on a 30s beat and jump instantly when a GitHub push webhook fires. Managers watch; nobody has to ask for a status update again.

OverviewProjectPerson
Search todos…
auto-refresh 30s
In Progress

Ship rate limiter

@ahmet

Fix webhook retry

@ali

Waiting — Action

Design review

@ahmet

Done

Add favicons

@ali

Move to Postgres

@ahmet

GitHub App, scoped

Install once. See only the repos you grant.

No personal tokens pasted into a settings box, no org-wide keys floating around. Install the Bastaa GitHub App, choose the repositories on GitHub's own screen, and the Hub reads through short-lived, per-installation tokens that expire in an hour.

Bastaa Todo Hub

github.com/apps/bastaa-todo-hub

read-only · scoped
bastaa-ai-backend
bastaa-ai-frontend
internal-secrets
installation tokenexpires in 1h

push → board updated · webhook, not polling

Teams & roles

Visibility that matches the org chart.

Managers run their company: create projects, invite people by email, assign membership. Members see exactly the projects they're on and the teammates they share them with — nothing more. Onboarding is an invite link with a set-password step, not a password passed around in Slack.

platform_adminmanages companies
managerteam · projects · GitHub
membertheir boards only

invite sent · set-password link · no shared passwords

Your work is already in your repo. Come see it rendered.

Bastaa Todo Hub is invite-only — your admin sets up your account. Sign in and your boards are already populated from the markdown your agents have been keeping all along.

Accounts are created by your admin — no public signup.