I’ve been a Doppler customer for a while, and the one thing I kept running into
was checking a value from my phone (or tablet). There’s no official mobile app, and the
dashboard is built for a mouse — on a touchscreen it turns into pinch-zooming a
dense table and switching tabs whenever two things need comparing. So I built
the handful of things I do daily as one-tap actions, and it’s now on the App
Store as Wavelength.
What it does:
- Browse projects, environments and configs, reveal and copy secret values
- Compare two configs side by side and copy a value across without leaving the
screen — split view on iPad - Export several projects into a single encrypted file (a standard age file
with a passphrase, soage -dopens it anywhere) - Show, in a branch config, whether each secret is inherited, overridden or
local — with promote-to-root and restore-inheritance as single actions
How it’s built, since this is a secrets forum and the question is fair:
- No backend of mine. The device calls api.doppler.com/v3 directly.
- No secret values written to the device. They’re fetched when a screen needs
them and held in memory only. - The only thing persisted is the token, in the iOS Keychain with
WHEN_UNLOCKED_THIS_DEVICE_ONLY — not in iCloud, not in device backups. - Face ID on launch and on every return from the background.
- No analytics or tracking SDKs.
- It reads what the provided token is allowed to do and hides actions it can’t
perform, so a read-only service account token gives a coherent read-only app.
That last one is the setup I’d actually recommend to anyone trying it: a service
account token scoped to the projects you want on your phone, read-only. It’s a
pattern I think is underused and it makes “secrets on a phone” a much smaller
question.
One thing I ran into building it, in case it’s useful to someone else here:
setting a branch secret’s value to null through the API doesn’t restore
inheritance the way I expected — the key ends up suppressed in that config
rather than tracking root again. Converge is what actually undoes an override.
Took me a while to work out, so it’s now a single button in the app.
Free to browse and read; editing, the config comparison and the encrypted export
are a one-time unlock, no subscription. Not affiliated with Doppler — just a
customer who wanted this to exist.
Happy to hear what’s missing, and if anything about how I’ve used the Doppler
name is a problem, tell me and I’ll change it.