Dub.co & Ngrok — The Two Utilities That Make Your Work Visible
A special double-edition Weekly Stack covering two small tools that punch way above their weight: Dub.co for tracking every link you share, and Ngrok for exposing your local server to the world.
April 23, 2026 • 9 min read • Alexandre Bergère

Weekly Stack #03 — Dub.co & Ngrok
Every week, we break down one tool from the stack that powers Kaiten — what it does, why we picked it, and how it fits into a unified SaaS architecture.
This week is a special Utility Edition: two small tools that punch way above their weight.

Prefer the printable version? Download the PDF.
Why This Edition Is Different
Most Weekly Stack issues zoom into one tool. This one covers two — and it's intentional.
Dub.co and Ngrok don't belong to the same category. One is a link management platform for growth teams. The other is a developer tunneling tool for webhook testing. But they share the same DNA: they're both "small" utilities that most founders underestimate, and both solve the same fundamental problem in different contexts — making your work visible to the world outside your machine.
Dub makes your links visible and measurable to your audience. Ngrok makes your localhost visible and reachable to external services. One for growth, one for engineering. Both essential.
If you're running an early-stage SaaS where every founder wears four hats, these are two tools that buy you time you didn't know you had.
Part 1 — Dub.co: The Link Management Platform That Replaces Bitly
What is Dub?
Dub.co is an open-source link management platform. At its most basic, it's a URL shortener — you paste a long URL, you get a short one. But that description is underselling it the same way calling Stripe "a payment processor" undersells Stripe.
The real product: a full link infrastructure that tracks clicks, countries, devices, referrers, and conversions. Every link you share on LinkedIn, in emails, in documentation, in Slack — every one of them becomes a data point.
Why Dub over Bitly or a custom solution?
Three reasons.
Open-source and developer-first. Dub is open-source (AGPL) and has a clean REST API. You can self-host it if you care about data sovereignty. The API is how Dub stops being "a URL shortener" and starts being "the link layer of your stack" — you can programmatically create links when you send an email, when you publish a post, when a customer onboards.
Custom domains done right. Running dub.co/abc doesn't help your brand. Running kaiten.sh/go/weekly-stack-attio does. Dub makes custom domain setup trivial (DNS config + verification, five minutes). Every link you share lives under your own domain, which matters for trust, deliverability, and brand recall.
The analytics that matter. Click count is table stakes. Dub gives you geographic breakdown, device breakdown, referrer tracking, UTM parsing, and conversion events. If you've ever tried to figure out which LinkedIn post drove the most blog traffic, you know why this matters — UTMs alone don't cut it because most platforms strip them.
How we use Dub at Kaiten
Every link in every Weekly Stack LinkedIn post goes through Dub. Same for email signatures, documentation, and the GitHub README. The pattern is simple:
kaiten.sh/go/ws-01 → https://kaiten.sh/blog/weekly-stack-attio
kaiten.sh/go/ws-02 → https://kaiten.sh/blog/weekly-stack-tally
kaiten.sh/go/early → https://kaiten.sh/early-access
kaiten.sh/go/github → https://github.com/kaitencloud
Why short slugs matter: when I post the #04 next week, I can see exactly how many clicks came from LinkedIn vs. the newsletter vs. the Kaiten GitHub README — without adding five UTM parameters to every URL. The short link IS the attribution layer.
Pro tip: Dub's API lets you create a link at the moment you need it. For a launch day post, you can generate a unique short link per channel (LinkedIn, Twitter, Medium, newsletter) in a single script. Three lines of code, instant channel-level attribution.
When you actually want UTMs — Dub handles that too
Short slugs are great when you control the link. But sometimes you need full UTM tracking — for example, when Google Analytics or your product analytics tool (PostHog, Mixpanel, Amplitude) expects standard UTM parameters to attribute sessions correctly.
Dub doesn't force you to pick one approach. It lets you attach UTM parameters to any link while keeping the short URL clean.
Here's the transformation:
Before (the UTM soup you can't share publicly):
https://kaiten.sh/?utm_source=linkedin&utm_medium=social_organic
&utm_campaign=profile_experience&utm_content=kgo
After (what your audience actually clicks):
https://link.kaiten.sh/l0ttr2d
When a user clicks the short link, Dub transparently appends the UTMs to the destination URL. Your analytics tools see the full UTM context, your audience sees a clean link, and you get both Dub's native analytics AND your existing analytics stack working together.
This matters for two reasons. First, UTM-laden URLs are ugly — nobody wants to paste a 200-character link in a LinkedIn post. Second, UTMs in the visible URL are often stripped by messaging apps, email clients, and mobile browsers. A short Dub link survives the trip and reconstructs the UTM context on the other side.
The rule of thumb at Kaiten: use bare short slugs (kaiten.sh/go/ws-03) for direct attribution via Dub analytics, and use UTM-enriched short links (link.kaiten.sh/xxx) when the destination needs to feed Google Analytics, PostHog, or any tool expecting standard UTM conventions.
Part 2 — Ngrok: The Secret Weapon for Webhook Development
What is Ngrok?
Ngrok is a tunneling service. In one command, it takes a server running on your localhost:3000 and exposes it as a public HTTPS URL like https://a1b2c3d4.ngrok-free.app. The tunnel is secure, and it survives across restarts.
That's the pitch. The reality is that Ngrok solves a very specific problem that every SaaS developer hits within their first week: how do you test webhooks against your local development server?
Why Ngrok matters if you work with webhooks
Webhooks are the backbone of modern SaaS integration. Stripe fires webhooks on payment events. Attio fires webhooks on record.created. Tally fires webhooks on form submissions. GitHub fires webhooks on pull requests.
But webhooks have a problem: the sender needs to reach your server. If your server is running on localhost:3000 on your laptop, Stripe can't reach it. So what do most founders do?
- Deploy to a staging server every time they want to test. Slow, expensive, painful.
- Use a webhook capture service to inspect the payload, then manually replay. Works, but tedious and doesn't let you test the full flow.
- Write elaborate mock payloads and
curlthem locally. Works for the happy path, fails for edge cases.
Ngrok replaces all three. You run one command, you paste the Ngrok URL into Stripe's webhook settings, and every real webhook Stripe sends hits your local dev server. You can breakpoint, log, and iterate in real time. Development cycle goes from hours to seconds.
Why Ngrok over alternatives?
The alternatives exist — Cloudflare Tunnel, localtunnel, Tailscale Funnel, bore. They all work. But Ngrok has three advantages that matter for a founder:
It just works. One command (ngrok http 3000), you're done. No DNS setup, no CLI authentication dance, no "wait why is this not working on Windows." Five seconds from install to exposed URL.
Stable URLs on the paid tier. The free tier gives you a random URL that changes every restart — fine for one-off testing, annoying when you're iterating all day. The paid tier ($10/month) gives you a reserved subdomain like alex.ngrok.io that persists. Worth every cent if you're developing webhook-driven features daily.
The inspection UI. Ngrok includes a local web UI at localhost:4040 that shows every request hitting your tunnel — headers, body, response, timing. It's basically Postman for incoming webhooks. You can replay any request with one click, which is a godsend when debugging why your webhook handler failed.
How we use Ngrok at Kaiten
Two workflows:
Webhook development. When we're building Kaiten's integrations with Attio, Stripe, or any other webhook source, we tunnel the source directly to our local server. We see the real payload, test the real handler, iterate instantly. No staging deploy.
Customer demos. Sometimes we need to show a prospect a feature that's on a dev branch. Instead of deploying it to a shared environment, we spin up Ngrok and share the URL. Ten seconds. The prospect sees the real thing running live on our machine, and the tunnel closes when the call ends.
Why These Two Tools, Together
The honest answer: they're both tools I'd forgotten to mention until I realized how much time they save every week.
Dub saves me the "which LinkedIn post drove traffic?" analysis. Ngrok saves me the "let me deploy to staging" cycle. Neither is revolutionary. Both compound.
If you're building a SaaS and you haven't set up either one yet, here's the 30-minute starter pack:
- Sign up for Dub, point a subdomain (
yoursite.com/go/) to it, and start using it for every link you share publicly. - Install Ngrok (
brew install ngrokor the equivalent), get a free account for the auth token, and keep a terminal tab open withngrok http 3000any day you're touching webhooks.
That's it. Tomorrow, you'll have data on your links and a tunnel ready for every integration you build.
Market Landscape
Link Management (Dub alternatives)
Dub.co — Open-source, API-first, custom domains, developer-friendly pricing. Built for modern SaaS teams.
Bitly — The incumbent. Works, but feels like 2010. Pricing scales aggressively, and the API is an afterthought.
Rebrandly — Strong on custom domains, good UI, but proprietary and pricier than Dub for equivalent features.
Short.io — Solid Bitly alternative, good pricing. Lacks the open-source and API-first positioning that makes Dub stand out.
Tunneling (Ngrok alternatives)
Ngrok — Easiest to start with, excellent inspection UI, stable paid tier. The default choice.
Cloudflare Tunnel — Free, integrated with Cloudflare, great for production tunnels. Steeper setup curve.
Tailscale Funnel — Excellent if you're already on Tailscale. Overkill if you just need a webhook tunnel.
localtunnel — Open-source, free, works. Less reliable and no inspection UI.
The Bottom Line
Not every Weekly Stack will be a headline tool. Sometimes the biggest leverage comes from the "small" utilities nobody writes Twitter threads about.
Dub and Ngrok are two of those. They're boring to talk about at a dinner party. They save me hours every single week.
That's the real test of a stack tool — not whether it's exciting, but whether removing it would hurt. Both of these would hurt.
This is Weekly Stack #03. Every week, we break down one (or occasionally two) tools from the Kaiten stack. Previously: Tally — the front-door for structured input.
Small tools. Big leverage.
Every week, we document one (or two) tools from a real SaaS stack. No sponsorships. No affiliate links. Just what we actually use.
You might also like

Tally — The Front-Door for Structured Input
How Tally replaces glue code by capturing structured, relational data from day one — and how a single form submission triggers a full tenant provisioning flow through Attio and Kaiten.
April 16, 2026 • 5 min read

Attio — The CRM That Thinks Like a Database
Most CRMs are built for Sales. Attio is built for founders who want a real relational database — with a UI that doesn't require a Salesforce admin.
April 9, 2026 • 5 min read