A triage tool for PMs who get more signal than they can process.
Teams generate feature requests across meetings, emails, support tickets, and Slack threads. Most of it gets lost or duplicated. IdeaBox pulls it all in, scores it with a configurable AI agent, and gives you a single queue to work from — so you're making decisions, not doing admin.
Ideas move through four stages:
| Stage | What happens |
|---|---|
| Spark | Raw signals land here from connected sources. Triage: keep, group, or discard. |
| Shape | Grouped ideas get scored, refined, and prioritized for delivery. |
| Launch | Shaped ideas become tracked deliverables and push to Jira. |
| Shelve | Completed and rejected ideas stay as searchable institutional memory. |
Optimistic UI throughout. Every action — pin, tag, sort, reorder, dismiss — updates instantly. DB writes happen fire-and-forget in the background. No spinners, no waiting.
Keyboard-first. ⌘I opens a two-step quick-add modal anywhere in the app. Arrow keys navigate the stage picker. Full bulk-action support with keyboard shortcuts.
Configurable AI scoring. The agent panel lets you set weights, write natural-language instructions, and review learned rules per stage. Scores update live as you tune.
Drag-and-drop with persistent rank. dnd-kit handles row reordering in the Shape stage; manual rank order is stored in Supabase and survives page reloads.
SSR with cookie-based auth. TanStack Start server functions read the Supabase session from cookies — no token passing in request bodies, auth works consistently on client and server.
| Framework | TanStack Start v1 — SSR, file-based routing, typed server functions |
| Database / Auth | Supabase — Postgres + GitHub OAuth via @supabase/ssr |
| UI | Tailwind CSS v4 + shadcn/ui + Radix primitives |
| Drag & Drop | dnd-kit |
| Toasts | Sonner |
cp .env.local.example .env.local # add your Supabase credentials + GitHub OAuth app
npm install
npm run dev # → http://localhost:8000Migrations live in supabase/migrations/. Point at a new Supabase project and run them in order.
Built to run on Vercel + Supabase — the natural home for an SSR web app:
- Create a Supabase project and run the migrations in
supabase/migrations/in order. - Import the repo into Vercel. The build outputs to
.vercel/output/(Vercel Build Output API) and is auto-detected — no extra config. - Set the Supabase URL/keys and GitHub OAuth env vars in the Vercel project settings.
🔗 Live demo: https://idea-box-brown.vercel.app/box
Unlike the infrastructure projects in this portfolio — which run via docker-compose up and prove themselves in CI — IdeaBox is a hosted web app: click and try it.
See ITERATION_IDEAS.md — planned features include cross-pull deduplication, a graph-based brainstorm workspace, bi-directional Jira sync, and multi-workspace support.