DEV Community

Dhananjay kumar Seth
Dhananjay kumar Seth

Posted on

I Turned My Free Browser Tools Into a Paid Product (Here's Exactly How)

A few weeks ago I wrote about four interactive engineering tools I built — a real-time FFT lab, a PID control simulator, a logic circuit sandbox, and a comms simulator. They were free, and they still are. This post is about what happened after: turning that into LabBench, a real (small, but real) product with paying customers.

The tools stayed free. The brand didn't exist yet.
Four separate demo names don't add up to anything memorable. So I built one landing page — labbench-hub.vercel.app — presenting all five tools (added a fifth: a Verilog-style timing-diagram viewer) as one suite, with a shared visual identity layered on top of each tool's own accent color.

The licensing mistake everyone makes (including me, at first)
None of the repos had a LICENSE file. That sounds harmless — it's actually the opposite of open. Under the Berne Convention, no license means "all rights reserved" by default. The fix wasn't slapping on MIT, though — that would let anyone fork the free tools, build the exact paid features I'm planning, and ship them first. I wrote a short custom source-available license: free to use the deployed demos, free to read the code, not free to resell or rehost. Every LabBench repo carries it now.

The payments problem nobody warns you about (if you're not in the US/EU)
This was the real surprise. Every "add a tip jar" tutorial assumes Stripe works for you. I tried Ko-fi first — its bank-transfer country search returned zero results for India. Buy Me a Coffee's own FAQ confirmed payouts route through a personal Stripe account, and Stripe Connect payouts to individual Indian creators are heavily restricted without a registered business entity.

The fix: stop chasing Western platforms, go regionally native. Razorpay — an Indian payment processor — supports individual/freelancer accounts directly, with UPI, cards, and netbanking working once KYC clears. If you're building for a specific country's audience, check that country's creator payout path before you build anything around a platform everyone recommends by default.

Shipping actual paid products
Two PDFs, sold through Razorpay Payment Pages:

LabBench Study Companion — a hands-on guide to DSP, PID control, digital logic, and comms theory, each chapter pointing back to the matching interactive tool.
The Making of LabBench — the build-log version of this post, with real code snippets and the productization story in more depth.
Automating delivery without a real backend
None of the five tools have a server — they're static Vite apps on Vercel. Rather than stand up a whole backend just to email a PDF after payment, I added one file: /api/fulfill.js, a Vercel serverless function that:

Verifies the Razorpay webhook's HMAC-SHA256 signature (constant-time comparison, using Node's getRawBody since the signature is computed over the raw request body, not the re-parsed JSON)
Matches the payment description against a small product list
Emails the matching PDF via Gmail SMTP (an App Password, not OAuth — zero new accounts, since Resend/SendGrid both wanted a verified custom domain I don't have yet)
Vercel deploys anything under /api as a serverless function automatically, regardless of the frontend framework — no Next.js required. One file, no database, and it works.

What's next
A real Pro tier (saved sessions, exports, classroom mode) gated behind actual accounts — and the highest-ceiling option that needs zero new code: reaching out to colleges and coaching institutes directly for classroom licensing, since they have budgets individual students don't.

Try the tools free: https://labbench-hub.vercel.app/ More of my work: https://dhananjay-kumar-seth.vercel.app/

If you're building something similar from outside the US/EU, I'd genuinely like to hear what payment path worked for you.

Top comments (0)