Orviqa

Six weeks of promoting an open-source tool, and why the record cannot say what worked

7 min readupdated 26 October 2026

The question every maintainer asks is "what worked?" We had six weeks of unusually complete records to answer it with, and the honest answer is that the records cannot.

digline is an open-source regression gate for LLM applications. Its maintainer, Alessandro Prandini, launched it on PyPI on 27 August and then spent six weeks telling people about it, mostly on Reddit. When he agreed to be an Orviqa case study, he handed us the whole record: a Reddit export, his working notes, LinkedIn and Hacker News results, and every release. We turned it into 253 dated rows, joined them to PyPI's release list and daily downloads, and looked.

This post is what that data shows. It is also, deliberately, a post about what it cannot show, because that is what decided how the real experiment is now being run.

Where six weeks of effort went

Promotion actions per week, by channelWeeks start on Monday. The first week holds 4 to 6 September only and the last holds 12 to 14 October. The two times a third party picked digline up are left out, since he did not do them.
  • Reddit
  • Hacker News
  • LinkedIn
  • Repository
  • Direct contact
Show the numbers
RedditHacker NewsLinkedInRepositoryDirect contact
31 Aug110000
7 Sep532300
14 Sep423300
21 Sep332100
28 Sep301100
5 Oct290000
12 Oct15001210

Reddit was 213 of the 253 actions, and 200 of those were comments. The pace peaked in his first full week, at 58 actions, and fell to about 30 a week by October. The last week looks different because it is different: on 12 October he shipped a release, published to the official MCP registry, rewrote the repository's description and topics, and started writing to people directly.

One caution on this chart. The Reddit rows come from a complete export, while most of the rest come from his notes. Reddit is counted in full; the other channels can only be undercounted.

Most comments never mentioned digline

Reddit comments per week, by whether they mention digline194 of 200 comments; six could not be classified from the export and are left out, and two that name it without a recorded link are counted as unlinked.
  • Named and linked
  • Named, no link
  • Didn't name it
Show the numbers
Named and linkedNamed, no linkDidn't name it
31 Aug218
7 Sep5343
14 Sep2236
21 Sep5321
28 Sep4122
5 Oct2916
12 Oct027

Of the 194 Reddit comments we could classify, 153 did not name digline at all. They were answers to other people's questions about evals, judges and CI. 41 named it, and only 20 of those carried a link.

He records naming and linking separately on purpose, and he was right to. A comment that names a tool asks a reader to go and search for it. A link asks for one click. A comment that names neither may still be the most useful thing he did, if it makes his name familiar in rooms where his users are, but nothing in the data can show that, and we will not pretend it does.

Posts: the visible results were small

Alongside the comments he wrote 13 Reddit posts, 8 Hacker News submissions and 8 LinkedIn posts. Where results were recorded, they were these:

WhereWhatBest resultTypical result
Hacker News, Show HN3 submissions1 point2 of 3 flagged
Hacker News, articles5 submissions6 points, 2 comments1 point, no comments
LinkedIn, personal profile4 posts735 impressions1 or 2 reactions
LinkedIn, company page (37 followers)4 posts377 impressionsno engagement from anyone outside
Reddit13 postsnot recordedone removed by moderators for the wrong flair

The most visible result in the whole record was not on that list. One of his essays, "Bad evals, my own", appeared in Python Weekly ten days after the same essay scored one point on Hacker News. One room ignoring a piece of writing says little about the writing.

The download chart that looks like proof

This is the chart that tempts everyone, us included.

digline downloads per day from PyPIDownloads without mirrors, from pypistats. A release day is any UTC day with at least one new digline version on PyPI.
  • Release day
  • No release that day
Show the numbers
Release dayNo release that day
27 Aug2980
28 Aug1300
29 Aug038
30 Aug06
31 Aug1160
1 Sep1320
2 Sep940
3 Sep042
4 Sep026
5 Sep08
6 Sep05
7 Sep025
8 Sep1440
9 Sep2280
10 Sep6390
11 Sep4070
12 Sep031
13 Sep2750
14 Sep043
15 Sep3270
16 Sep2680
17 Sep4410
18 Sep4950
19 Sep2010
20 Sep2840
21 Sep1980
22 Sep2000
23 Sep2960
24 Sep3760
25 Sep2110
26 Sep047
27 Sep3430
28 Sep2240
29 Sep4770
30 Sep7730
1 Oct5060
2 Oct6100
3 Oct0155
4 Oct0169
5 Oct6890
6 Oct091
7 Oct4330
8 Oct071
9 Oct027
10 Oct071
11 Oct035
12 Oct3700
13 Oct0159
Promotion actions per dayThe same days as the chart above. Three actions dated "13 or 14 October" are counted on the 13th.
Show the numbers
actions
27 Aug0
28 Aug0
29 Aug0
30 Aug0
31 Aug0
1 Sep0
2 Sep0
3 Sep0
4 Sep8
5 Sep0
6 Sep3
7 Sep9
8 Sep7
9 Sep14
10 Sep12
11 Sep11
12 Sep0
13 Sep5
14 Sep7
15 Sep12
16 Sep11
17 Sep2
18 Sep13
19 Sep3
20 Sep0
21 Sep2
22 Sep6
23 Sep8
24 Sep11
25 Sep7
26 Sep2
27 Sep1
28 Sep0
29 Sep8
30 Sep7
1 Oct4
2 Oct13
3 Oct0
4 Oct0
5 Oct8
6 Oct0
7 Oct5
8 Oct9
9 Oct7
10 Oct0
11 Oct0
12 Oct17
13 Oct9

Put the two side by side and the story writes itself: he promotes, downloads jump. In the 40 days from his first recorded action to the end of the data, 9,415 of the 10,378 downloads, 91 percent, landed on release days. Now look at what a release does on its own.

Median daily downloads, by days since the last release4 September to 13 October. A day counts from the most recent digline release.
Show the numbers
downloads (median)
Release day (25 days)343
Day after (7 days)71
Two days after (3 days)27
Three days after (2 days)39.5
Four or more days after (3 days)25

On a release day the median was 343 downloads. The next day it was 71, and by the second day it was back to the floor. A new version on PyPI is fetched by dependency bots, by vulnerability scanners and by every CI job that installs the latest version. Some of those downloads are people. The data has no way to say how many.

Why nothing here can be attributed

The problem is not the amount of data. It is how the days fall.

The 40 days from 4 September to 13 OctoberA release day has a new digline version on PyPI; a promotion day has at least one recorded action.
Show the numbers
days
Release and promotion23
Promotion only8
Release only2
Neither7

He released on 25 of the 40 days and promoted on 31, and 23 days had both. These are releases of the main digline package only; the pytest plugin, the MCP server and the provider packages are versioned and released separately, and counting them would only add release days. Only 7 days had neither, and only 3 days were more than three days from a release, too few to say what an ordinary day looks like. Every effect anyone might claim is tangled with every other: a comment posted on a release day, a release announced in a comment, a post written because a release had something to show.

We learned this the hard way. Early on we fitted a regression to these downloads and reported that releases multiplied them six to eight times. He checked it and found the comparison group was three days, two of them in the quiet week before his first post. We withdrew the figure. What survives is the shape above: downloads spike on release days and are gone within a day. Their size, and anything about promotion, is not there.

Stars do not help either. GitHub no longer gives a timestamp for a star, so a star can only be dated to the interval in which it was noticed.

What we are doing instead

The case study's rules were set before any of this was analysed, and this data is why they are strict:

  • Everything above is a record of shape, never evidence. It tells us where he spends his time and which rooms he knows. It does not tell us what worked.
  • The signal is arrivals through tagged links, counted by his site analytics, not stars or downloads. His links were already tagged, but with a parameter his analytics treats as a source rather than a campaign, so six weeks of tags recorded nothing beyond the referrer. Links pasted into Slack, DMs and email arrive with no referrer at all, and that week 39 percent of his visits landed as "unknown".
  • Two weeks of calibration, then a fixed baseline, so the normal day-to-day movement is measured before anything is changed.
  • One intervention per window, with a quiet window after it, and both of us writing down our predictions, hashing them and exchanging the hashes before each window opens.

At his volume, about 30 documentation pageviews a week, no intervention will show up as a rate. What can show up is a rare event with a date and a tag on it: a visit that arrived through a link placed in one room on one day. That is a small claim. It is the first one the data will be able to support.

If you are reading your own numbers

If you promote a project and want to know what worked, this is what his record taught us:

  1. Separate releases from promotion, or at least record exactly when each happened. If every post goes out on release day, downloads cannot tell them apart.
  2. Do not read downloads as people. A release-day spike is mostly machines. Look at the days after.
  3. Tag every link you place, per room, with the parameter your analytics actually reads as a campaign, and check that a test click shows up before relying on it.
  4. Record naming and linking separately. They are different requests to a reader.
  5. Write down what you expect before you look. It is the only way to stop the data agreeing with whatever you already believed.

When the measured half produces a result, it gets its own post, whichever way it falls.

← All posts