Privacy at TinkerNorth.
Every app in the Dish suite ships with its own privacy policy because each one runs on a different platform with different permissions. They all share the same posture: no analytics, no advertising, no advertising ID, no account system, no cloud backend. The only data your device sends out during normal use is your own encrypted controller input to your own Satellite. Every app additionally ships crash reporting, on by default with a one-click opt-out in Settings: Firebase Crashlytics on Android, Sentry on the desktop clients and Satellite. A report carries a stack trace and the app and system versions, never your gamepad input or Satellite addresses; see each app's policy for the precise scope.
One policy per app
Each Dish client and Satellite itself has its own page below. They live at /privacy/<app>/ and cover the jurisdiction-specific rights for GDPR (EU), UK GDPR, CCPA / CPRA (California), and LGPD (Brazil) inside each policy. That's the pattern most software companies use; it's simpler to read than a stack of region-specific policies, and it's what regulators expect.
Last reviewed: 2026-09-06. Each app's policy tracks its own revision date in case one changes faster than the others.
-
Dish for Android
ActiveThe Android app. Covers controller input capture, on-device sensor use, the controller microphone and speaker, Bluetooth HID, Moonlight hosts, network behavior, permissions, and the opt-out Crashlytics scope.
-
Satellite for Windows
ActiveThe server, on Windows. Runs on your gaming PC and never contacts a TinkerNorth-operated server during normal use. Two things can leave it, both switchable off: the update check against GitHub Releases and, when it crashes, an opt-out Sentry crash report.
-
Dish for Windows
ActiveNative Qt client for Windows. Covers controller capture, the local-network session, the GitHub update check, and the opt-out Sentry crash-report scope.
-
Dish for macOS
In developmentNative SwiftUI client. In development; published before the app's first release.
-
Dish for Linux
ActiveQt6 + SDL2 client for Linux. Covers controller capture, the local-network session, the GitHub update check, and the opt-out Sentry crash-report scope.
-
Satellite for Linux
ActiveSame receiver, /dev/uinput-based, packaged for APT / DNF / AUR / AppImage. Same policy as Satellite for Windows: the update check and opt-out Sentry crash reports are the only things that leave it.
What's true across every app
- No analytics. No Google Analytics, no Firebase Analytics, no Plausible, no Umami, no custom event pipeline. The apps don't ship usage statistics anywhere.
- Crash reporting: minimal, scoped, and opt-out-able. Every app reports crashes only, never gamepad input, Satellite addresses, or SSIDs: Dish for Android through Firebase Crashlytics, Dish for Windows, Dish for Linux and Satellite through Sentry. The switch is on by default and lives in each app's Settings under Diagnostics. Each app's policy spells out its specific scope.
- No ads, no advertising SDKs. The apps don't link any ad libraries and don't show ads.
- No account system. There's nothing to sign up for. We don't know who's using Dish.
- No remote configuration. No feature flags fetched from a server. The apps don't phone home for behavior toggles.
- No cloud backend. The "server" in the system is Satellite, which runs on your gaming PC, on your LAN. TinkerNorth doesn't operate any infrastructure that touches your gameplay.
- Open source, auditable. Every line of every app is in a public repo. You can verify the claims on this page.
The website itself
tinkernorth.com and dish.tinkernorth.com are static sites hosted on Amazon S3 behind CloudFront. There are no client-side analytics scripts on this site. CloudFront and S3 generate standard server-side access logs (IP, user-agent, request path, timestamp) that AWS retains per its documented retention. We use those logs for capacity planning and abuse detection only; we don't profile visitors and we don't share the logs with third parties.
Support links in the footer open third-party platforms (GitHub Sponsors, Ko-fi, Buy Me a Coffee). Once you click through, you're on their site under their privacy policy.
Your rights, wherever you are
Each app's policy spells out the access / correction / deletion / portability rights for the relevant jurisdictions. The short version: because the apps don't collect personal data and TinkerNorth doesn't operate a backend, most "data subject access requests" are answered by uninstalling the app. Specific app permissions (like Bluetooth contacts on Android) live on your device's settings and you control them there.
Disclosure and contact
Found something we missed in a policy or in the apps' actual behavior? Email privacy@tinkernorth.com (it's a monitored mailbox) or open an issue on the relevant repo. For coordinated security disclosure, see SECURITY.md in the Satellite repo.