Build1 publisher3 min readPublished
Random article IDs put the share of dev.to posts with no reactions at 92%
One dev.to writer sampled 460 August posts by random article ID and found 92% of them with no reaction at all. The tag listing that most corpora are built from turns out to return pages that overlap and run out of order.
The Engineer · Build desk

What happened
- A random draw of dev.to article IDs produced 460 posts published in August, of which 92% had no reactions at all, give or take about two and a half points, and 95.7% had no comments.
- In the curated feed the author normally reads, the 170 August posts sampled had a median of 15 reactions and a mean of 28.8, and not one of them had zero.
- A first corpus built by paging 39 popular tags gathered 82,749 posts but contained only 49% of the August posts the curated feed had already surfaced.
Compiled by The EngineerSomething wrong?How this is made
Why it matters
- constraint Any dev.to study built by paging the tag endpoint samples on the outcome it is trying to explain, so its absolute rates cannot be used and only within-corpus contrasts have a chance of holding.
- decision A writer weighing whether to add a cover image or a fourth tag has to choose between a 45,400-post corpus that overstates every rate and a 460-post sample the author says is too small to slice.
- exposure Anyone who has published reach advice from a tag-paged corpus is exposed to the same seven-point error the author caught in their own first draft.
- capability Fetching random article IDs gives any API consumer a cheap way to check whether a platform's public feed resembles the platform.
dev.to's API will list articles by tag, and paging that listing looks like the supported way to enumerate a corpus, except that the listing is not ordered. Walking twelve pages of the `webdev` tag, page 10 ran from 2026-08-31 down to 2026-08-29 while page 11 ran from 2026-09-13 down to 2026-08-27 [8]. Page 11 therefore held posts newer than anything on page 10, the pages overlapped, and posts went missing between them [9]. The post being hunted for, published 31 August with 60 reactions, was on none of the twelve pages [7]. Forty minutes of paging had already gone into the corpus by then [21].
The gaps skew toward the quiet posts. Posts the listing returned averaged 0.40 reactions and the ones it skipped averaged 0.15, a factor of 2.7, and 19.0% of the included posts had at least one reaction against 5.1% of the excluded, a factor of 3.7 [10][1][2]. So the listing selects on the variable under study.
Those two subgroup rates have a second use. The 460-post random sample had 8% of posts with at least one reaction [3]. If that 8% is the weighted average of 19.0% among listed posts and 5.1% among unlisted ones, the listing covered about a fifth of them: 19.0p + 5.1(1 - p) = 8 solves to p = 0.209 [4]. The stated interval on the 92% is plus or minus about two and a half points, which stretches the same calculation to anywhere between roughly 3% and 39% [3][8]. So it is an order-of-magnitude figure. Read at random, the zero-reaction pile included "Delta E is a distance, not a score" and "How Farm.js compiles React components into direct DOM updates" [4].
The title-and-tag comparisons in the post come off the big corpus, 45,400 August posts, because the random sample is too small to slice [14]. Cover images go with 23.7% of posts getting at least one reaction against 11.2% without [15]. Four tags beat one, 16.0% against 3.5% [18]. First-person titles, ones with "I" or "my" in them, go with 24.7% against 13.9% [16]. For any of those gaps to transfer to the site as published, cover-image use would have to be independent of whether the listing returns a post, and inclusion in the listing already tracks reactions [10]. The post does not test that, and it says the corpus leans optimistic in absolute terms [14].
Some of the standard recommendations came out the other way. Titles beginning with "How" did worse than titles that do not, 12.2% against 15.1% [19]. "Sampling through the listing quietly hands you a rosier site than the real one," the author wrote [11].
The instrument error is documented in the post itself. An earlier draft written off the tag corpus put the zero-reaction share at 85%, and the random-ID figure is 92%, seven percentage points of optimism from the sampling method alone [12][7]. The author also checked whether a fortnight is long enough for a post to finish collecting reactions: the share with any reaction was 13.6% at 14 to 20 days old and 15.0% at 42 to 48 days, with no trend in between [13].
The evidence supports the level but not the effects. The median August post drawn by ID got zero reactions [9], and any percentage published off a tag-paged corpus is too high. Whether the cover-image, first-person and four-tag gaps hold on an unbiased sample is untested, because the post says its 460-post draw is too small to slice [14].
What to watch
- Whether anyone re-runs the cover-image, first-person and four-tag comparisons on a random-ID sample large enough to slice.
- Whether dev.to documents the ordering of its tag listing endpoint or fixes the overlap between pages.
- Whether the next round of dev.to growth advice states which sampling frame produced its percentages.