virling Pricing Self-host Demo Changelog Agencies GitHub Start the beta
Open sourceWritten in RustSelf-host or hosted

Which channel made the money? And do AI assistants recommend you?

Virling joins every visit to the Stripe, Dodo Payments, Polar or LemonSqueezy payment that followed, so you see revenue per visitor by channel, and which AI assistants send visitors or name you in their answers. Open source: run it on your own server, or let us host it.

The beta is open to everyone. Sign in with your email, no application.

Start the beta Live demo Try with sample data

Self-hosting is free forever. Hosted is $19/month; the first 50 customers get 40% off for life ($11.40/month).

vyoursite.comExample dataLast 30 days
Revenue
$8,412+18%
96 payments from 81 customers
Sep 15Sep 30Oct 14
SourceVisitorsRevenuePer visitor
google.com4,120$3,708$0.90
chatgpt.com310$1,488$4.80
news.ycombinator.com2,050$1,230$0.60
x.com5,840$1,168$0.20
reddit.com1,460$438$0.30

A ChatGPT visitor is worth 24x an X visitor.

01/payment trail

Every payment has a path. Virling draws it.

Click any payment and see the visits before it: where the person first came from, what they read, and the visit that made them buy. Credit goes to the last channel that was not direct.

  • Renewals keep the source of the first payment
  • First touch or last touch, your choice
Pencil drawing: a road from a phone past a signpost, a door and a price tag, to a cash register with an orange receipt
How it looks in Virling
How it looks in Virling
02/channels that pay

Your busiest channel is not your best one.

Visitor counts reward whatever is loud. Put revenue next to traffic and the picture flips: the channel that fills your graph can be the one that pays the least.

  • Revenue per visitor for every channel, page and country
  • Stripe, Dodo Payments, Polar and LemonSqueezy
How it compares

CountersCount visits. Often open source and self-hostable.

HostedTie visits to revenue. Your data stays on their servers.

VirlingTies visits to payments and runs on your server.

03/runs on your box

One binary. Your server. Your data stays put.

Download it, start it, add the tag. Your events and settings sit right next to the binary, and a backup is copying one folder.

Binary
One Rust binary. Linux x86_64 and arm64, macOS, Docker.
Storage
Embedded DuckDB for events, SQLite for settings. No Postgres, no ClickHouse, no Redis.
Script
About 1.4 KB gzipped, one tag in your head.
License
AGPLv3
Payments
Read-only keys for Stripe, Dodo Payments and Polar. LemonSqueezy adds a webhook.

Hosted betaAdd this tag to your site's head.

<script defer src="https://beta.virling.com/v.js" data-site="yoursite.com"></script>
How to install
04/for agencies

Send every client the number they care about.

A weekly report under your brand, every Monday, showing which channels brought paying customers. One account for all your clients. See Virling for agencies

Pencil drawing: client folders, an envelope with an orange wax seal and a calendar with Monday circled
05/a note from the founders

Day one, in public.

We're Deven and Rahul. Virling isn't launched yet. We're building it in the open: the code is on GitHub from the first commit, and we post what we shipped on X every day, including what broke.

The goal is small and stubborn: one honest number for every channel, the money it brought. If that's what you want too, start the beta and email hello@virling.com with what you use today. We read every email.

06/questions

Questions founders ask.

How do I see which marketing channel brings paying customers?

Give every visitor an ID, pass that ID into checkout, and join each payment back to the visits before it. Virling does all three. Add one script tag, connect your payment provider with a read-only key, and the dashboard shows revenue and revenue per visitor for every channel, page and country.

Is there an open-source way to attribute Stripe revenue to traffic sources?

Yes. Virling is open source under AGPLv3 and runs on your own server. It reads Stripe with a restricted, read-only key and credits each payment to the visit that led to it. Dodo Payments and Polar work the same way, and LemonSqueezy does too through a webhook once Virling has an https address.

Which traffic source makes money, and which only brings visitors?

Compare revenue per visitor, not visitor counts. A channel with a small share of traffic can bring most of the money. Virling puts revenue next to traffic for each source, so a launch, a post or a newsletter is judged by what it earned.

How does Virling decide which channel gets the credit?

By default, the last visit in the lookback window that was not direct. You can switch to first touch, and set the window to 30, 60, 90 or 365 days. Renewals keep the channel of the customer's first payment.

Can I self-host revenue analytics?

Yes. Virling is one Rust binary with embedded storage, for Linux, macOS or Docker. There is no Postgres, ClickHouse or Redis to run, and a backup is copying one folder. Self-hosting is free.

Do I need a cookie banner?

That depends on where you and your visitors are. Virling sets one first-party cookie so checkout can carry the visitor ID. Cookieless mode sets none, but then payments can't be linked to visits.

Can I use it today?

Virling is in early development. Releases are on GitHub and run on your own server now, with breaking changes possible until a stable release. The hosted beta is open to everyone: start it at beta.virling.com, no application.

Stop posting where it feels busy.
Post where buyers come from.

Start the beta

Self-hosting is free forever.