Changelog
What changed
Every release, in order.
- Release
Prices, and no free hosted tier
- The hosted service starts at $25 a month for one app, then $49, $199, and Scale by contract. Metered on monthly active devices: $2 per thousand beyond the included count at the smallest plan, falling to $0.60 at the largest.
- What is free is the open-source build, device security included. Run it yourself and it costs nothing; the hosted plans are the same software with the operating done for you.
- Going over the included devices is added to the invoice. Nothing stops resolving or attesting, because your app is already in the stores and cutting it off to collect a bill would be our outage rather than your upgrade prompt.
- We take no percentage of your revenue, and will not.
- Release
Link Doctor: find out why a link does not open your app
- Give it a domain at /link-doctor and it fetches your association files the way Apple and Google do, then names what is wrong and how to fix it. No account needed.
- The same checks run in CI. `vouch-doctor check --host …` exits non-zero when a release would break links, and reads the bundle identifier, package name and signing fingerprint out of an IPA, APK or AAB rather than trusting flags.
- A fault in how your server delivers the Apple file is a warning rather than an error while Apple's mirror still holds a good copy, because those links open today. Android has no mirror, so the same fault there is an error.
- One thing it cannot tell you: which paths open your Android app. assetlinks.json grants a whole host, and the path filtering lives in the intent filters inside your build. Pass the build to the command-line tool and it reads them.
- Site
A status page and a support page
- /status asks each hosted service directly when the page is served, and says plainly when a check could not be made rather than showing a green tick it has not earned.
- The link resolver's health check now fails when its database is unreachable. It used to answer that it was well because the request had reached it.
- /support says where to ask for help and what to expect. No SLA is promised, because there is not one yet.
- SDK
Flutter and Expo reach the same surface as the native SDKs
- Referrals and device security are on all four platforms now, with the same shapes and machine-readable refusals everywhere.
- Both wrapper bridges are compiled against the real native SDKs rather than only type-checked, which is what proves the bridge works.
- Release
Protect your own backend with the same verdicts
- An open-source gateway sits in front of your API and refuses requests that fail your policies, so Vouch's attestation covers your endpoints and not just ours.
- Go middleware for the same job when you would rather not run another process. It verifies from cache, so only the first request for a run token costs a round trip.
- Both fail open by default: if Vouch cannot be reached, a device that already proved itself and holds an unexpired token keeps working. Fail closed is one setting away.
- The gateway is AGPL-3.0 and the middleware is MIT, because middleware links into your application and a licence that reaches into your code would be a trap.
- SDK
Referrals and device attestation reach the SDKs
- Personal invite links and codes, redemption, progress and rewards on iOS and Android, with the same shapes on both.
- Attestation is automatic: the SDK proves the device on first open and signs every request it makes. A device that cannot attest is degraded rather than failed, and keeps working.
- Refusals carry a machine-readable reason, so an app can tell a programme that is not live from a code already used without matching on English prose.
- Flutter and Expo wrappers for both are in progress and not yet released.
- Release
Device security, in monitor mode first
- Play Integrity and App Attest verdicts for every device, with the reason spelled out when a check cannot be completed.
- Ordered policies on your endpoints, with rate limits keyed on the Vouch device id so rotating addresses does not evade them.
- Monitor mode records what enforcement would have done without refusing anything, and the projection is computed from that record rather than estimated. Read it before switching over.
- A kill switch that outranks every policy and lands everywhere within thirty seconds.
- Release
Referrals
- Programmes with conditions, rewards for both sides, and qualification that runs when the condition is actually met rather than on a timer.
- A fraud queue and clawbacks, because a referral programme without them pays for fake signups.
- Analytics for invites sent, joined and qualified, and the cost per qualified referral.
- Release
Links, the dashboard and four SDKs
- Custom domains, path rules, and link analytics by day, platform and match type.
- Deferred deep linking through the app stores, matched by session token, install referrer or clipboard, in that order. A fingerprint guess is labelled as one, and an ambiguous match delivers nothing rather than the wrong screen.
- SDKs for iOS, Android, Flutter and React Native, each delivering a link exactly once across cold and warm starts.
- A dashboard for workspaces, apps, keys, links and analytics.
- Site
Site and design system
- Marketing site with a live link resolver demo.
- Design system package with tokens and core components shared by the site, docs and future dashboard.
- Documentation shell with the information architecture for every SDK quickstart.
- Minimal open-source link resolver seeded for the homepage demo.