Getting Started

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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

Deployment Frequency

How often code ships to production. Daily deployment counts plotted over time to reveal cadence and consistency.

Lead Time for Changes

How long merged code waits before reaching users. Measured from PR merge to production deployment, reported as a median and p75.

PR Cycle Time

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.

PR Throughput

How much work the team completes per week. A weekly count of merged PRs that shows real delivery volume over time.

Work in progress

Open PR Count

How much work is in flight right now, broken down into live vs. draft so active review is clearly distinguished from early-stage work.

PR Ageing

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