stak.sh_
early preview, data collection in progress

How stak.sh works

stak.sh collects usage data for every tool it tracks from npm, PyPI, crates.io, RubyGems, NuGet, Docker Hub, Homebrew, deps.dev, GitHub, GH Archive, Stack Overflow questions, Wikipedia, Hacker News, the Stack Overflow, JetBrains and State of JS surveys, and the stacks developers publish on stak.sh. It turns those numbers into comparable shares, combines them and charts the result week by week.

tools tracked
30
data platforms
11
data feeds
217

one per tool, platform and metric

Example sources

Every tool is measured on all the sources that apply to it: a JavaScript library adds its npm downloads to GitHub, Stack Overflow, Wikipedia and the rest, a database adds its Docker Hub pulls, a language its survey results.

SourceMeasuresKnown biasesAttribution
npm, PyPI, crates.io, RubyGems, NuGetpackage downloads per day (RubyGems and NuGet are daily differences of cumulative totals)inflated by CI, mirrors and bots; only comparable inside one ecosystempublic registry APIs; pypistats.org and the PyPI BigQuery dataset
Docker Hubimage pulls per day (difference of totals)automated pulls dominateDocker Hub API
Homebrewinstalls in the last 30 daysmacOS and Linux Homebrew users only; opt-in analyticsformulae.brew.sh analytics
deps.devnumber of dependent packagescounts published packages, not applicationsdeps.dev by Google (Open Source Insights)
GitHubnew stars per day (GH Archive), issues and pull requests opened, contributors, star totalstars measure attention, not use; archive names repositories as they were at the timeGitHub REST API; GH Archive on BigQuery
Wikipediadaily pageviews of the English article, human traffic onlyneeds an article; depends on article namingWikimedia REST API
Stack Overflowquestions per tag per dayoverall volume fell sharply after LLM assistants; only shares are meaningfulStack Exchange API; content CC BY-SA
Hacker Newsstory and comment mentions per term; mentions in the monthly "Who is hiring?" threadsambiguous names (Go, React, Swift, ...) may be noisy; no classifier currently runs for any sourceAlgolia HN Search API
Surveysyearly usage share from the Stack Overflow, JetBrains and State of JS surveysself-selected respondents; a single point per yeareach survey's license (Stack Overflow survey: ODbL)
stak communityverified, opted-in profiles with the tool on their stack, per weeksmall and biased toward whoever signs up; past stints entered today change last year's numbersstak.sh

From raw numbers to shares

Downloads, stars and pageviews don't share a unit, so each week a tool's value is divided by the total across the tools in its category that the same source covers. That makes sources comparable and cancels platform-wide drift, such as a registry getting busier overall. A source only counts towards scores when it covers every tool in the category; partial sources are still charted.

Values are stored daily and shown per ISO week, because downloads have a strong weekday cycle. The current, unfinished week is never shown. A day above 5× a tool's 28-day median is treated as a spike and left out of shares, and charts mark where each source's data begins, so a new source doesn't look like growth.

Lenses and the stak index

Shares are grouped into three lenses, each the weighted mean of its sources. The stak index combines the lenses, so it adds up to 100% across a category, and every value can be traced back to its sources on the tool page.

adoption50%

Is it being installed and used?

crates.io downloadsdeps.dev dependentsDocker Hub pullsHacker News job postsHomebrew installs (30d)npm downloadsNuGet downloadsPyPI downloadsRubyGems downloadsstak communitySurveys

attention25%

Are people looking at it?

GitHub starsHacker News mentionsWikipedia pageviews

community25%

Are people building and asking around it?

GitHub contributorsGitHub issuesGitHub pull requestsStack Overflow questions

Hacker News counts ×0.5. A source without data for a tool that week counts as zero.

Publish your stack

Developers can sign in with GitHub and publish the tools they use, with how long and how well they know them, on a public profile at stak.sh/@you.

Those profiles power the stak community signal: how many verified developers actually have a tool on their stack each week. It feeds the adoption lens next to downloads and surveys, so every published stack makes the trends a little more honest.

Publish your stack

example

@ada

Ada Devlin

Backend engineer, mostly Go and Postgres

Community data and privacy

Only aggregates are published. A profile counts when its GitHub account is at least 90 days old with a public repository (re-checked at every login) and the owner has not opted out. Every community number comes from at least 30 profiles; below that, charts say "not enough data". Co-occurrence counts profiles currently using two tools; a migration is one profile that ended a tool and started another in the same category within six months. History is rebuilt every night, so community series are not a record of what people said at the time.

Catalog changes

Shares are relative to a category, so adding a tool changes every other tool's past shares in that category. The log below explains jumps in a chart.

Show the catalog log