All selected work
06 / Case study Internal tool · Client retainer

A roadmap tool deliberately not synced to anything.

For a client retainer, a small app that shows priorities and a rough timeline on swimlanes, kept intentionally disconnected from the ticket systems on either side.

Where it stands Built and used · whether it stuck not yet known
System / 06Designed the tool and its boundaries
01 Problem → decisions → result
The problem

What needed
solving.

Work on the retainer was tracked on several platforms on both the brand side and the agency side, and none was used well. A task the client submitted in the project-messaging tool could only carry an estimate as plain text, which the client could also see. Putting the same work in an issue tracker was too heavy for telling a client when to expect delivery.

The calls that mattered

What I decided,
and why.

  1. 01

    Split the difference: priorities and a rough timeline on a swimlane view, and nothing more.

  2. 02

    Keep it disconnected on purpose. The app doesn’t sync to either system, so nobody maintains a mapping between its items and tasks elsewhere; the audiences differ, and so does the detail each needs.

  3. 03

    Optimize for re-prioritizing quickly rather than for precision: the point is a quick, rough idea of timeline.

Where it landed

What shipped,
and what isn’t proven.

It was built and used on the retainer. Not proven: who kept using it, whether it stuck, and what it replaced in practice.

Stack
ReactViteExpressSQLite
Next case study A skill that turns a statement of work into a schedule and tickets.