Up and running in minutes.
Connect Distilled to your GitHub organisation and start tracking how your team ships. No code changes, no manual data entry, just install the app and we'll do the rest.
Before you begin
Distilled reads directly from GitHub, so there's very little to prepare. You'll need:
- A GitHub organisation (or a personal account) where you can install GitHub Apps.
- Permission to authorise the Distilled GitHub App on the repositories you want to track. Organisation owners can install directly; others may need to request approval.
- At least one repository that deploys to a production environment via GitHub Deployments. If you already use GitHub Actions, Vercel, Netlify, Railway, Heroku, or any deployment tool that writes deployment events to GitHub, you're good to go.
Read-only access. Distilled never writes to your repositories. We ask for the minimum permissions needed to read pull requests, deployments, and repository metadata — nothing else, and never your source code.
Setup
The whole setup takes about two minutes. You'll sign in, install the GitHub App, and start capturing delivery data from your next pull request or deployment onward.
-
Create your Distilled account
Head to app.distilledmetrics.com and sign in with GitHub. Your account is provisioned automatically the first time you sign in.
-
Install the Distilled GitHub App
From the onboarding screen, click Install GitHub App. You'll be taken to GitHub to choose the organisation and repositories to connect. You can grant access to all repositories or a specific list; whichever works for you.
-
Wait for your next GitHub event
Distilled doesn't backfill history. We capture delivery data from GitHub webhooks as events happen. So your first metric appears on your next pull request or deployment. Depending on how active your repositories are, that can be minutes, hours, or days.
-
Open the dashboard
As soon as the first events arrive, the onboarding screen hands off to the dashboard. Pick a repository and a time window to see Deployment Frequency, Lead Time, PR Cycle Time, and the rest of your delivery metrics side by side. Trends fill in as your team continues to ship.
Adding or removing repositories? You can update the Distilled GitHub App's access at any time from your GitHub organisation settings. A newly added repository will start contributing metrics on its next pull request or deployment event.
How deployments are tracked
Distilled treats a successful deployment to production as the ground truth for when code ships. We listen to GitHub's deployment_status webhook, which nearly every modern deployment tool emits automatically.
What counts as a production deployment
When GitHub sends a deployment_status event, Distilled records it as a production deployment if:
- Its state is
success. failed or in-progress deployments are ignored until they resolve. - Its environment is recognised as production. Distilled auto-detects production environments by name.
e.g.production,prod,live.
If you don't use GitHub Deployments
You can create deployment events from any CI pipeline with a single API call to GitHub. Our recommendation is to add a step at the end of your production deploy that posts a deployment_status with state: success and environment: production. That's all Distilled needs.
How pull requests are tracked
Distilled receives pull request webhooks from every connected repository and uses them to compute flow and review-cycle metrics in real time.
Events we listen to
- Pull request opened — starts the cycle-time clock.
- Pull request merged — stops the cycle-time clock and marks the PR as complete.
- Pull request closed without merge — excluded from throughput, surfaced only in operational views.
- Draft / ready-for-review transitions — used to distinguish live work from early-stage work in the Open PR panel.
Linking PRs to deployments
When a production deployment arrives, Distilled's attribution service links every pull request merged since the previous production deployment on the same branch. That's what lets us compute Lead Time for Changes — the gap between merge and "in production" — without any manual tagging.
If a merge can't be attributed to a deployment within a reasonable window, we don't guess. The PR is reported as unattributed in the data-quality panel so you always know when lead-time data should be trusted.
What you'll see
The dashboard is organised by what an engineering leader actually needs to know: are we shipping, how fast is it flowing through review, and how much is in flight right now?
Delivery metrics
How often code ships to production. Daily deployment counts plotted over time to reveal cadence and consistency.
How long merged code waits before reaching users. Measured from PR merge to production deployment, reported as a median and p75.
How long work takes from open to merge. The full review-and-iterate loop, reported as a median and p75, to surface bottlenecks in review.
How much work the team completes per week. A weekly count of merged PRs that shows real delivery volume over time.
Work in progress
How much work is in flight right now, broken down into live vs. draft so active review is clearly distinguished from early-stage work.
How long open PRs have been waiting, bucketed by age (<2d, 2–7d, 7–14d, >14d) so stale work rises to the top.
Troubleshooting
The onboarding screen says "Waiting for data" but nothing appears
This is expected until GitHub sends Distilled an event for one of the connected repositories. Because we don't backfill history, the dashboard only unlocks once your team opens a pull request, merges one, or ships a deployment on a connected repository. If activity is quiet, the wait can be hours or days.
If you're sure the repositories are active, double-check that the GitHub App installation completed and that the right repositories were selected. If the install landed on the wrong organisation, reinstall the app from GitHub's installed apps page and choose the right one.
Where's my past activity?
Distilled doesn't import historical pull requests or deployments when you install. It begins tracking from your next GitHub event onward. Trends and averages build up as your team continues to ship. A few weeks of activity is usually enough for a clear picture.
I can see pull requests but no deployments
Distilled only records deployments that arrive as successful deployment_status events tagged with a production-looking environment. Check that your deployment tool creates GitHub Deployments and sets the environment to something like production. The data-quality panel will flag repositories with missing production environments.
Still stuck?
Email hello@distilledmetrics.com with your GitHub organisation name and a brief description of your issue.
Ready to see your delivery?
Sign in with GitHub, install the app, and Distilled starts tracking from your next pull request or deployment.
Get started for free