Environments
Switch between test and live mode in the dashboard, and know which data each one shows.
Every project has two environments, test and live, like Stripe's test mode. Use test while you build and try things, and live for the links and keys your real users see. The concept is explained in Test and live environments. This page is about the switch in the dashboard.
Switching
The Test / Live switch sits in the header, next to your account menu. The active side shows a dot: amber for test, green for live.
You can also switch from the command palette: press ⌘ K and choose Switch to live mode (or Switch to test mode).
When you switch, the page stays where it is and reloads its data for the other environment. Your choice is saved in a cookie for a year, so the dashboard remembers it across visits and projects. New browsers start in test mode.
While test mode is on, a thin amber strip runs across the top of every page:
Test mode: links, keys and events here are separate from live dataWhat each environment separates
Some things belong to one environment, others are shared by the whole project.
| Separate per environment | Shared by test and live |
|---|---|
| Links | Platforms (your iOS and Android app details) |
| API keys | Link domains |
| Clicks, opens, installs and events | The .well-known files on your domains |
| Analytics, campaigns and live events | Team members and roles |
| Webhook endpoints | Plan and billing |
| SDK installs seen by the Debugger and SDK page | Deferred deep linking settings |
| Link CSV exports |
In practice:
- The Links table, Overview, Analytics and link pages only show data for the environment you are in. A link created in test mode never appears in live mode.
- The API keys page lists keys for the current environment only ("Showing test keys. Switch mode at the top to see the others."). A new key is created in the current environment, and the dialog title says which: New test key or New live key.
- The link dialog tells you where a new link goes, for example "Created in test mode for Acme Shop." A link stays in the environment it was created in.
- Setup checklist: the key, SDK and link steps count per environment, so they reopen when you switch to live. The iOS and Android steps carry over.
How the environment reaches your app
Your app does not choose an environment by itself. The API key does: a pk_test_ key reads and reports test data, a pk_live_ key live data. Ship your release builds with a live publishable key and use a test key for development builds. See API keys.
Test and live share the domain
Both environments use the same short link domains, for example shop-acme.golander.link. That keeps your app setup simple: one Associated Domains entry and one intent filter cover both. It also means a slug can be used only once per domain across both environments. If summer-sale exists as a test link, you cannot create a live link with the same slug on that domain.
Test links are real links
A test link opens your app like any other link. The difference is where its clicks and events are counted, not whether it works. Do not share test links publicly.
If you open a link page from the other environment (for example from a shared URL), the page shows a badge such as test link next to the title. The Debugger warns you too: "This is a test link, you are looking at live mode."