field guide · migration · v1

Switching from Branch.
Without breaking what works.

Almost every team evaluating PathKit is already on Branch (or AppsFlyer, or Adjust). The hardest part of switching isn't picking a tool — it's not torching the deep links that already exist in your last six months of emails, ads, and partner integrations. Here's the plan.

§ 01 · the plan

Three steps. Two weeks. Zero broken links.

01 · EXPORT

Pull your Branch links + metadata.

Branch exposes CSV download for every link, deep link config, and 90 days of click/install data from the dashboard. Pull it. Keep it.

~ 1 hour · dashboard export
02 · MIRROR

Recreate the routes in PathKit.

Set up a PathKit app, point it at the same custom domain or subdomain Branch uses (e.g. go.yourapp.com), and recreate your deep-link paths. PathKit's POST /v1/link is one call per route — scriptable in 50 lines.

~ 1 day · scriptable via API
03 · CUTOVER

Flip DNS. Old links keep resolving.

Once routes are mirrored, flip the CNAME from Branch's edge to PathKit's. Existing links in the wild — emails, ads, Reddit posts, partner integrations — keep resolving because the path component is the same.

~ 30 min · DNS TTL-bounded
§ 02 · the cutover

What happens during the switch.

T-2 weeks // trial PathKit on a staging subdomain, validate T-1 week // mirror prod links via script, dry-run resolution T-0 flip CNAME · old links still resolve · new clicks attributed in PathKit T+24h // Branch dashboard still shows pre-cutover clicks (90d history retained) T+30d stop paying Branch · keep CSV exports for compliance
§ 03 · the inventory

What's automatic. What's manual.

PathKit handles

  • Same custom-domain or subdomain (no link breakage)
  • iOS Universal Links + Android App Links auto-generated
  • AASA & assetlinks.json hosted on your behalf
  • QR codes, OG images, smart banners regenerated
  • Self-attributing networks (Meta, TikTok, Google, ASA) auto-reconcile
  • Attribution match across the cutover

You'll handle

  • Branch SDK removal from your app (it's optional — you can run both in parallel during validation)
  • One-line script to POST /v1/link for each path
  • DNS CNAME flip when you're ready
  • Updating any hardcoded Branch keys in CI / config
  • Telling your team Slack channel that attribution moved
§ 04 · faq

Questions people ask. Before they switch.

Do my existing Branch links break?
No — if you keep the same custom domain or subdomain (the most common Branch setup), every link in the wild keeps resolving. PathKit picks up the path and routes it. The fragile part is matching Branch's exact deep-link key/value scheme, which is what the script in step 02 takes care of.
What about my install attribution history?
Branch retains your last 90 days of dashboard history after you cancel. Export the CSV before cutover; PathKit attribution starts from T-0. We don't claim retroactive attribution because no honest attribution platform can.
Do I have to rip out the Branch SDK?
Not on day one. PathKit's SDK is additive — you can run both in parallel during validation, compare attribution match rates, and remove Branch's SDK in your next app release once you trust PathKit's numbers.
What about my Branch contract?
PathKit is monthly. You can run in parallel until your Branch annual renewal hits, then cancel without breaking links (because your CNAME is already pointing at PathKit). Total migration cost: PathKit's monthly fee × the months you overlap.
Are there edge cases that don't migrate cleanly?
Yes — Branch's proprietary "Branch Ads" / DMA Discovery integrations don't have direct equivalents (PathKit's roadmap for SAN reconciliation covers ASA, Meta, TikTok, Google). And if you've embedded Branch's bnc.lt domain in physical assets (printed QR codes, billboards), those resolve via Branch's edge — you'd want to keep a thin Branch tier alive for those until they retire.
Can you help with the migration?
Yes. Email [email protected] with your current Branch setup (custom domain, monthly link volume, which networks you reconcile against). The Scale tier ($749/mo) includes a dedicated Slack channel and an hour of migration help on the calendar.
§ 05 · next

Ready when you are.

Start with a 14-day trial on a staging subdomain. Run PathKit in parallel with Branch. Only cut over when the attribution numbers match.