1
0 Comments

I spent 18 months building a CRO tool to $2M ARR. Here's everything I learned about bootstrapping SaaS.

From side project to 1,000+ paying customers without VC funding. The honest breakdown of what worked, what failed, and what I'd do differently.

Timeline:

- Month 1-3: Scratching my own itch (Shopify store attribution was broken)

- Month 4-6: Built MVP, used it myself, saw results

- Month 7-9: First 10 customers from Reddit (free audits)

- Month 10-12: $5K MRR, quit my job

- Month 13-18: $167K MRR ($2M ARR run rate), 1,047 customers

What I built:

Zyro is attribution and conversion optimization for e-commerce. It solves a specific problem: analytics tools like GA4 miss 20-30% of traffic, which breaks attribution and makes you cut winning ad campaigns.

We do server-side tracking + intent-based personalization + AI-powered A/B testing.

The Backstory:

I ran a Shopify store (coffee equipment). We were spending $25K/month on Meta ads with "1.4x ROAS" according to GA4. Almost cut the budget entirely.

On a hunch, I checked Shopify's revenue data vs GA4. Huge discrepancy. Dug into server logs. Found that 30% of conversions weren't being tracked at all (ad blockers + iOS 14).

When I fixed the tracking, Meta's real ROAS was 3.8x. We'd almost killed our best channel because of bad data.

Built the tool for myself. Realized every e-commerce brand has this problem. Turned it into SaaS.

---

### MONTH 1-3: THE SCRATCH-YOUR-OWN-ITCH PHASE

What I built:

- Node.js server-side tracking layer

- Custom attribution engine (position-based model)

- Basic dashboard showing real vs reported ROAS

- Integration with Shopify and Meta

Tech stack:

- Backend: Node.js + Express + PostgreSQL + Redis

- Frontend: React + Tailwind

- Hosting: DigitalOcean droplets (cheaper than AWS early on)

- Analytics: Plausible (self-hosted)

Time investment:

- Nights/weekends only (still had day job)

- ~25 hours/week

- 3 months = ~300 hours

Cost:

- Servers: $40/month

- Domains: $12/year

- Tools (GitHub, Figma, etc.): $50/month

- Total burn: ~$100/month

---

### MONTH 4-6: MVP FOR REAL USERS

Key decision: Didn't build a marketing site first

I went straight to r/shopify and posted:

> "I built a tool that shows you the traffic Google Analytics is missing. If you're spending $5K+/month on ads and your attribution feels wrong, I'll audit your store for free. DM me."

Got 87 responses. Did 43 audits (rest were tire-kickers).

The audit process:

1. They give me GA4 + Shopify access (read-only)

2. I install a tracking script on their store

3. Wait 48 hours for data

4. Show them side-by-side: GA4 vs reality

5. Average finding: 27% of conversions were invisible

Conversion rate: 23% (10 paying customers)

These people already had the problem. They knew attribution was broken. I just showed them proof and offered to fix it.

Pricing:

- Started at $99/month (way too low)

- Raised to $299/month (still too low)

- Raised to $499/month (about right for the value)

Revenue: ~$3K MRR after 6 months

---

### MONTH 7-9: FINDING PRODUCT-MARKET FIT

Big lesson: Don't sell "attribution"—sell "stop wasting ad spend"

Nobody wakes up thinking "I need better attribution." They wake up thinking "Why does Facebook say 1.2x ROAS when I'm barely breaking even?"

Changed the messaging from technical (server-side tracking, multi-touch attribution) to outcome-focused (see which ads actually work, stop cutting winning campaigns).

Traction channels that worked:

1. Reddit (r/shopify, r/ecommerce): 60% of early customers

- Be genuinely helpful, never spam

- Answer questions, provide value

- Mention tool only when directly relevant

2. Product Hunt: Launched in Month 8, #3 product of the day

- Got 147 signups

- 11 converted to paid (7.5% conversion)

- Still get 2-3 signups/week from PH

3. Direct outreach: Found stores with obvious attribution problems

- Used BuiltWith to find Shopify stores spending on Meta ads

- Sent personalized emails: "Hey, noticed you're spending on Meta. Are you seeing [specific problem]?"

- 4% reply rate, 1% conversion rate

- Time-consuming but worked

4. Word of mouth: Nothing beats happy customers

- First customer referred 4 others

- Implemented referral program (10% commission)

- Now generates ~15% of new customers

What didn't work:

- Twitter (spent 3 months tweeting, got 14 followers)

- LinkedIn ads (burned $2K, got 3 demos, 0 customers)

- Content SEO (too slow for early stage)

- Cold email (terrible response rate, felt spammy)

Revenue: $14K MRR by month 9

---

### MONTH 10-12: QUITTING THE DAY JOB

Hit $60K MRR in Month 11. That's when I quit.

Everyone says "wait until you have 6 months runway." I had 2 months. Nerve-wracking but it worked out.

Why I quit early:

- Customer support was suffering (doing it nights/weekends)

- Feature requests were piling up

- Competition was launching similar tools

- Calculated risk: If it failed, I could get another job

What changed when I went full-time:

1. Response time: Same-day support instead of 2-3 days

- Churn dropped from 8% to 4%

- NPS went from 42 to 67

2. Shipping velocity: 2-3 features/week instead of 1/month

- Users noticed

- Referrals increased

3. Sales: Could actually take demo calls

- Enterprise deals started closing

- ACV went from $500 to $1,800

Biggest challenge: Loneliness

Going from office (200 people) to home office (just me) was brutal. Joined a co-working space in Month 12. Best decision—having people around matters.

---

### MONTH 13-18: SCALING TO $2M ARR

Key metrics:

| Month | MRR | Customers | Churn | CAC | LTV |

|-------|-----|-----------|-------|-----|-----|

| 13 | $87K | 312 | 5% | $420 | $8,200 |

| 14 | $103K | 387 | 4% | $380 | $9,100 |

| 15 | $124K | 453 | 4% | $340 | $9,800 |

| 16 | $142K | 538 | 3% | $310 | $11,200 |

| 17 | $161K | 627 | 3% | $290 | $12,100 |

| 18 | $167K | 701 | 3% | $280 | $12,800 |

What drove growth:

1. Self-serve dashboard (finally)

- Previously, users booked demos (me manually showing them around)

- Built onboarding flow, video tutorials, in-app tooltips

- Converted 40% of trials vs 15% with demos

- Freed up 20 hours/week

2. Annual plans

- Started offering 20% discount for annual

- 34% of customers chose annual

- Massive cash flow improvement ($850K up-front)

3. Expansion revenue

- Added usage-based pricing (per-visitor tiers)

- 23% of customers upgrade within 6 months

- Expansion MRR now equals new customer MRR

4. Partner channel

- Signed 8 Shopify agencies as resellers

- They recommend us to clients

- 11% commission (lower than direct but zero CAC)

- Generates $18K MRR now

Team:

- Month 13: Just me

- Month 15: Hired part-time support person (VA, $1,500/month)

- Month 17: Hired full-time engineer ($120K/year)

- Month 18: Hired customer success (full-time, $85K/year)

Expenses:

- Servers: $800/month (scaled up)

- Salaries: $17K/month (by month 18)

- Tools (AWS, etc.): $600/month

- Marketing (very little): $2K/month

- Total burn: ~$20K/month

- Net profit: ~$147K/month

---

### WHAT I LEARNED

1. Solve a hair-on-fire problem

E-commerce brands were actively cutting ad budgets based on wrong data. That's a $10K+/month mistake. They'll pay $500/month to fix it without blinking.

If your tool saves them more than it costs, pricing is easy.

2. Don't build features, build outcomes

I kept wanting to add "cool" features (AI recommendations! Predictive analytics! Slack integration!).

What customers actually wanted: "Make this number go up."

I'd add a feature, nobody used it. I'd fix a bug that made a number more accurate, people would thank me profusely.

Build what moves the metrics, not what's interesting to build.

3. Charge more than you're comfortable with

$99/month felt safe. $299/month felt scary. $499/month felt greedy.

But here's the thing: Only $499/month customers stick around. The $99 people churn in 3 months. The $499 people stay for 2+ years.

Higher price = better customers = lower churn = higher LTV.

Plus it turns out: The value we provide is worth way more than $499. We're finding $5-20K/month in lost revenue. They should be paying us $5K/month. We're undercharging.

4. Content is overrated (for B2B SaaS)

Everyone says "start a blog, rank on Google, get inbound leads."

I wrote 40 blog posts. Got 200 organic visitors/month. Converted 0.

You know what worked? Showing up in r/shopify every day and helping people for free. That built trust. That got customers.

SEO is a long game. When you're at $0 MRR, you need customers now, not in 18 months.

5. Launch imperfect

My MVP didn't have:

- A proper onboarding flow (I walked people through on Google Meet)

- Even a marketing site (just a Notion page)

But it solved the problem. That's all that matters.

I see people spending 6 months on "just one more feature" before launching. You're not building an iPhone. Ship it and iterate.

6. Customer support is marketing

Every support ticket is a chance to:

- Make someone love you (or hate you)

- Learn what's broken

- Find your next feature

- Get a testimonial

I respond to every email within 2 hours. People are shocked. They write testimonials unprompted. They refer friends.

Great support is a competitive moat.

---

### WHAT I'D DO DIFFERENTLY

1. Raise prices faster

Took me 12 months to get pricing right. Should've tested $499+ on Day 1.

2. Hire earlier

Tried to do everything myself for too long. Burned out twice. Could've scaled faster with help.

3. Ignore competition

I spent way too much time checking what competitors were doing. It didn't matter. 99% of customers don't know competitors exist—they just want their problem solved.

4. Build for enterprise earlier

SMB customers ($500/month) are great but they churn. Enterprise customers ($5K/month) stay forever.

We're pivoting to enterprise now but I should've done it 6 months ago.

5. Say no more

I said yes to every feature request for the first year. Built a Frankenstein product. Now I'm ripping out features nobody uses.

Saying no is a superpower.

---

### AM I TAKING VC FUNDING?

Short answer: No, not yet.

Long answer:

I've had 12 VC meetings. Everyone wants to invest. Valuations ranging from $15M to $40M.

Why I'm saying no (for now):

1. We're profitable: Making $150K/month profit. Don't need capital.

2. Growing fast organically: 15-20% MoM without spending on ads

3. No competitive pressure: Nobody's racing us to market

4. Optionality: Can always raise later at higher valuation

Why I might say yes (later):

1. Enterprise push: Need sales team to close $50K+ deals

2. International expansion: Want EU/Asia presence

3. Product expansion: Lots of adjacent problems we could solve

4. Talent: Hard to compete with VC-backed companies for senior engineers

Current plan: Bootstrap to $5M ARR, then decide.

---

### ADVICE FOR INDIE HACKERS

If you're just starting:

1. Pick a niche: Don't build "analytics for everyone." Build "analytics for Shopify stores selling coffee equipment in the US." You can expand later.

2. Solve an expensive problem: Time-savers are nice. Money-makers/money-savers are essential. People pay for ROI, not convenience.

3. Talk to customers before you code: I built 3 features nobody wanted before I learned to ask first.

4. Launch in weeks, not months: Your first version will be wrong anyway. Get feedback fast.

5. Charge money immediately: Free users ghost you. Paying users are invested in your success.

If you're at $5-20K MRR:

1. Double down on what's working: Don't add new channels. Make current channels 2x better.

2. Fix churn before growth: A leaky bucket doesn't fill faster with more water. Plug the holes first.

3. Hire for your weaknesses: I hate accounting. Hired a part-time bookkeeper for $200/month. Best $200/month I spend.

4. Build systems, not features: Onboarding flow > 10 new features. Automated billing > manual invoicing.

If you're at $50K+ MRR:

1. Think about exits: Bootstrap to $10M and sell? Raise and grow? IPO? The path changes your decisions.

2. Build a team: You can't scale alone. Hire people smarter than you.

3. Focus on LTV:CAC: This ratio determines everything. Above 3:1 = scale. Below 3:1 = fix the leak.

4. Protect your time: Say no to podcasts, coffee chats, "pick your brain" emails. Your time is worth $500+/hour now. Act like it.

---

### FINAL THOUGHTS

18 months ago I was a random engineer with a side project.

Today I run a $2M ARR SaaS with 701 customers and 3 employees.

It's not a unicorn. But it's profitable, growing, and solves a real problem.

That's the indie hacker dream, right?

The best advice I can give:

Start. Today. Don't wait for the perfect idea. Don't wait for more skills. Don't wait for a co-founder.

Just build something people will pay for and iterate until they do.

You've got this.

---

Want to connect?

I'm on Instagram: @growwithzyro

Happy to answer questions about attribution, bootstrapping, or anything else.

If you're running a Shopify store and want a free attribution audit, DM me. Always happy to help indie hackers.

---

P.S. — One ask:

If this was helpful, I'd appreciate an upvote. Trying to build in public and share what I learn. More updates coming soon.

Thanks for reading 🚀

posted toAvatar for product Zyro
Zyro