Developer tools
For open-source software with paid plans: which repo and docs visits turn into customers, not stars.
Open-source software earns from a hosted cloud, commercial licences or support, while many users self-host and never pay. Tally ties each payment to the visits behind it, so the path from the repository to the cloud pricing page is measured instead of inferred from stars.
14 days free, no card needed.
01How they sell
- SubscriptionA hosted cloud version billed monthly or yearly, often by usage tier.
- One-offCommercial licences for companies that can't use the open licence, or a pro edition with extra features.
- UsageCloud plans priced by compute, storage or seats actually used.
02Payments it reads
- StripeCloud plans and commercial licences through Stripe; renewals and usage invoices are read.
- PolarBuilt with open-source maintainers in mind: subscriptions, one-off licences and metered cycles are read, with lost disputes as chargebacks.
- Lemon SqueezyPro editions and licence keys sold through Lemon Squeezy checkout links.
What Tally can't read
- GitHub Sponsors and Open Collective payments aren't read.
- Downloads, Docker pulls and package installs aren't visits or sales.
- Self-hosted installs never pay, so they appear only as docs visitors, never as revenue.
- Support contracts paid by bank transfer against your own invoice aren't read.
03Where buyers come from
- GitHub repositoryThe README's links to docs and cloud pricing carry visitors from the repo; UTMs on them separate README traffic from other GitHub links.
- Self-hosting docsDevelopers reading the self-hosting guide sometimes decide the hosted version is less work, and those docs sit in their path.
- Hacker News launchesRelease posts send developers who star the repo, and some who try the cloud.
- Project Discord or SlackCommunity members reach the cloud from links in pinned messages and announcements.
- Open-source alternative searchesSearches for an open-source alternative to a paid product bring buyers already willing to pay for hosting.
04What Tally answers
Do visitors from the repository buy the hosted version?
GitHub shows as a referrer with visitors and the revenue credited to them; with UTMs on the README's links, the cloud pricing link and the docs link get rows of their own.
Sources with revenueDo self-hosting docs readers end up on the cloud?
Path to purchase lists the pages buyers saw before paying; if self-hosting guides turn up in many cloud buyers' paths, the docs are doing the selling.
Path to purchaseDo commercial licence buyers come from search or from the repo?
Lifetime value by first source gives each source's customers and lifetime revenue, licences and renewals included, so the repo and search are compared on money.
Lifetime valueWhy do some cloud sign-ups have no source?
Coverage lists the reasons revenue isn't linked, such as a cloud sign-up on a separate domain where the visitor's id never reached checkout, with the snippet that fixes it.
CoverageWho bought a commercial licence this month, and how did they find us?
The visitor list shows each buyer's latest source, location, pages and payment; their journey opens every visit from the first, which may be a repo link months ago.
Visitors and journeys
05Numbers worth watching
- Visits before buying
- Visits before the first payment, which counts the docs trips a self-hoster made before paying for the cloud.
- Revenue by source
- Revenue behind GitHub, the community, search and each README link.
- Coverage
- The share of revenue linked to a visit, which suffers when the cloud app lives on another domain.
- Renewals
- Renewals by first source, the measure of whether a launch's cloud customers stay.
06An example
Path to purchase
Last 30 days · 105 of 124 new sales, the ones linked to a visitor
Median time to buy
3days
from their first visit
Median visits
3visits
the one they paid in included
Bought on the first visit
12%
13 of 105
Pages before buying
11
median pages viewed
Where buyers came from, and who closed the sale
105 new sales: where each buyer first came from, and the source credited with the sale.
50% of new sales were credited to the source that first brought the buyer in. Hover or focus a flow for its numbers.
- Googlecredited toGoogle26
- x.comcredited tox.com10
- Other (3 sources)credited toOther (3 sources)10
- Directcredited toOther (3 sources)9
- ChatGPTcredited toChatGPT9
- Other (3 sources)credited toNewsletter9
- Redditcredited toReddit8
- Googlecredited toNewsletter6
6 smaller flows in the table below.
Show the flows as a table
| Brought them in | Credited with the sale | New sales | Share |
|---|---|---|---|
| 26 | 25% | ||
| x.com | x.com | 10 | 10% |
| Other (3 sources) | Other (3 sources) | 10 | 10% |
| Direct | Other (3 sources) | 9 | 9% |
| ChatGPT | ChatGPT | 9 | 9% |
| Other (3 sources) | Newsletter | 9 | 9% |
| 8 | 8% | ||
| Newsletter | 6 | 6% | |
| Direct | 5 | 5% | |
| x.com | 5 | 5% | |
| 3 | 3% | ||
| Direct | 2 | 2% | |
| ChatGPT | 2 | 2% | |
| Other (3 sources) | ChatGPT | 1 | <1% |
Time from first visit to purchase
- 13Same visit: 13 sales (12%), bought in their first visit
- 13Same day: 13 sales (12%), a later visit, under 24 hours after the first
- 301–3 days: 30 sales (29%), 1 to 3 days after the first visit
- 194–7 days: 19 sales (18%), 4 to 7 days after the first visit
- 151–2 weeks: 15 sales (14%), 8 to 14 days after the first visit
- 102–4 weeks: 10 sales (10%), 15 to 28 days after the first visit
- 51–3 months: 5 sales (5%), 29 to 90 days after the first visit
- 03+ months: 0 sales (0%), 91 days or more after the first visit
Pages buyers saw before paying
Share of the 105 buyers who viewed each page before paying
- /pricing96%, 101 of 105 buyers
- /71%, 75 of 105 buyers
- /signup63%, 67 of 105 buyers
- /docs38%, 40 of 105 buyers
- /blog/stripe-fees26%, 28 of 105 buyers
- /compare21%, 23 of 105 buyers
- /changelog8%, 9 of 105 buyers
- /blog/launch-week5%, 6 of 105 buyers
Only new sales count here. Renewals and upgrades belong to the visit that won the subscription, so counting them would count that journey again.
07Setting up
- Next.jsIf the docs and site share a Next.js app, put the tag in the root layout once.
- PolarSet tally_visitor_id in Polar checkout metadata for licences and cloud plans alike.
- If the cloud app sits on another domain, call tally('identify', { email }) at cloud sign-up, so payments there can link by email.
- Put UTMs on every link in the README, so each one shows as its own campaign.
08Questions
Do GitHub stars or sponsors show up?
No. Stars, Sponsors and Open Collective aren't read. Only visits to your site and payments in Stripe, Paddle, Lemon Squeezy or Polar are.
Is a commercial licence renewal credited to the first source?
If it renews as a subscription, yes: renewals take the link of the first payment. A licence bought again as a new one-off payment is a new sale, credited to the visit before it.
Can we hear about each new cloud customer in Discord?
Yes. Sale alerts go to Discord, Slack, Telegram, email or a webhook, each with the credited source.