GitHub stars

A star is a bookmark, not a vote

On GitHub, starring a project is the rough equivalent of bookmarking it: a small public signal that someone found it worth remembering. It is the only feedback most open source gets, so it ends up carrying more weight than it can really bear — in README badges, in funding decisions, in whether a maintainer feels like continuing.

I write DuckDB extensions, and across 102 repositories they've collected 1,869 stars since 2014. This page is an attempt to ask whether that number still means anything, by looking at the one thing a running total can never show: the rate.

Cumulative counts are flattering by construction — they only go up, so they always look like success. Arrivals per month can fall while the total climbs, and here they are falling.

Report compiled September 18, 2026.

Last 7 days
0
-100% vs prior 7 days
Last 30 days
44
-24% vs prior 30 days
Last 90 days
127
-12% vs prior 90 days
Last 12 months
612
-43% vs prior 12 months

GitHub stars per month

Bars are new stars arriving each month. The grey line is the running total, drawn on its own scale.

Watch them disagree. The line rises smoothly the whole way across, which is the version of this story that gets put in a slide deck. The bars peak and then decline. Both are true; only one is informative.

0 80 159 2022-11: 2 stars2023-01: 1 stars2023-03: 1 stars2023-04: 1 stars2023-05: 1 stars2024-02: 2 stars2024-03: 1 stars2024-05: 14 stars2024-06: 18 stars2024-07: 63 stars2024-08: 17 stars2024-09: 33 stars2024-10: 159 stars2024-11: 103 stars2024-12: 73 stars2025-01: 100 stars2025-02: 107 stars2025-03: 107 stars2025-04: 49 stars2025-05: 74 stars2025-06: 90 stars2025-07: 80 stars2025-08: 76 stars2025-09: 56 stars2025-10: 68 stars2025-11: 63 stars2025-12: 55 stars2026-01: 52 stars2026-02: 59 stars2026-03: 36 stars2026-04: 53 stars2026-05: 51 stars2026-06: 41 stars2026-07: 33 stars2026-08: 50 stars2026-09: 43 stars 202320252026

What a new project earns in its first 90 days

The previous chart has an innocent explanation: a portfolio that stops growing stops attracting attention. This one removes that excuse. For every repository, count the stars it earned in its first 90 days, then group by when it launched — each bar is the median for that half-year.

It controls for portfolio size, and asks the question that matters to anyone deciding what to build next: does releasing a new thing still reach anybody? A falling line means the constraint has moved from making things to being found.

One family of repositories is excluded — I published a protocol as a hundred-odd separate repositories over a couple of months, and counting each as an independent launch would drop every median to zero for bookkeeping reasons rather than reception. The count under each bar shows how many launches it rests on; the recent half-years are thin, and the most recent will shift as those projects age past 90 days.

2014-H1: median 0, mean 0.0, n=1 0 2014-H1 n=1 2017-H1: median 0, mean 0.0, n=1 0 2017-H1 n=1 2019-H2: median 0, mean 0.0, n=1 0 2019-H2 n=1 2020-H1: median 1.5, mean 1.5, n=2 1.5 2020-H1 n=2 2020-H2: median 1, mean 1.1, n=12 1 2020-H2 n=12 2024-H1: median 17, mean 18.4, n=5 17 2024-H1 n=5 2024-H2: median 11.5, mean 20.4, n=18 11.5 2024-H2 n=18 2025-H1: median 5, mean 10.1, n=7 5 2025-H1 n=7 2025-H2: median 5, mean 5.3, n=15 5 2025-H2 n=15 2026-H1: median 2.5, mean 8.8, n=6 2.5 2026-H1 n=6

Which projects are still moving

Each project's last 90 days set against the 90 before that. Together the charts above describe the portfolio; this one shows that the average hides real divergence — some projects are genuinely picking up while others have gone quiet, and the aggregate rate is the sum of both.

Repository Total 90d Prior 90d Trend
airport 349 8 14 cooling
quackscale 24 6 18 cooling
cronjob 55 5 3 accelerating
datasketches 52 5 4 accelerating
a5 17 5 0 accelerating
stochastic 28 4 7 cooling
textplot 28 4 2 accelerating
redis 17 4 1 accelerating
httpserver 285 3 9 cooling
clickhouse-sql 94 3 4 cooling
crypto 31 3 1 accelerating
adbc_scanner 21 3 7 cooling
marisa 16 3 2 accelerating
bitfilters 10 3 1 accelerating
vgi-matchrecognize 3 3 0 accelerating
openprompt 62 2 2 steady
radio 44 2 6 cooling
fuzzycomplete 30 2 2 steady
evalexpr_rhai 27 2 0 accelerating
clickhouse-native 22 2 2 steady
rapidfuzz 19 2 2 steady
vgi-rpc-python 14 2 4 cooling
hashfuncs 14 2 0 accelerating
inflector 10 2 1 accelerating
jsonata 8 2 3 cooling
json_schema 5 2 1 accelerating
vgi-rpc-java 2 2 0 accelerating
vgi-fixedformat 2 2 0 accelerating
shellfs 96 1 3 cooling
lindel 67 1 6 cooling
tributary 57 1 2 cooling
duckdb-cron-extension 29 1 0 accelerating
geosilo 25 1 24 cooling
webmacro 16 1 0 accelerating
quickjs 15 1 3 cooling
pcap 14 1 1 steady
tera 9 1 1 steady
tsid 7 1 0 accelerating
vgi-rpc-typescript 2 1 0 accelerating
vgi-quant 2 1 1 steady
vgi-java 1 1 0 accelerating
vgi-rust 1 1 0 accelerating
vgi-go 1 1 0 accelerating
vgi-rpc-rust 1 1 0 accelerating
vgi-rpc-website 1 1 0 accelerating
vgi-charset 1 1 0 accelerating
vgi-asn1 1 1 0 accelerating
vgi-tiktoken 1 1 0 accelerating
vgi-iso20022 1 1 0 accelerating
cupola 1 1 0 accelerating
vgi-barcode 1 1 0 accelerating
vgi-units 1 1 0 accelerating
vgi-symbols 1 1 0 accelerating
vgi-compress 1 1 0 accelerating
vgi-xslt 1 1 0 accelerating
vgi-scholar 1 1 0 accelerating
vgi-pdf 1 1 0 accelerating
vgi-java-introduction-docs 1 1 0 accelerating
vgi-tantivy 1 1 0 accelerating
vgi-code 1 1 0 accelerating
vgi-image 1 1 0 accelerating
vgi-tika 1 1 0 accelerating
vgi-poi 1 1 0 accelerating
vgi-odata 1 1 0 accelerating
vgi-media 1 1 0 accelerating
vgi-ical 1 1 0 accelerating
airport-docs 1 1 0 accelerating
httpclient 80 0 3 dormant
python-flight-server 17 0 3 dormant
vgi-xgboost 1 0 1 dormant
vgi-crontimes 1 0 1 dormant

How this is measured

GitHub records when each star was given, so this is a reconstruction of every individual star rather than a sample or an estimate. Those timestamps are reduced to per-repository daily counts when the page is built — 1,868 of 1,869 reported stars, last rebuilt September 18, 2026. The top two repositories hold 34% of all stars.

Two limits worth stating. Stars that were later removed are invisible to this method — the API returns only current stargazers, which accounts for the small gap between the reconstructed and reported totals. And GitHub exposes no link between a star and where the visitor came from, so nothing here attributes a star to a referrer; anything that claims to is guessing.