Work Tracker
Bobi Labs · productized
Role
PM-builder · productized internal tool
Duration
Built Q1 2026 · Phase 4–6 in flight
Status
Live · fork-template model
The problem
Contract studios (including ours) live or die on whether the client believes the work is real. Generic Kanban tools (Trello, Linear, Notion) show task status. They don't show why the studio is invoicing what it's invoicing. Most studios end up duplicating their work into a slide deck or invoice spreadsheet, which gets out of sync immediately and erodes trust over time.
We wanted one tool where the scope, build notes, attached files, and partial-invoice tracking lived next to each task. Where the client could see, at any time, what was done, what's in flight, what changed, and what's been billed against it. And where each item's history was a real audit trail, not a Slack scroll.
The approach
Built as a fork-template, not a multi-tenant SaaS. Per-client deployment means each studio fork gets its own Supabase project, its own RLS posture, its own data lifecycle. Clean ownership at the data layer. Forks customize branding, integrations (Telegram, Drive), and field-level extensions without changing the canonical core.
Per-task detail panel: scope text, build notes, file attachments, chat thread, invoice line items. The detail panel IS the artifact. The studio composes it as work happens, the client reads it whenever they want.
Optional Telegram bot per project. Optional Google Drive integration via service account. Both are real-tested integrations the studio uses daily, not slideware.
What shipped
- ▪Phase 2: Auth, role-gated kanban CRUD, per-task detail panel, real-time chat.
- ▪Phase 3: @mention notifications via Telegram bot, Google Drive file attachments, invoice tracking per item.
- ▪Phase 4 (in flight): Files surface refinement, deliverables tab, public read-only client view.
- ▪Phase 5 (planned): Telegram-only client view (no app needed for the client side).
Stack & decisions
Next.js + TypeScript
App Router. The detail panel is the heaviest client surface; everything else is RSC.
Supabase + RLS
Per-instance project. Auth is Supabase Auth. RLS gates everything by org membership + role.
TanStack Query
Optimistic updates on the kanban + detail panel. Real-time channel subscriptions for the chat.
Telegram Bot API
Service-account bot per project. @mentions push to Telegram with deep-links back to the task.
Google Drive API
Service account picks up file attachments without users having to share their Drive. Per-project folder isolation.
What you won't see in screenshots
Public read-only demo lives at `bobilabs.dev/worktracker/tracker`. Anon-SELECT-only RLS, daily reset to seed at 3am UTC, Telegram bot dormant on demo. Click around without signing up.
Have something we should ship?
60-minute scoping call, then a clear plan for how we'd approach it.