patchwork-dashboard
v1.0.0
Published
Patchwork — production-grade developer project dashboard & Kanban board (Next.js 15 + Supabase + @dnd-kit). Scaffolds a fully working app with one command.
Maintainers
Readme
🧩 Patchwork Dashboard
Production-grade Developer Project Dashboard & Kanban board — Next.js 15 (App Router) · Supabase (PostgreSQL + RLS) · @dnd-kit · Tailwind CSS 4.
Scaffold a fully working copy of the app in one command:
npx patchwork-dashboard init my-board
# or
npm install -g patchwork-dashboard
patchwork-dashboard init my-boardThe CLI copies the complete app, creates your .env.local, and walks you through the 4-step setup (Supabase project → migrations → keys → run).
What you get
- Kanban board per project with drag-and-drop (
@dnd-kit), optimistic updates + rollback on failure - Projects, tasks, statuses, tags, notes — full CRUD
- Configurable status columns per project (Backlog → Todo → In Progress → Review → Done by default; add/rename/reorder/delete with safe task reassignment)
- Automatic activity audit log — every task field change (status, priority, assignee, due date, title, description) is logged server-side in the same transaction
- Server-side overdue computation with overdue badges everywhere
- Fast combinable search & filters (title/tags text search + status/priority/assignee/tag filters + "overdue only" toggle)
- Dark mode and a fully responsive, touch-friendly mobile UI (1-tap status change on small screens)
- Atomic multi-step mutations via Postgres RPC functions — no partial/orphaned data ever
- 35 automated tests (
npm test)
Security architecture
Browser (UI only, zero secrets)
→ Next.js Server Actions ('use server')
→ Supabase service-role client (server-only)
→ PostgreSQL (RLS enabled on every table)- The Supabase service role key never reaches the browser.
- The optional
/api/*external integration surface is fail-closed: withoutPATCHWORK_API_SECRETset, every/api/*request is rejected with a 500.
Setup (what init guides you through)
- Create a free project at supabase.com
- Run both files in
supabase/migrations/in the Supabase SQL Editor (in order) - Fill in
.env.local:NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key SUPABASE_SERVICE_ROLE_KEY=your-service-role-key PATCHWORK_API_SECRET=optional-external-api-secret npm install && npm run dev→ http://localhost:3000
Commands
patchwork-dashboard init [dir] # scaffold the app
patchwork-dashboard help # show helpInside the scaffolded app:
npm run dev # dev server
npm run build # production build
npm test # 35-test suiteDeploy
Push the scaffolded app to GitHub and import it into Vercel. Set the same env vars in the Vercel dashboard (never commit real values).
Links
- Source & docs: https://github.com/v01dst/patchwork
- Author: v01dst (Discord:
9p.1) - License: MIT
