Extensions, plugins and apps
For cross-platform desktop apps: which sources sell on Mac, Windows and Linux.
A cross-platform desktop app ships one codebase to three operating systems and sells a licence or a sync plan from one website, alongside the platform stores. Tally ties each payment made on your site to its visit and counts downloads for each platform as goals, so you can see which sources bring buyers on each.
14 days free, no card needed.
01How they sell
- SubscriptionA plan for sync, collaboration or updates, used on every computer the buyer owns whatever its system.
- One-offA perpetual licence covering all platforms, often with a year of updates included.
- FreemiumA full free app for one device, with the paid tier adding sync or a second machine.
02Payments it reads
- PaddleMerchant of record for licences and plans sold worldwide; transactions, renewals and upgrades are read.
- StripeSync plans through Checkout started from the app's account page; renewals and refunds are read.
- PolarChosen by open-core apps whose builds live on GitHub; orders, subscription cycles and refunds are read.
What Tally can't read
- Copies sold in the Mac App Store or the Microsoft Store are paid out by those stores and aren't read.
- Installs from Flathub, the Snap Store or a package manager skip your site, so they're counted only if those users visit.
- Licences sold through a bundle or deal site aren't read.
03Where buyers come from
- GitHub releasesOpen-core apps publish builds on GitHub, and github.com as referrer brings developers who later buy a plan.
- Linux communitiesLinux forums and subreddits send people who care about a native build and are glad to pay for one.
- Alternative searchesPeople leaving a single-platform app search for an alternative that runs everywhere and land on your comparison page.
- Product HuntA launch brings downloads on every platform in one day; per-platform goals show which ones those visitors chose.
04What Tally answers
Which platform's downloads turn into buyers?
Make each platform's download its own goal. The goals view gives every goal's completions, converting visitors and the revenue of the visitors who reached it.
Goals and funnelsDo sync subscribers from GitHub stay?
Lifetime value by first source shows customers, renewals and repeat rate, so GitHub's subscribers can be compared with search's after a few cycles.
Lifetime valueWhich alternative-to page sells best?
The page breakdown gives each comparison page the revenue of the visitors who landed there, beside its visit count.
Sources with revenuePurchases from inside the app don't link. Why?
Coverage gives each unlinked sale's reason, such as a checkout opened from the app without a browser visit. Calling tally('identify', { email }) on your site's sign-in lets those link by email.
CoverageWhat do buyers do between downloading and paying?
Each visitor's journey lists their visits, pages and engaged time, so a buyer who downloaded, came back for the docs and then paid can be followed step by step.
Visitors and journeys
05Numbers worth watching
- Goal conversion
- The share of visitors who download for each platform, which shows where your audience is.
- Lifetime value by first source
- Average lifetime revenue by first source, the number that shows which channel brings sync subscribers who stay.
- Coverage
- The share of revenue linked to a visitor; purchases started inside the app pull it down unless they pass through your site.
06An example
Lifetime value by first source
All time: every payment since 1 Nov 2025. The period above doesn't apply.
| First source | Customers | Lifetime revenue | Average value | Renewals | Repeat rate |
|---|---|---|---|---|---|
| GoogleOrganic Search | 325 | $40,560 | $125 | 845 | 52% |
| ChatGPTAI Assistants | 126 | $21,071 | $167 | 391 | 61% |
| Direct | 178 | $18,216 | $102 | 374 | 44% |
| NewsletterEmail | 94 | $17,362 | $185 | 357 | 69% |
| Hacker NewsOrganic Social | 84 | $11,741 | $140 | 227 | 55% |
| x.comOrganic Social | 115 | $10,190 | $89 | 161 | 33% |
| RedditOrganic Social | 84 | $9,016 | $107 | 160 | 40% |
| PerplexityAI Assistants | 42 | $6,342 | $151 | 101 | 57% |
| Every source | 1,048 | $134,498 | $128 | 2,616 | 51% |
A customer is a visitor linked to a sale, counted under the source of their first visit. Lifetime revenue is net of refunds and chargebacks; repeat rate is the share who paid more than once (a renewal, an upgrade or another purchase). $13,167 from 426 payments not linked to a visitor is in no row.
07Setting up
- Next.jsIf the site runs on Next.js, the tag goes in the root layout, covering the download, docs and account pages.
- PaddlePass tally_visitor_id in customData when the site opens Paddle checkout, so licences and plans link with high confidence.
- Give each download button its own goal, such as data-fast-goal="download_linux", so platforms can be compared.
08Questions
Can we compare platforms in Tally?
Through goals. A download goal per platform gives completions, converting visitors and revenue for each, which is the honest way to compare them.
Do sales in the platform stores show up?
No. Apple and Microsoft sell and pay out the copies bought in their stores. Only payments through Stripe, Paddle, Lemon Squeezy or Polar are read.
Are Linux users who install from Flathub counted?
Only when they visit your site. An install from a software centre never touches your pages, so it isn't a visit.