Extensions, plugins and apps
For Obsidian plugin makers: which threads and videos turn users into paying supporters.
An Obsidian plugin is installed free from the community directory; its maker earns from a paid tier, a hosted service the plugin talks to, or supporters who chip in. Tally reads the payments taken on your own site and the visits before them, so you can see whether the forum, a README or a note-taking video brought the people who pay.
14 days free, no card needed.
01How they sell
- SubscriptionA monthly plan for a hosted part of the plugin, such as sync, publishing or an AI backend, which costs you money to run.
- DonationsPay-what-you-want support through a Stripe Payment Link or Polar, from users who want the plugin kept maintained.
- One-offA supporter licence that adds extra features for good, paid once.
02Payments it reads
- PolarPopular with open-source maintainers for subscriptions and one-off supporter products; orders, cycles and refunds are read.
- StripePayment Links with a customer-chosen amount for support, and subscriptions for the hosted service.
- Lemon SqueezySupporter licences delivered as keys the plugin checks; orders and refunds are read.
What Tally can't read
- Support through GitHub Sponsors, Buy Me a Coffee or Ko-fi isn't read.
- Installs and downloads from Obsidian's community plugin directory aren't read.
- What the plugin does inside a vault is never counted; the snippet runs only on your website, not inside Obsidian.
03Where buyers come from
- Obsidian forumShare-and-showcase threads link to your site; forum.obsidian.md as referrer shows what those readers went on to pay.
- GitHub READMEThe README is often the first thing people read about the plugin, and its link to your site carries github.com.
- Note-taking YouTubeChannels walking through vault setups send viewers with a workflow to copy, who install first and pay later.
- RedditPosts asking for a plugin that does one thing lead to recommendations with your link, a small but well-aimed source.
04What Tally answers
Upgrades start inside Obsidian. Why do they look like Direct?
Obsidian is a desktop app, so links it opens reach your site with no referrer. Readable Direct sets returns from checkout and shared links apart, and a UTM on the plugin's settings link gives in-app visits a campaign.
Readable DirectWhich forum thread or video brought our supporters?
The referrer and campaign breakdowns carry the revenue behind each row, so a showcase thread and a video can be compared on money, not clicks.
Sources with revenueDo subscribers to the hosted service stay?
Lifetime value by first source shows customers, renewals and repeat rate, so you can see whether forum-found subscribers outlast those from a video.
Lifetime valueDo people read the page explaining the paid tier?
What they read gives engaged time and scroll depth on each page for buyers and for everyone else; if buyers read the pricing explanation to the end and others don't reach it, move it up.
What they read
05Numbers worth watching
- Renewals
- Monthly renewals of the hosted service by first source, the number that decides whether it pays for its servers.
- Revenue by source
- The money behind the forum, GitHub, YouTube and Reddit, small sources that are easy to misjudge by visits alone.
- Conversion
- Paying visitors over visitors per source, which shows whether a showcase thread brings supporters or just curious readers.
06An example
Reading time
38s
median per pageview
Scroll depth
59%
average depth, of 27,216 views measured
Read to the end
27%
of measured views reached 90% or more
What they read
29,264 pageviews · last 30 days
Open a page to see how far down people read it, and how buyers read it before paying.
- /8,756 views52% scrolled on average21s reading time, median
- /pricing5,526 views78% scrolled on average58s reading time, median
58s
reading time, median per view
78%
scrolled, on average
5,526 views · 5,194 with a measured depth
How far down they read
Share of measured views that scrolled at least this far
- 25% — reached a quarter of the page:95%
- 50% — reached half of the page:84%
- 75% — reached three quarters of the page:69%
- 90%+ — reached the end of the page:48%
Buyers before paying vs didn't buy
- Buyers, before paying149 views · 107 buyers96% scrolled on average,1m 41s reading time, median
- Didn't buy5,342 views · 3,815 visitors61% scrolled on average,44s reading time, median
35 views by buyers after paying are left out of both.
Buyers are visitors whose first sale came after viewing this page; only their views before that payment count.
- /docs2,727 views47% scrolled on average1m 12s reading time, median
- /blog/stripe-fees2,237 views64% scrolled on average2m 34s reading time, median
- /compare1,184 views71% scrolled on average49s reading time, median
- /changelog861 views38% scrolled on average33s reading time, median
Reading time runs only while the tab is visible and the visitor is active; it's the median per view. A view with no engagement report counts as 0s of reading. Its scroll depth is unknown, so it's left out of every scroll figure rather than counted as 0%. 27,216 of 29,264 pageviews have a measured depth.
07Setting up
- Any HTML siteIf the plugin's site is a static page, on GitHub Pages or anywhere else, the tag goes in its head like any HTML page.
- PolarOpen Polar checkout with tally_visitor_id in its metadata, so subscriptions to the hosted service link with high confidence.
- Put utm_source=obsidian on the upgrade link in the plugin's settings tab, so visits opened from the app stop landing in Direct.
08Questions
Can Tally count installs from the community directory?
No. Installs happen inside Obsidian and aren't reported to you. Tally counts visits to your own site and the payments behind them.
We take support through GitHub Sponsors. Is it counted?
No. Sponsorships there aren't read. A Stripe Payment Link with a customer-chosen amount, or a Polar product, would be read and linked to the visit.
Should the plugin load the snippet?
No. The snippet belongs on your website. It counts visitors to pages, and a plugin running inside a vault isn't a page visit.