Theme

Start for free

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.

Start for free

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

  1. 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 funnels
  2. Do 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 value
  3. Which 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 revenue
  4. Purchases 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.

    Coverage
  5. What 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

Example

Lifetime value by first source

All time: every payment since 1 Nov 2025. The period above doesn't apply.

First sourceCustomersLifetime revenueAverage valueRenewalsRepeat rate
GoogleOrganic Search325$40,560$12584552%
ChatGPTAI Assistants126$21,071$16739161%
Direct178$18,216$10237444%
NewsletterEmail94$17,362$18535769%
Hacker NewsOrganic Social84$11,741$14022755%
x.comOrganic Social115$10,190$8916133%
RedditOrganic Social84$9,016$10716040%
PerplexityAI Assistants42$6,342$15110157%
Every source1,048$134,498$1282,61651%

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.

Fig. 1Lifetime value by first source on the example site. For a cross-platform app, compare sources once sync plans have renewed a few times.

07Setting up

  1. Next.jsIf the site runs on Next.js, the tag goes in the root layout, covering the download, docs and account pages.
  2. PaddlePass tally_visitor_id in customData when the site opens Paddle checkout, so licences and plans link with high confidence.
  3. 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.