← All workCase study 03 · Internal platform

People weren’t against tracking. They were against typing it twice.

A content and creative agency had a project management tool nobody updated, so every team kept its own Excel sheet. We interviewed the people involved, found the real problem, and built the replacement: an ~80,000-line full-stack platform.

Client
Content & creative agency
Stack
React · FastAPI · MongoDB
Scope
Research, product, design, full-stack build
Live
Try the demo ↗
PMT product film76 seconds · with soundtrack
0 → 20
Weekly users in two weeks
1×
Data entry per task, down from 3×
~80K
Lines of code, React + FastAPI
600+
Commits shaped by user feedback
(01) The problem

Leadership could see projects. The data was wrong.

Leadership brought in a project management tool to see who was working on what, where time went and where delays came from. A year later it held projects, and very little else.

Every team ran its own Excel sheet alongside it, and the efficiency numbers in those sheets sometimes came out at 200–300%. The aim: find out why people weren’t updating the tool, then give leadership visibility without making the team do more admin.

01

No data. Nobody updated the tool, so leadership was flying blind.

02

Shadow sheets. Each team kept its own Excel file next to the official tool.

03

20–25 minutes. to log 15 minutes of work in the old tool.

04

Entered 3×. Client, project, format, date and SPOC typed again at every level.

(02) User research

One interview per role.

The art director who creates projects, the content lead who starts every deliverable, and an animator who works in long creative sessions. We asked to see their Excel sheets, not just hear about them.

“If writing the actual minimalist took 15 minutes, updating PMT took another 20–25.”

Content lead

“I’m animating and focused. Then someone tells me to update PMT. That breaks the flow completely.”

Animator

“PMT is useful for visibility, but people don’t update things regularly.”

Art director, 12+ years
Persona 01

The Workflow Orchestrator

Art director · 12+ yrs

Wants visibility across projects and makes sure no invoice is missed. Updates other people’s statuses herself.

NeedsEscalation alerts, statuses that update on their own
Persona 02

The Execution Specialist

Content lead · 1.5 yrs

Thinks in primary keys and inheritance. Built the team’s workaround spreadsheet.

Needs“One project number should give the entire workflow.”
Persona 03

The Creative Flow Worker

Animator · 4+ yrs

Logs time at the end of the day as rough estimates. A one-minute video can take 7 hours or 10.

NeedsBatch updates, no timers
(03) Core insight

The tool was built for managers. The team needed speed.

The team wasn’t resisting tracking. They were resisting cognitive overload, repeated entry, interruptions and duplicate admin. The target: as light as Excel, as structured as a PM tool, and as automatic as a workflow engine.

(04) The key decision

Don’t change the behaviour. Move it to a new surface.

The goal was 100% adoption from day one. Every team already did two things daily: managers assigned tasks on WhatsApp, and members logged work in a spreadsheet. PMT keeps both habits and changes where the data ends up.

Members already used

A spreadsheet

So the Work Sheet is a sheet: compact rows, editing in place, dropdowns instead of forms, no modals. Each row fills in the project → deliverable hierarchy behind the scenes.

Managers already used

WhatsApp

Managers keep sending tasklists on WhatsApp. An NLP matcher turns each line into a structured task with the right client, project, deliverable and assignee. Nobody assigns tasks inside PMT.

01Manager sends WhatsApp tasklist02NLP matches client · project · assignee03Task appears on the member’s sheet04Member logs work in the sheet05Leadership sees the dashboard

Five rules from the interviews.

Rule01Minimise repeated entryEvery extra field lowers adoption, so data is inherited, reused and templated.
Rule02Protect flowBatch updates, editing in grid rows instead of forms, and no stopwatch timers.
Rule03Visibility without overheadLeadership sees more while the team updates less.
Rule04Parent → childProject → Deliverable → Subtask → Review → Feedback → Revision, with data inherited at every level.
Rule05Flexible timeRough estimates, end-of-day summaries and categorised effort (core vs non-core).
(05) What we built

Every module, one source of truth.

01

Work Sheet

A spreadsheet-like grid with searchable dropdowns and core/non-core activity types. Log once, and data flows up the hierarchy.

02

Projects & Deliverables

A Kanban board for projects. Deliverables inherit client, AMC, dates and owners.

03

Planning

Daily plans with rollover rules and insights, like flagging a deliverable that keeps repeating as possible rework.

04

WhatsApp ingestion

Natural-language tasklists matched to client, project, deliverable and assignee, learning from every correction.

05

Efficiency & Capacity

Productive hours (working hours minus non-core) compared with a standard time per deliverable type.

06

Approvals, Invoicing, Dashboard

A review flow, invoice tracking so nothing is missed, and a 12-month view of portfolio health.

Architecture end to end: a React SPA, a FastAPI service, MongoDB, and integrations for analytics, push notifications and email, plus a public demo mode that runs on sample data in the browser.

(06) Results

Shipped, used, still improving.

Adoption was almost immediate: weekly active users went from 1 to 20 in two weeks after launch. The team still assigns tasks on WhatsApp and still works in a sheet. Now it all reaches leadership as data.

Every change since has followed the same loop: someone reports friction, we look at the data, we ship a fix.

  • ✓21 peak weekly active users within a month
  • ✓Each task entered once instead of three times
  • ✓600+ commits shaped by user feedback
  • ✓Public demo mode on sample data
Weekly active usersPostHog · Aug–Oct 2026
0510152025Aug 30Sep 6Sep 13Sep 20Sep 27Oct 4Oct 11Oct 18Oct 2521 peak

Dashed segment: a week still in progress when measured.