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.
- crates.io — New Rust crates published per day and daily crate downloads.
- 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 | 20% | Direct |
| GitHub PRs Opened | 15% | Direct |
| npm Downloads | 5% | Direct |
| npm New Packages/Day | 8% | Direct |
| PyPI Downloads | 4% | Direct |
| crates.io New Crates/Day | 5% | Direct |
| crates.io Daily Downloads | 2% | Direct |
| RubyGems Daily New Gems | 4% | Direct |
| Product Hunt Launches | 10% | Direct |
| Docker Hub New Repos/Day | 8% | Direct |
| VS Code New Extensions/Day | 7% | Direct |
| Mobile App Dev (RN + Expo + Capacitor) | 12% | Direct |
Historical Data & Interpolation
Some metrics that track cumulative totals (npm 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 every 6 hours. The index score is recalculated after each collection run. The dashboard polls for updates every 5 minutes.