PMS

Lightweight project tracker built for delivery teams, not PMOs. Sprints and tasks are first-class, backlog is one sortable list, and the whole tool is intentionally narrow — nothing else to configure. Audit logs and outbound webhooks pipe status updates into Slack, CI, and the BI warehouse without a custom integration layer. The team had churned through three SaaS trackers in two years before this; a fixed-scope, in-house tool was the point.

PMS — Lightweight project tracker built for delivery teams, not PMOs. Sprints and tasks are first-class, backlog is one sortable list, and the whole tool is intentionally narrow — nothing else to configure. Audit logs and outbound webhooks pipe status updates into Slack, CI, and the BI warehouse without a custom integration layer. The team had churned through three SaaS trackers in two years before this; a fixed-scope, in-house tool was the point.
Overview

PMS is an opinionated project tracker that takes the parts of Linear and Basecamp the client actually used and removes the rest. Sprints, scoped tasks, and a single per-project status thread — nothing else to configure.

The challenge

The team had churned through three SaaS tools in two years. Each one drifted into a configuration burden that swallowed the value. They wanted a fixed, in-house tracker that mapped one-to-one to how their delivery team already worked.

The solution

Node.js + Prisma on PostgreSQL, with a server-rendered React front end. Sprints, tasks, and status updates are first-class entities; everything else is intentionally out of scope. Audit log and webhook hooks for downstream tools.

Highlights
  • 01

    Sprint-native model

    Tasks live inside sprints by default; backlog is a single sortable list, not a forest.

  • 02

    Status threads

    One status thread per project, pinned to the dashboard and emailed weekly.

  • 03

    Webhook out

    Outbound webhooks for task and sprint events to wire into Slack, CI, and BI.