Analytics / Developer Tools

PRWise - PR Review Analytics Platform

Python Django DRF PostgreSQL pgvector Redis Celery React TypeScript Vite Tailwind CSS Three.js d3-force-3d ECharts Docker Render Google OAuth GitHub App Resend pytest Vitest Playwright
Visit live site →
PRWise - PR Review Analytics Platform

Overview

PRWise pulls GitHub PR data and turns it into something you can look at: physics-driven 3D scenes that answer four questions — how long until someone glances at a PR, what has been sitting stale and needs a nudge, who is doing most of the reviewing, and whether merges actually follow the branch protection rules you set up. Each report is a scene, not a chart. Particles move through pipeline lanes, reviewers show up as gravity wells with PRs orbiting around them, compliance violations slip past guard gates. Privacy constraints are built into the architecture: no leaderboards, everyone is pseudonymous by default, and you have to flip a toggle to see real names — which gets logged every time.

The Challenge

Engineering teams generate thousands of PRs and reviews, but the patterns that matter stay invisible. Is review work piling up on two people while everyone else coasts? Are branch protection rules being sidestepped? How long do PRs actually sit before someone looks at them? GitHub's own dashboards do not answer these. The tools that try either dump raw data with no structure, or build leaderboards that rank developers — which makes people game the numbers and kills trust. Managers need something that shows how the review process is working without turning into a surveillance tool.

The Solution

A Django backend talks to GitHub through one API client. Webhooks fire on PR events, but instead of trusting the payload, they re-fetch the PR's current state via GraphQL — idempotent upserts, so replay is harmless. A resumable backfill covers history with cursor persistence. Every night, a reconciliation sweep picks up anything the webhooks missed. The metric definitions live in a single derive module as pure functions: one PR in, one set of computed facts out. Reports aggregate from those rows, so they cannot disagree with each other. The frontend is React with Three.js and d3-force-3d for physics-driven scenes, with a static HTML fallback when reduced motion is on. PostgreSQL 17 with pgvector handles vector search. Redis 7, Celery workers, Docker Compose for the stack. The role system enforces pseudonyms at member level, named views at manager level behind a coaching tooltip, and every name reveal hits the audit log.

Highlights

4
Physics-driven 3D report scenes
Multi-tenant
Role-based privacy with audit logging
GitHub
Webhook + GraphQL ingestion pipeline
No ranking
Stack-ranking disabled by design

Ready to scale your engineering team?

Tell us about your project and we'll get back to you within 24 hours.

Start a conversation