Payback analytics for solo founders
Ripples connects your traffic, signups, Stripe revenue and Google Ads spend with one script tag, then shows which channels bring customers who stay.
The problem
Knows who paid.
Not where they came from.
Knows what you spent.
Not what it bought.
Knows who visited.
Not which ones mattered.
“Which channel brings customers who actually pay and are still here in two months?”
Ripples is the one tool that holds all three at once: spend, revenue and retention against the channel that brought them.
Payback
Reddit retains 60% and pays back on day 13. Google Ads retains 9% and never does.
Return measured on the day of the click, then reported as if it were the answer.
A customer who pays $29 and leaves in month two did not pay back your ad spend.
Ripples splits retention cohorts by the channel that brought each customer. That join is the product.
What you see
Not just “organic” and “direct”.
Tuesday's spike was a Hacker News thread. Ripples links you to it.
Pre-built. No event definitions, no funnel wizard.
No sessions, no bounce rate, no DAU/MAU.
This month 847 people visited, up 12%. 119 signed up. $2,847 in revenue. Hacker News sent 312 people.
So you know which one deserves your Saturday.
How it works
<script src="ripples.sh/abc123"></script>
Any stack. Or
npx ripples init
for Next.js, Telegram Mini Apps and native.
Open your site in another tab and watch the counter tick. Real time, not "in a few hours".
You get an anonymous dashboard URL straight away. An account is for revenue, payback and retention.
What Ripples connects to
Ripples (ripples.sh) is a web and product analytics tool for solo founders and small teams. You add a lightweight tracking script to your website or app, then optionally connect Google Ads and Stripe. Ripples brings traffic, signups, payments and ad spend into a single dashboard so you can see what is working, and when your marketing actually pays for itself.
A single <script> tag, or
npx ripples init,
records pageviews, referrers, signups and custom events from your website,
Telegram Mini App or native app. No cookies, no setup wizard.
Sign in with Google to connect your Google Ads account. Ripples imports your daily campaign spend through the Google Ads API and combines it with your revenue to show ROAS and payback per channel. Read-only. We never change your campaigns.
Link Stripe, Paddle, Polar or Lemon Squeezy to import payments and subscriptions. Ripples ties each payment back to the visit and channel that drove it, so you can see which sources produce paying customers rather than just clicks.
Rolled your own billing, or would rather not connect an account? Send a revenue event instead, one call per payment. Same attribution, same payback, same free plan. Nothing about Ripples assumes a particular payment provider.
Connecting Google Ads is entirely optional. When you choose to connect it, Ripples
uses Google OAuth to ask for your permission, and requests read-only access to your
Google Ads account (the
https://www.googleapis.com/auth/adwords
scope). Here is exactly what that means:
Ripples' use of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements. Full details are in our Privacy Policy.
Before you get excited
And past roughly $10K MRR you will outgrow us, which is fine. We will help you move. The full list
Pricing
Free until your project crosses $1K MRR. Then $9 a month for one project, or $19 for up to ten. Every plan has every feature.
Free until $1K MRR. No credit card. Nothing gated.