Methodology
The Tinker Index is a composite metric that tracks developer ecosystem activity across multiple platforms. It measures whether the rise of AI-assisted coding tools is translating into measurably increased software development output.
Data Sources
- GitHub — New public repositories created and pull requests opened per day via the GitHub Search API.
- npm — Daily package downloads and new packages published per day from the npm registry.
- PyPI — Daily Python package downloads via pypistats.org, and new packages published per day from the PyPI registry.
- crates.io — New Rust crates published per day.
- RubyGems — New gem versions published per day, tracking Ruby ecosystem development velocity.
- Product Hunt — New products launched per day, measuring the rate of new software products being shipped.
- Docker Hub — New public Docker image repositories created per day.
- VS Code Marketplace — New extensions published per day, measuring developer tooling creation.
- Mobile App Dev — Combined daily npm downloads for React Native, Expo, and Capacitor — a proxy for mobile app development activity across iOS and Android.
Index Calculation
All metrics are expressed as daily rates of activity. Sources that report cumulative totals (e.g. total npm packages, total Docker repos) are automatically converted to daily deltas (new packages/day, new repos/day) so that every metric reflects the current velocity of development, not just scale.
Each rate metric is normalized to a base-100 index relative to January 1, 2024. A value of 100 means the metric is at its baseline level; 120 means 20% above baseline.
All metrics are direct signals: higher activity indicates increased development output.
The composite index is a weighted average of all normalized metrics, with a 7-day simple moving average applied to smooth out weekday/weekend cycles. Missing data points are handled by re-weighting the remaining metrics proportionally.
Weights
| Metric | Weight | Direction |
|---|---|---|
| GitHub New Repos | 13% | Direct |
| Mobile App Dev (RN + Expo + Capacitor) | 13% | Direct |
| Product Hunt Launches | 11% | Direct |
| GitHub PRs Opened | 9% | Direct |
| npm New Packages/Day | 9% | Direct |
| Docker Hub New Repos/Day | 9% | Direct |
| VS Code New Extensions/Day | 8% | Direct |
| npm Downloads | 6% | Direct |
| crates.io New Crates/Day | 6% | Direct |
| PyPI New Packages/Day | 6% | Direct |
| PyPI Downloads | 5% | Direct |
| RubyGems Daily New Gems | 5% | Direct |
Historical Data & Interpolation
Some metrics that track cumulative totals (npm packages, PyPI packages, Docker Hub repos, VS Code extensions, and crates.io) do not offer historical APIs. For these sources, we anchor the data using discrete milestone counts gathered from reputable public sources — including Wikipedia, official blog posts, ecosystem reports, and registry statistics pages — and linearly interpolate between them to produce daily estimates.
Once live data collection begins, interpolated values are replaced by actual API measurements. Interpolated data points smooth out the growth curve between known milestones, so short-term fluctuations in the index during interpolated periods reflect other metrics with real daily data.
Sources for milestone data include: npm Wikipedia article and replicate API, Docker Index blog posts, Markaicode and ScrumLaunch marketplace reports, lib.rs crate statistics, and the Halotool crates.io tracker.
Update Frequency
Data is collected daily at 6:00 AM UTC via a scheduled cron job. The index score is recalculated after each collection run. The dashboard polls for updates every 5 minutes.
Data Quality
The dashboard displays a data quality percentage next to the index score. This indicates what share of the composite score is derived from live API data versus interpolated historical estimates. A higher percentage means more of the score reflects real-time measurements from source APIs.