Migration GuideMost imports take minutes

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.

  • 1
    Export all links from Dub via the Links tab (tick Short link, Destination URL and Tags) or the API
  • 2
    Document your custom domain DNS configuration
  • 3
    Note any Dub API integrations that need updating
  • 4
    If your links use your own branded domain, add it in Flyn (Settings > Domains) before you import
  • 5
    Check your Flyn plan: previewing an import is free, creating the links needs Pro, Lifetime or Team
  • 6
    Schedule 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.

1

Log in to Dub

Go to app.dub.co and sign in to your workspace.

2

Open the Links tab

Navigate to the Links tab in your Dub workspace.

3

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.

4

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.

1

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.

2

Open Links > Import links

In the Flyn dashboard, open the Links page and choose Import links, or go straight to flyn.to/links/import.

3

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.

4

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.

1

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.

2

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.

3

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.

4

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

FieldBeforeAfter
TypeCNAMECNAME (subdomain) or A (root domain)
Hostgo (or your subdomain)go (no change), or @ for a root domain
Targetcname.dub.cocname.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.

ItemTransfersNotes
Destination URLsAll URLs preserved exactly
Slugs (keys)On your domainRead 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
TagsImported when you tick Tags in Dub's export
TitlesDub's export has no title column; Flyn uses the destination's host as the title
Custom domainsAdd 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 analyticsHistorical analytics remain in Dub
QR codesRegeneratePrinted 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 linksdub.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

More Migration Guides