NetBramha Studios · Internal Tool · PM Series 13
Project Delivery Dashboard
A delivery intelligence platform for a design consultancy. Every active project, every open action, every hour logged — visible in one place. Built by the PM who was tired of piecing it together from five different tabs every Monday.
Live · Internal
Built by Sarath MS
@netbramha.com gated
Cloudflare · Netlify · Claude API · Slack
July 2026
↗ project-delivery-dashboard.netlify.app
01
The Monday status update required a PM to open five sheets, two Slack threads, and a timesheet — and still produce a number that was already two days old by the time it was shared.
02
RAG status lived in someone's head. Quality, timeline, effort, and finance were tracked differently by each PM — or not tracked at all. Leadership had no single view.
03
Billable vs non-billable hours were manually reconciled every month from a timesheet nobody updated in real time. Shortage and leave data existed but was buried.
04
Actions assigned in weekly meetings had no home. They lived in meeting notes, got forwarded in Slack, and died quietly by the following Thursday.
📊
Portfolio Dashboard
Active projects with four-dimension RAG status (Quality, Timeline, Effort, Finance), PM workload, open actions table, and a needs-attention alert system.
🤖
AI Review Engine
Per-project AI review powered by Claude. Reads the linked Google Sheet, PM notes, and open actions — generates weekly status, risks, patterns, and concrete suggestions.
Team Utilisation
Weekly Billable / Non-Billable / Leaves bars per month. Billable hours are entered manually by the PM per project per week — so utilisation doesn't drop just because someone took leave. Partial weeks (like W1 in July) prorate correctly against actual working days.
📋
Internal Tasks View
Planned vs actuals for every internal task, grouped by assignee. Five filters — month, function, status (multi-select), person, and free text search. Status filter lets you slice across In Progress and Completed simultaneously.
Actions + Slack
Weekly actions with deadline, assignee, and status. The moment you assign an action, a notification fires to Slack — tagging the person by name in the project channel. No separate step, no copy-pasting into chat.
🔐
Auth + Persistence
Google OAuth gated to @netbramha.com via Cloudflare Worker. All data — projects, RAGs, actions, notes, utilisation comments — stored in Cloudflare KV. Survives redeployments.
01
Sign in with Google
Only @netbramha.com accounts get in. The Cloudflare Worker handles the OAuth exchange, validates the domain, and issues a signed session token. The API key never touches the browser.
02
Link your Google Sheets
Each project links to its tracker (Fixed Bid or T&M template). The utilisation section links to the Employees Timesheet Status sheet. Share as "anyone with link" — the Worker reads them server-side.
03
Set RAGs, PM notes, and Design Director review dates
Expand any project row. Update Quality, Timeline, Effort, Finance with a dropdown. Write a PM summary. Log the last and next Design Director review date directly in the table. Every RAG change is timestamped — the dashboard shows trend arrows (↑↓) based on history.
04
Generate AI review in one click
Click ✦ Generate. The Worker reads the linked sheet, sends everything to Claude, and returns a structured review — current status, key risks, patterns worth noting, and this week's concrete suggestions.
05
Enter billable hours, read utilisation honestly
In Settings, the PM enters committed billable hours per project per week. That number doesn't change when someone takes leave — because the project commitment didn't change. Non-billable and leave hours pull from the timesheet automatically. The weekly chart shows all three, side by side.
06
Everything saves automatically
Projects, RAG history, actions, PM notes, utilisation comments — all written to Cloudflare KV via the Worker on every change. A new session, a new browser, a new deployment: data is always there.
4
Tabs replacing 5+ tools
24+
Team members tracked
3k+
Hours visible per month
0
Manual Monday exports
01
AI that reads the actual sheet, not just the summary
The AI review doesn't just summarise what the PM typed. It reads the linked Google Sheet — task statuses, hours logged, phase progress — combines it with PM notes and open actions, and surfaces things the PM didn't notice. The review quality improves as the sheet improves.
02
One tool, three project types, same interface
Fixed Bid, T&M, and Internal projects all live in the same Projects tab. The RAG framework, PM summary, weekly actions, and AI review work identically across all three. The utilisation section knows which hours are billable and which aren't — automatically, from the sheet structure.
03
Architecture that keeps secrets secret
The Anthropic API key, Google Sheets API key, and OAuth client secret never touch the browser. Every sensitive operation goes through a Cloudflare Worker. The single-page HTML is fully public — it just can't do anything without a valid session token issued by the Worker.
04
Built by the PM who uses it
Every feature in this tool was designed to remove something from a PM's Monday morning. The open actions table, the trend arrows, the Design Director review columns, the utilisation shortage — none of it was speculative. All of it replaced something that was previously done manually or not done at all.
05
Actions that actually reach people
Assigning an action in the dashboard sends a Slack notification instantly — project name, task, ETA, and a real @mention if the person's Slack ID is mapped. The gap between "we agreed on this in the meeting" and "you got notified" is now zero.
"Built because the alternative was explaining to the CEO why the numbers in the deck didn't match the numbers in the sheet."

— Sarath MS · Program Manager, NetBramha Studios

Claude API (claude-sonnet-4) Cloudflare Workers Cloudflare KV Google OAuth 2.0 Google Sheets API Slack Incoming Webhook Netlify Single-file HTML No framework @netbramha.com gated