Self-hosted on Cloudflare$29 once20 left at this price→

Know which tweet made you $1,240.

Revenue-first analytics that ties every Stripe, Polar and Dodo sale to the post, search or link that brought the buyer. Pay once, run it on your own Cloudflare, keep your data.

All sales are final · License terms

yourapp.com
9 online
Conversion
0%
+8.4%
Revenue/visitor
$0
+17.6%
Bounce rate
46%
+2.1%
Session time
3m 8s
+9.0%
Online
9
 
Fig. 1The dashboard for a sample site. Click Visitors or Revenue to toggle them, hover the chart, and click a referrer to filter everything by it.
Already counting revenue for
ChainYourMacRankBullHumanitFadersShelfyNoMouseModeVibeshotsBGpeel
01Traffic

Where visitors come from, and what they read.

Sources, referrers, campaigns, pages, countries and devices, each ranked. Traffic from ChatGPT, Claude and Perplexity gets its own channel. Every page shows the revenue it led to.

Pages

Last 30 days

Pageviews
0
+7.5% vs previous
Sessions
0
+11.2%
Avg. bounce
0
+1.4%
Avg. duration
1m 43s
+6.0%
Revenue
0
+31.6%
All pages
PageTrendViewsSessionsBounceDurationRevenue
Fig. 2Pages, with a trend line and the revenue each one led to. Search to filter.
02Revenue

Every payment, credited to the visit that brought it.

Connect Stripe, Polar or Dodo per website and DataBull matches each payment, renewal and refund to the visitor's source, even weeks later. Past payments import on day one.

Revenue

Last 30 days

Revenue
0
+31.6% vs previous
Sales
0
+18.0%
Avg. order
0
−4.2%
Attributed
0
to a source
SourcesRevenue
CountriesRevenue
Fig. 3Revenue per day, by source and by country.
03Readable Direct

No more mystery "Direct".

Most tools dump a big share of traffic into Direct. DataBull splits it into what actually happened, and names the in-app browsers that hide where a visit came from. Hover a row.

InstagramTikTokRedditTelegramXGoogle app
Fig. 4Direct traffic, split into typed, shared link, checkout return and in-app browsers.
04Lifetime value

Which sources bring customers worth keeping.

Customers are grouped by the source that first brought them, with every renewal, upgrade and repeat purchase added up since. See which channels bring buyers who stay.

Lifetime value by first source

Customers acquired in the last 90 days

SourceCustomersLifetime revenueAvg. valueRenewalsRepeat
news.ycombinator.com41$6,150$150$2,31022%
x.com96$9,408$98$2,95014%
google.com73$6,716$92$1,87011%
chatgpt.com28$2,380$85$6109%
reddit.com37$1,813$49$2405%
Fig. 5Lifetime revenue per source, renewals included. Sample data.
05Realtime

Who is on your site right now.

A live map with each visitor's page, location and source. Open any visitor to see every session and page that led to their purchase. Click a visitor to find them on the map.

Realtime
visitors in the last 5 min
9
Visitors
Fig. 6Realtime view. New visitors arrive every few seconds.
06Alerts

A ping the second a post takes off.

Every sale lands in Telegram with the source that produced it. When a source sends four times its usual traffic, you hear about it while you can still reply.

DataBull botbot · online
💰 New sale · YourApp · $49.00
🔗 x.com · Organic Social
📍 🇺🇸 Austin · Desktop · Chrome
🧭 first visit 2 days ago · landed on /pricing14:02
🚀 Traffic spike · YourApp
142 visitors from news.ycombinator.com in the last hour, 9× the usual.
👀 landing on /blog/how-we-got-1000-users · 31 online now14:20
📊 YourApp · yesterday
👀 1,204 visitors (+38%) · 💰 $612 from 13 sales09:00
💰

Every sale, with its source

Referrer, campaign, country and the buyer's journey. Refunds too.

🚀

Spike alerts

A source at 4× its usual hourly traffic triggers one alert, with the page people land on.

📊

Daily digest

Visitors, revenue and top sources at the hour you choose.

Fig. 7Telegram notifications for sales, spikes and a daily digest.
07Setup

Live in three minutes.

One script tag, guides for your platform, a prompt for your AI editor, and a live check that confirms the first visit. Then connect payments, per website.

01

Add your site

We detect your platform and fill in the name.

02

Paste one tag

Or copy the AI prompt. Route changes are tracked.

03

Connect payments

Stripe, Polar or Dodo. History imports instantly.


      
Waiting for your first visit…Open your site once. This updates by itself.
Fig. 8Install guides for every platform, and a live check for the first visit.
08Self-hosting

Your Cloudflare. Your data. One command.

DataBull deploys into your own Cloudflare account: a Worker serves the dashboard, the API and the tracking script, and a D1 database keeps your visitors and sales. Cloudflare's free plan covers most indie sites. No servers to babysit, nothing on our side to go down.

Terminal
$ npx databull@latest
Your Cloudflare accountNothing leaves it
⚡WorkerDashboard · API · script
🗄️D1 databaseVisitors · sales · goals
⏱️CronSync · alerts · digests
🌍 Your visitors Payment webhooks Telegram
  • $0 on Cloudflare's free plan for most sites
  • Unlimited websites and events, no caps from us
  • Updates with one command, data stays put
Fig. 9npx databull@latest deploys DataBull into your Cloudflare account. Your data never touches our servers.
09Pricing

Pay once. Or let us host it.

One payment, every feature, every future update. It runs on your own Cloudflare with unlimited websites and events. The launch price rises as licenses sell.

Self-hosted · lifetime
$29 one time

Launch price. Goes up as licenses sell, to $99 for good.

20 of 20 left at $29 · then $49
  1. $29first 20
  2. $49next 20
  3. $69next 20
  4. $99after that
  • Unlimited websites and events
  • Stripe, Polar and Dodo attribution
  • Your data stays in your Cloudflare account
  • Telegram sale pings and spike alerts
  • Every future update, free
Buy DataBull · $29

All sales are final · License terms

Installs on your own Cloudflare in about three minutes; most sites fit the free plan. How it works

Hosted

Hosted — coming soon

The same DataBull with zero setup: we run it for you, on a monthly plan with a free tier. Want to know when it opens?

  • Nothing to install or update
  • Pay monthly or yearly
  • Move to self-hosted any time
Notify me

One email when it opens. Nothing else.

10FAQ

Questions

What does "self-hosted" mean?

DataBull runs on your own Cloudflare account. Visitors, sales and keys never touch our servers. Cloudflare's free plan covers most indie sites; very busy sites need the $5/month Workers plan, paid to Cloudflare, not us.

Which payment providers work?

Stripe, Polar and Dodo Payments. Each website connects its own account, so one site can be on Stripe and another on Polar. Past sales are imported, new ones arrive instantly by webhook.

Do I need to write code?

Not for analytics: one script tag, with guides for Next.js, Framer, Webflow, WordPress, Shopify and more, plus a prompt for Cursor or Claude Code. Payment links are tagged automatically. Only checkouts created by your server need two metadata fields.

I use DataFast. Is switching hard?

DataBull understands data-fast-goal attributes, window.datafast() calls and datafast_visitor_id checkout metadata, so most sites only swap the script tag.

What about cookies and GDPR?

Pick per website: first-party cookies (best attribution), fully cookieless (nothing stored in the browser, a daily-rotating salted hash), or cookieless until your banner reports consent. No data is ever sold or shared.

How is this different from Google Analytics or Plausible?

Those show traffic. DataBull starts from money: which post, search or referrer produced paying customers, and what they are worth over time.

Can I use it for client websites?

Yes. Unlimited websites, each connected to its own payment account.

What do I need to install it?

Node.js 22 or newer and a Cloudflare account (the free plan is fine). Run npx databull@latest, paste your license key, click Allow when Cloudflare asks, and your dashboard opens about three minutes later. See every step.

How does the launch price work?

The first 20 licenses are $29, the next 20 are $49, the next 20 are $69, and after that it's $99. Same product and the same lifetime updates at every step: buying early just costs less.

Can I get a refund?

No. All sales are final, because the license key and the full product are delivered the moment you pay. Try the live demo above, read the install guide, and email any question before you buy. If the installer gives you trouble afterwards, we'll help you get it running.

Find out which of your posts pay the bills.

One script, one payment connection, and you'll know by tomorrow.

All sales are final · License terms