Migrate from Dub to Flyn
Switch from Dub to Flyn for more features, deeper analytics, and better value on every plan
Last updated: September 2026
Previewing is free on every plan. Importing needs Pro, Lifetime or Team.
Already have a Flyn account? Open the importer
Pre-Migration Checklist
Complete these steps before starting the migration to ensure a smooth transition.
- 1Export all links from Dub via the Links tab (tick Short link, Destination URL and Tags) or the API
- 2Document your custom domain DNS configuration
- 3Note any Dub API integrations that need updating
- 4If your links use your own branded domain, add it in Flyn (Settings > Domains) before you import
- 5Check your Flyn plan: previewing an import is free, creating the links needs Pro, Lifetime or Team
- 6Schedule migration during a low-traffic window
Step 1: Export from Dub
First, get your existing links out of Dub so you can import them into Flyn.
Log in to Dub
Go to app.dub.co and sign in to your workspace.
Open the Links tab
Navigate to the Links tab in your Dub workspace.
Export your links
Open the more-options (three-dot) menu and choose "Export links." Pick the date range (all links by default) and tick the columns: keep Short link and Destination URL, and add Tags if you use them.
Download the file
Up to 1,000 links download straight away; larger exports arrive by email as a download link. Dub blocks export while a workspace is over its click usage limit. You can also use Dub's API (api.dub.co).
Step 2: Import into Flyn
Upload your export and Flyn detects the format, maps the columns (you can change any of them), and previews every link before anything is created. Previewing is free; importing needs Pro, Lifetime or Team.
Using your own branded domain? Add it in Settings > Domains before you import (Step 3 lists the DNS records), so the preview can match those links to it. Want to look first? Drop the file on the migration page: it is read in your browser and nothing is uploaded.
Create a Flyn account
Sign up at flyn.to/signup, no credit card required. Uploading and previewing an import is free on every plan; creating the links needs Pro, Lifetime or Team.
Open Links > Import links
In the Flyn dashboard, open the Links page and choose Import links, or go straight to flyn.to/links/import.
Upload the Dub CSV
Drag and drop the file onto the importer, click to browse, or paste the rows (CSV, TSV and plain text all work). Flyn recognizes Dub's export columns (Short link, Destination URL, Tags) and maps them for you. It reads each back-half from the short link, splits Dub's comma-separated tags, and removes the protective apostrophe Dub adds to some cells. You can change any column mapping in the Review step.
Preview, then import
The preview shows what will happen to every link before anything is created. Links on your own branded domain can keep their back-halves when that domain is added in Flyn first. Links on dub.sh cannot move, so each gets a new Flyn link on flyn.co (or a domain you pick in the preview). Choose whether to reuse old back-halves on flyn.co where they are free, and whether a taken back-half is skipped or renamed; existing links are never overwritten. Then start the import and download the report that maps each old short link to its new one.
Step 3: Domain & DNS Migration
Only links on your own branded domain can keep working after the move. Add the domain in Flyn and import its links before you switch DNS, so the links are already there when traffic arrives. Links on domains Dub owns stay with Dub, and printed QR codes that encode those links keep pointing there.
Add your domain in Flyn first
In Flyn, go to Settings > Domains > Add Domain and enter your branded short domain (for example go.yourcompany.com). Custom domains are included on Pro, Lifetime and Team, up to 3 per account. Do this before you import, so the preview matches your links to the domain.
Add the TXT record and click Verify
At your DNS provider, add the TXT record Flyn shows: _flyn on your root domain (_flyn.yourcompany.com, even when the short domain is go.yourcompany.com; many DNS panels want just _flyn as the name) with the flyn-verify value. Click Verify. This proves you own the domain and does not change where your links point.
Point the domain at Flyn
After your links are imported, replace the CNAME that points to cname.dub.co: use a CNAME to cname.flyn.to for a subdomain, or an A record to 76.76.21.21 for a root domain. Keep the hostname the same. Dub hosts custom domains on Vercel, so Flyn also shows one more TXT record after the first Verify (its name starts with _vercel). Add it now, not earlier: when it verifies, your domain is served by Flyn instead of Dub. Removing the domain from your Dub workspace has the same effect.
Verify again and test
DNS changes usually apply within minutes but can take up to 48 hours. Click Verify again: Flyn marks the domain Active once it finds the TXT record and the record pointing at Flyn. Then open a few old short links to confirm they redirect.
DNS Record Summary
| Field | Before | After |
|---|---|---|
| Type | CNAME | CNAME (subdomain) or A (root domain) |
| Host | go (or your subdomain) | go (no change), or @ for a root domain |
| Target | cname.dub.co | cname.flyn.to or 76.76.21.21 |
| Ownership (TXT) | None | _flyn.yourcompany.com with the flyn-verify= value from Settings > Domains |
What Transfers
Here is what carries over from Dub to Flyn and what needs to be reconfigured. A back-half can be reused when it uses only letters, numbers, hyphens and underscores and is not reserved for Flyn's own pages; the preview flags the rest, and those links get a new random back-half.
| Item | Transfers | Notes |
|---|---|---|
| Destination URLs | All URLs preserved exactly | |
| Slugs (keys) | On your domain | Read from each Short link. Kept on your own branded domain when it is added in Flyn first; dub.sh keys can be reused on flyn.co (or a domain you pick in the preview) when free. Keys containing "/" get a new back-half |
| Tags | Imported when you tick Tags in Dub's export | |
| Titles | Dub's export has no title column; Flyn uses the destination's host as the title | |
| Custom domains | Add it in Flyn before importing, then switch the CNAME from cname.dub.co to cname.flyn.to (root domain: A record 76.76.21.21) and click Verify | |
| Click analytics | Historical analytics remain in Dub | |
| QR codes | Regenerate | Printed QR codes that encode your own domain follow it to Flyn; ones that encode dub.sh keep pointing there. New QR codes are free in Flyn |
| dub.sh links | dub.sh is owned by Dub, so those links stay there. Each gets a new Flyn link, and the import report maps old to new |
Post-Migration Verification
After completing the migration, work through this checklist to verify everything is working.
- Test sample links to verify correct redirects
- Confirm custom domain is verified in Flyn
- Verify click tracking is active in Flyn analytics
- Update API integrations from Dub to Flyn
- Regenerate QR codes if applicable
- Keep Dub account active for 30 days as fallback
Troubleshooting
Common issues and how to resolve them.
Dub columns mapped to the wrong fields
Dub's export uses Short link, Destination URL and Tags, and Flyn maps these automatically. If you renamed columns, set Destination URL to destination, Short link to old short link, and Tags to tags in the Review step.
Some Dub links got a new back-half
Dub allows keys with a slash (like docs/start). Flyn back-halves cannot contain "/", so those links get a new back-half and will not keep working at the old path. The import report lists their new URLs.
Custom domain showing unverified in Flyn
Check the TXT record at _flyn.yourdomain.com and that the CNAME target is exactly cname.flyn.to (not cname.dub.co). DNS changes can take up to 48 hours.
Flyn says the certificate is pending and one more record is needed
The domain is still connected to your Dub workspace. Dub hosts custom domains on Vercel, so after the first Verify Flyn shows one more TXT record under the checklist (its name starts with _vercel). That record is the switch: when it verifies, your domain is served by Flyn instead of Dub, straight away. Add it only after your links are imported, then click Verify in Flyn. It replaces removing the domain from your Dub workspace.
Some slugs already exist in Flyn
The preview checks every back-half before anything is created. For taken ones, choose "Skip that link" or "Give that link a random back-half"; Flyn never overwrites an existing link.
Frequently Asked Questions
Why switch from Dub to Flyn?
Mostly price and limits. Flyn Pro costs $9/month billed annually ($12 monthly) with unlimited links, and includes city-level geo analytics, A/B testing, deep links for 18 native apps, geo-routing, password protection and link cloaking. Dub's Pro plan also has deep links, geo targeting, password protection and link cloaking, but caps new links at 1,000 a month, and Dub puts A/B testing on its Business plan (Dub pricing page, checked September 2026).
Does Dub support bulk export?
Yes. Dub exports links as CSV from the Links tab (three-dot menu > Export links), and also through its REST API at api.dub.co. Exports over 1,000 links arrive by email.
Will my dub.sh links break?
No. Links on dub.sh continue working through Dub, and the importer creates a new Flyn link for each one. Only your custom domain links are affected by the DNS change.
How does pricing compare?
Flyn Pro costs $9/month (annual) with unlimited links, 3 custom domains, and full analytics. Dub Pro costs $30/month for 1,000 new links and 50,000 tracked events a month (Dub pricing page, checked September 2026).
Can I use Flyn's API as a Dub API replacement?
For link management, yes. Flyn's REST API creates, lists, updates and deletes links and returns click stats; it takes one destination per request (Create Many only copies a single destination), so it is not a bulk import. API keys need a paid plan. See flyn.to/docs for the full API reference.
Ready to Migrate from Dub?
Create a free Flyn account and preview your Dub import at no cost. No credit card required to sign up. Importing needs Pro, Lifetime or Team, and most imports take minutes. Accounts in their first week may have a daily limit on new links; if an import reaches it, the importer stops and lets you download the remaining rows as a file to import once 24 hours have passed.
Already have a Flyn account? Open the importer