Show HN: Boards.md – A project board that writes itself while you build

reindent1 pts0 comments

BOARDS.md — your project board self-updates while you prompt to code

An installable skill · npx skills add reindent/boards<br>The project board that writes itself while you build.

agent session<br>PROJECT.md

main

Agent session any coding agent

you<br>what's left before launch?

agent<br>Four P0 items are still open before launch — reading them from PROJECT.md:

you<br>Let's build T-03, the CSV importer — a couple of customers are blocked on it.

agent<br>Shipped it — CSV upload, parse, validate, insert, with tests. Marking T-03 done and moving it under ## Done, in the same commit as the code.

✎ Created src/import/csv.ts +128 −0

✎ Edited PROJECT.md +1 −1

a1f9c02 feat: CSV importer (T-03)

2 files changed +129 −1

Your board · rendered from the file

Project board<br>P0 · 0/4P0 · 0/3

List<br>Kanban

T-01Wire Stripe checkouttest mode first, then live keys

T-02Rate-limit the public API100 req/min per IP · 429 + Retry-After

T-03CSV importerbulk-import users from a CSV

✓ Done

T-04Email verification on signupdouble opt-in before first login

To-do

T-02Rate-limit the API

T-04Email verification

Doing

T-01Wire Stripe checkout

Done

T-03CSV importer

T-00HTTPS + HSTS

PROJECT.md · working-tree diff

## P0 — before launch

-- [ ] **T-03 · CSV importer** — bulk-import users from a CSV

## Done

+- [x] **T-03 · CSV importer** — shipped 2026-07-04

↻ Replay

Say bye to your project-management tool. Boards is a convention, not a tool — your roadmap lives in a markdown file your coding agent already edits, so the board moves in the same commit as the code it describes. No CLI, no server, no database. The file is the database.

Get Started →

reindent/boards

npx skills add reindent/boards<br>Copy

No CLI<br>No server<br>No database<br>The file is the database<br>git log is the audit trail

Works with Claude Code · Codex · Cursor · Gemini CLI · 70+ agents via the open skills CLI

01 · The board<br>The same file, rendered for humans.

Your agent keeps the markdown honest; a tiny parser turns it into a board you can actually read — as a list, a kanban, or the raw markdown. Mount it in the admin you already have, ship a standalone page, or have your agent render it on demand. Wherever you want it.

List<br>Kanban<br>Markdown

BOARDS.md · Project<br>— rendered from PROJECT.md<br>your admin · or standalone

P0 — before launch<br>0 / 3

T-01Wire Stripe checkoutDoing

Test mode first, then swap to live keys behind an env flag.

created 2026-06-28 · updated 2026-07-03

T-02Rate-limit the public API

100 req/min per IP on /api/*; return 429 with a Retry-After.

created 2026-06-30 · updated 2026-06-30

T-04Email verification on signup

Double opt-in; block login until the address is confirmed.

created 2026-07-01 · updated 2026-07-01

P1 — soon<br>0 / 3

T-05Audit log on admin actions

Who changed what, when — one append-only table.

created 2026-07-02 · updated 2026-07-02

T-06Retry failed webhooks

Idempotency keys + exponential backoff; dead-letter after 5 tries.

created 2026-07-02 · updated 2026-07-03

T-07Per-workspace usage dashboard

Requests, seats, storage — read from the metering table.

created 2026-07-03 · updated 2026-07-03

Done<br>2 / 2

T-00HTTPS redirect + HSTSDone

Shipped 2026-06-25 (9f8e7d6).

T-03CSV importerDone

Shipped 2026-07-04 (a1f9c02).

Backlog

T-08Referral program + credits

T-09SSO (SAML) for teams

T-10Dark mode

To-do

T-02Rate-limit the public API

T-04Email verification on signup

T-05Audit log on admin actions

T-06Retry failed webhooks

Doing

T-01Wire Stripe checkout

Done

T-00HTTPS redirect + HSTS

T-11Password reset flow

T-03CSV importer

## P0 — before launch<br>- [ ] **T-01 · Wire Stripe checkout** — test mode first, then live keys<br>- [ ] **T-02 · Rate-limit the public API** — 100 req/min per IP · 429 + Retry-After<br>- [ ] **T-04 · Email verification on signup** — double opt-in

## P1 — soon<br>- [ ] **T-05 · Audit log on admin actions** — who changed what, when<br>- [ ] **T-06 · Retry failed webhooks** — idempotency keys + backoff<br>- [ ] **T-07 · Per-workspace usage dashboard** — requests, seats, storage

## Done<br>- [x] **T-00 · HTTPS redirect + HSTS** — shipped 2026-06-25<br>- [x] **T-03 · CSV importer** — shipped 2026-07-04

Three lenses on one file: List follows the priority sections, Kanban re-buckets by status, Markdown is the raw source. Mount the renderer in your admin, ship a standalone page, or have your agent render it on demand — the board file doesn't care. The only new syntax is the [~] "doing" glyph.

02 · How it works<br>The board is a byproduct of building.

Your agent reads and writes files while it works. Boards just points that habit at a markdown file — so keeping the roadmap current costs nothing extra.

The file is the database

A board is any markdown file you name — PROJECT.md, MARKETING.md, RELEASES.md, whatever stream of work you want to track — checked into the repo. No schema, no migration, no SaaS. Want the history? Run git log.

Atomic with the code

The agent edits the board as it builds, so the board diff lands in the...

board project agent file boards done

Related Articles