Skip to content

Permanence

A link you print should outlive your subscription

Links end up in places you cannot edit: printed on packaging, baked into emails already sent, pasted into other people's posts. This page says what we will and will not do with them, in terms specific enough to hold us to.

The plan can stop. The links do not.

The short version

01No ads, ever.We will not put an advertisement, an interstitial or a countdown in front of your links, on any plan, now or later.
02Published links do not change.A link you have published keeps doing what it did. We will not change how existing links behave to push you to a different plan.
03Links survive your subscription.If you downgrade, cancel, or a payment fails, your links keep redirecting.
04You can always leave.Export everything at any time, on any plan, with files that serve your links from your own server.
05If we close, you get notice and a hand-off.At least 90 days, a final export and a redirect map.

The rest of this page is the detail, including the limits. Read what is not promised before you rely on any of it.

If you downgrade or stop paying

When a paid subscription ends, because you cancelled it or because an invoice stayed unpaid for 14 days, your team moves into what the dashboard calls survival mode. Nothing is deleted.

These keep working:

  • Every existing link, for iPhone, Android and desktop visitors.
  • The files Apple and Google read to let your app open from your links (apple-app-site-association and assetlinks.json).
  • Custom domains, for as long as their DNS points at us. Certificates keep renewing.
  • Preview, landing and “open in app” pages.
  • Deferred deep linking in your app: installs after a tap still land on the linked screen.

This lasts for as long as the service runs. We do not delete links for non-payment. A failed payment is retried and you are emailed first; the team becomes read-only only after 14 days unpaid, and paying the open invoice or subscribing again restores everything at once.

If you move to a smaller plan while still paying, the same rule applies: anything over the new plan’s limits stays and keeps working. You archive what you no longer need before adding more.

Teams on the free plan that never paid are simply on the free plan. Their links are not on a timer.

What read-only means

In survival mode the dashboard still opens and still shows everything. What stops is change:

  • You cannot create links or edit existing ones, so a link keeps the destination it had.
  • Analytics are reduced to monthly click totals.
  • Scheduled health checks and their alerts stop.
  • The API accepts reads but not writes, and you cannot invite teammates.

What you can always do: sign in, look at everything, export it, and subscribe again.

Export, any time

Any member of a team can download an export from the dashboard, on any plan, including read-only, at no charge. It is one ZIP file, built when you ask for it, at most once an hour per team.

It contains:

One ZIP file
links.csv, links.jsonEvery link with every field, archived ones included.
projects.json, apps.json, domains.jsonYour settings, app identifiers and hostnames.
analytics/daily_link_stats.csvClicks per link per day.
wellknown/The Apple and Google association files for each of your hosts, exactly as we serve them.
selfhost/A Caddyfile, an nginx.conf, a redirects.json map of every slug to its per-platform destination, and a README.

What the self-host bundle does, and does not

Put the selfhost folder on a server you control, point your custom domain at it, and your links keep sending iPhone, Android and desktop visitors to the right store page or URL. Because it also serves the association files, installed apps keep opening from your links.

It is a floor, not a copy of the service. It has:

  • No deferred deep linking. Someone who installs after tapping lands on your app’s home screen.
  • No analytics, link previews, landing pages or in-app-browser hand-off pages.
  • No rules, A/B splits or password protection: each link goes to its default destination for the platform.

The configuration files are generated from your live settings each time you export. We have not yet run them through real Caddy and nginx servers ourselves, so treat them as a starting point and test the bundle on your own server before you depend on it.

Your domain, your links

Every plan, including free, includes at least one custom domain. This is the part of the promise that does not depend on us at all.

A link on go.yourapp.com is on a hostname you own. If you leave, you change one DNS record to point that hostname somewhere else, and every link and every printed QR code follows. Nothing has to be reprinted. If you tell us you are moving a custom domain away, we will not interfere, and we will keep serving it until your DNS change takes effect.

A link on yourapp.dl2.app is on our hostname. We keep it working under everything on this page, but it cannot move with you: if dl2.app is not serving it, nobody is. For anything printed, or anything you would hate to lose, use your own domain from the start.

If DL2App shuts down

Companies close and products get cancelled. If that happens to this one:

  • We will give at least 90 days’ notice by email to every team owner and on this site.
  • During that notice period redirects keep running, and every team gets a final export plus a redirect map: a plain file listing each of its links and where it sends each platform, in a form another service or your own server can load.
  • We will keep redirects running for custom domains until the end of the notice period even if billing has stopped.
  • The self-host bundle described above already exists today, so you do not need to wait for a shutdown to hold a working copy. Exporting once a quarter is a reasonable habit.

After the notice period, links on your own domain keep working wherever you have pointed it. Links on dl2.app hostnames stop, because we would no longer be operating that domain. That is the honest limit of what a hosted service can promise, and it is the reason a custom domain is on every plan.

What is not promised

  • Abuse is not protected. A link that sends people to phishing, malware or other content our acceptable use policy forbids is flagged and stops redirecting, whatever plan it is on. The owner is told why and can appeal once; we aim to answer within 2 days. While a team is suspended for abuse, none of its links redirect.
  • Uptime is not guaranteed here. This page is about not switching your links off on purpose. It is not a service-level agreement, and outages can happen.
  • What phones do is not ours to promise. Apple, Google and the apps people tap links in change how links open. We track those changes, but a link can behave differently after an operating-system update.
  • Features can change. The promise covers existing links continuing to redirect as they do. Dashboard features, plan limits for new items, and prices for new subscriptions can change.
  • Long-dead projects can be retired. A project with no clicks at all for 24 months in a row may be retired, and only after 60 days’ notice by email. A single click resets the clock.
  • Links on our domain cannot outlive us. Only links on your own domain can.
  • Deleted is deleted. If you delete your account or a project yourself, its links stop. When you change a project’s subdomain, the old address keeps redirecting for 30 days.
  • Events outside our control. A court order, a domain registry or a hosting provider can force changes we would not choose.

Questions about any of this, or a case it does not cover: support@dl2.app.

Put it on your own domain from day one

One custom domain is included on every plan, including Free. Add it before you print anything.

The permanence promise · DL2App