Kanban task board for TrickFire Robotics, linked to GitHub. A project is a board; its columns are workflow stages; cards can optionally link to a GitHub issue or pull request from a repo attached to the project. Closing or merging on GitHub auto-closes the linked card - one-way only, GitHub stays the source of truth.
| Layer | Choice |
|---|---|
| Framework | Next.js 16 - App Router, React Server Components, output: "standalone" |
| Database | SQLite via Drizzle ORM + better-sqlite3 |
| Auth | better-auth - GitHub OAuth only, gated to trickfirerobotics org members |
| GitHub sync | A single GitHub App (@octokit/app, @octokit/webhooks) - doubles as the sign-in OAuth provider and the automation/webhook client |
| UI | Tailwind CSS v4, shadcn/ui, Lucide + Primer octicons for GitHub-accurate issue/PR badges |
| Drag & drop | @dnd-kit |
| Real-time | Server-Sent Events off an in-process event bus (single-instance deploy, no Redis needed) |
| Package manager | pnpm |
Full documentation site: docs.trickfirerobotics.com/tasks - getting started, architecture overview, and a page per framework/library explaining what it is and how we use it here.
- Getting started
- Architecture overview
- GitHub App setup - one-time manual setup, needed before sign-in or sync work at all
- Contributing - workflow, branch naming, code style, PR guidelines
pnpm install
cp .env.example .env.local # then follow docs/guides/github-app-setup.mdx
pnpm db:migrate
pnpm devOpen http://localhost:3006.
Production runs as a systemd service (trickfire-tasks) on tfserver, deployed automatically on push to main via a self-hosted GitHub Actions runner. Manual deploy: pnpm deploy (runs scripts/deploy.sh).