DEV Community

Cover image for Why I built an onboarding tool instead of using Intercom (and what it cost me)
Raj Chavan
Raj Chavan

Posted on

Why I built an onboarding tool instead of using Intercom (and what it cost me)

I spent three months building TourKit. Here's the honest story of
why, and what it actually cost me to build it solo.

The problem I kept hitting

Every side project I built had the same issue. Users would sign up, land on the dashboard, look around confused, and leave.

No onboarding. No guidance. Just a blank page and hope they figure it out.

I knew the fix existed — product tours. The little tooltips that walk you through a new app. I'd used them on Notion, Linear, Vercel. They work.

So I went looking for a tool to add one to my own project.

What I found

Intercom Product Tours — the industry standard. Opened their pricing page. $300+/month minimum to get product tours. For a side project making $0, that's not a discussion; that's a no.

Appcues — similar story. $300-500/month. Enterprise pricing for an enterprise problem I didn't have.

Intro.js — free and open source. This seemed promising until I actually tried to use it. You write JavaScript config for every single step. No dashboard. No analytics. Update a CSS class and
your tour silently breaks in production.

Shepherd.js — same category as Intro.js. More flexible, still requires real code, still no dashboard or analytics.

I needed something between "$300/month enterprise tool" and "write 200 lines of JS yourself."

It didn't exist. So I decided to build it.

What I actually built

TourKit — paste one script tag on your website, configure tour steps from a dashboard, your visitors get a guided walkthrough.

The core idea: give indie hackers and small teams the dashboard experience of Intercom without the enterprise price tag.

<script
  src="https://cdn.jsdelivr.net/gh/webdev-raj/Tourkit@sdk-v14/sdk/dist/tourkit.min.js"
  data-key="YOUR_KEY"
  data-api="https://tourkit-phi.vercel.app"
  async>
</script>
Enter fullscreen mode Exit fullscreen mode

That's the entire installation. Everything else happens in the dashboard.

What it cost me to build

Time: Roughly 3 months of evenings and weekends, solo, using Cursor heavily for the actual coding.

Money: Almost nothing. The whole stack runs on free tiers:

  • Vercel (hosting) — free
  • Supabase (database, auth) — free tier
  • jsDelivr (CDN for the SDK) — free
  • Lemon Squeezy (payments) — free + 5% fee

Total monthly infrastructure cost right now: $0.

Mistakes: A lot. I spent way too long polishing animations before I even had basic payments working. I built features nobody asked for because building felt more productive than the scarier task of actually trying to get customers.

The hardest technical problem

Context-aware tours on dynamic URLs. If your app has routes like /products/[id], a naive URL matcher either matches every product page with the same tour (annoying, repeats forever) or matches nothing at all.

I ended up building pattern-based matching:

/products/[id] matches /products/123
/products/[id] matches /products/456

Both share the same "seen" flag, based on the pattern, not the actual URL. So the tour shows once across all product pages, not once per product.

This took multiple rebuilds to get right, including finding the bug by literally adding TourKit to my own TourKit dashboard and using it myself.

What I learned

Dogfooding finds bugs nothing else does. I added TourKit's own tours to TourKit's own dashboard and found three critical matching bugs in 24 hours that months of manual testing missed.

Free tier infrastructure goes a long way. This entire SaaS, including a vanilla JS SDK, dashboard, analytics, and payments, costs $0/month to run at small scale.

Building is the easy part. I can ship features fast. Getting someone to actually pay $9/month is the part I'm still figuring out.

Where it's at now

TourKit is live and functional. Free tier, plus paid plans starting at $9/month. Still working on getting the first real paying customers — turns out that's a different skill than writing code.

If you're building a SaaS and onboarding is an afterthought, it shouldn't be. Whether you use TourKit or build your own, that first impression matters more than most features you'll ship.

tourkit

Happy to answer questions about the technical side,
the stack, or just the experience of building solo.

Top comments (0)