I needed referral tracking for my SaaS. The options were depressing.
When I checked (early 2026): ReferralCandy started at $59/mo, designed for e-commerce. Rewardful at $29/mo, but that's just the starting tier. FirstPromoter and PartnerStack were priced for larger teams.
I'm a solo founder. My MRR is in the hundreds, not thousands. Every dollar saved is another month of runway.
Here's the thing: I don't need a referral platform. I need to know which users came from which invite link. That's it.
What I Actually Needed
Let me break down the "enterprise referral solution" into what matters:
- Unique links per referrer - So I know who sent them
- Click tracking - How many people clicked
- Attribution - Connect the click to a signup
The first two are literally what URL shorteners do. The third is a query parameter and some code.
The Setup
I created invite links using jo4.io:
https://jo4.io/invite-sarah → myapp.com/signup?ref=sarah
https://jo4.io/invite-mike → myapp.com/signup?ref=mike
https://jo4.io/invite-alex → myapp.com/signup?ref=alex
Each referrer gets a memorable short link. Jo4 tracks clicks automatically. My signup form reads the ref parameter and stores it.
Total cost: $0 (free tier covers this easily).
The Analytics I Get
For each invite link, jo4 shows me:
- Total clicks - How many people hit the link
- Unique visitors - Deduplicated by IP
- Geographic breakdown - Where clicks came from
- Device/browser - Mobile vs desktop
- Referrer - Where the link was shared (Twitter, email, etc.)
- Timeline - When clicks happened
This is more data than I had with the $59/mo tool I tried last year.
Handling Attribution
On my signup page:
// Grab the ref parameter
const params = new URLSearchParams(window.location.search);
const referrer = params.get('ref');
if (referrer) {
// Store it for the signup request
localStorage.setItem('referrer', referrer);
}
On signup submission:
const referrer = localStorage.getItem('referrer');
await fetch('/api/signup', {
method: 'POST',
body: JSON.stringify({
email,
password,
referredBy: referrer || null
})
});
That's it. Now I have a referred_by column in my users table.
What About Rewards?
"But what about paying out referral bonuses?"
I run a report once a month:
SELECT referred_by, COUNT(*) as signups
FROM users
WHERE referred_by IS NOT NULL
AND created_at > NOW() - INTERVAL '30 days'
GROUP BY referred_by
ORDER BY signups DESC;
Then I send PayPal/Wise payments manually. At my scale (< 50 referrals/month), this takes 10 minutes.
When I'm at 500 referrals/month, I'll automate it. Or I'll pay for a tool. But I'll also have the revenue to justify it.
Advanced: UTM Tracking
For power referrers who share on multiple platforms, I give them UTM-tagged variants:
https://jo4.io/sarah-twitter → myapp.com/signup?ref=sarah&utm_source=twitter
https://jo4.io/sarah-youtube → myapp.com/signup?ref=sarah&utm_source=youtube
https://jo4.io/sarah-newsletter → myapp.com/signup?ref=sarah&utm_source=newsletter
Now I know not just WHO referred them, but WHERE. Jo4's analytics show me which links perform best.
The Numbers
After 3 months with this setup:
- 47 referral signups tracked
- $0 spent on referral tools
- $2,820 saved vs. the "affordable" option
- 10 minutes/month on manual payouts
The enterprise tools have dashboards and automation. I have a SQL query and a spreadsheet. At my scale, that's the right tradeoff.
When to Upgrade
I'll pay for a real referral platform when:
- Referral volume exceeds 100/month (manual payouts become painful)
- I need tiered rewards (different rates for different referrers)
- Compliance requires audit trails I can't build myself
Until then, a URL shortener with analytics does 80% of the job at 0% of the cost.
Running a referral program on a budget? Share your setup in the comments.
Building jo4.io - URL shortener with analytics that indie hackers actually use for invite links, affiliate tracking, and campaign attribution.