Privacy Policy

Hue · updated May 23, 2026

The short version

Hue is built local-first. Your colors, the vibes you send, and the wavelength you build with anyone all live only on your device. There are no user accounts and no servers I operate that hold your content. Starting with this version, the app uses a small set of standard third-party services (PostHog, Sentry, and a feedback pipeline) so I can see whether the app works for you and hear from you when it doesn't — described in detail below. None of them receive the actual colors, vibes, or wavelength content you create.

Data you create in the app

Everything you do in Hue — your two-color identity (the "chord"), the vibes you send and receive, your daily allowance counter, and the wavelength grids that form between you and anyone else — is stored locally on your device using AsyncStorage. Nothing leaves your phone.

The app does not yet have remote sync. When that arrives in a future version, this policy will be updated before that version ships.

If you uninstall Hue, your local data is gone.

Analytics

Hue uses PostHog (US data residency) to record a small set of usage events — for example, when onboarding starts, when you send a vibe, when you open the settings screen. The purpose is to understand whether the loop is working, not to identify you. The events carry an anonymous device identifier generated on first launch and stored on your device; they do not carry your name, email, phone number, IP address, contacts, or the raw hex of the colors you send. Where a color event is recorded, only its derived HSL bucket (hue/saturation/lightness as numbers) is included.

You can opt out by uninstalling the app — there is no remote off-switch yet. If you'd like analytics removed retroactively, email me (below) with your approximate first-install date and I'll request deletion from PostHog.

Crash reports

Hue uses Sentry to capture crashes and JavaScript errors. Sentry receives an anonymized stack trace, the app version and build, the device model, and the OS version. It does not receive your colors, your vibes, your wavelength, or any text you type into the app. Sentry retains crash reports for 90 days by default.

In-app feedback

If you tap send feedback in settings and submit a message, the message and a small bit of context (app version, build number, device model, OS version, and the same anonymous device identifier used for analytics) are POSTed over HTTPS to a Cloudflare Worker I operate. The worker files the message as a Linear issue in my private workspace. The message is whatever you typed; no screenshots or app contents are attached automatically. If you'd like a submitted feedback message deleted, email me with enough detail to find the issue and I'll delete it.

Notifications

If you opt in to notifications, the app schedules local notifications on your device when your seed friend "Hugo" sends you a vibe back. These are generated on your device by expo-notifications — there is no remote push server. Nothing about your notifications leaves your phone.

Sharing your wavelength

If you tap share on a wavelength, the app generates a 1080×1920 PNG of the painting on your device and hands it to Apple's native share sheet. You choose where it goes — Messages, Instagram, Photos, anywhere. The image is generated locally; I never see it.

The app does not request access to your photo library directly. If you choose to save the share image, iOS will ask for that permission through its own dialog.

Camera, microphone, contacts, location

The app does not access your camera, microphone, contacts, or location in this version.

What I don't do

Your choices

Changes

If I change this policy, I'll update the date at the top. Any material change — like adding remote sync or third-party services — will be reflected here before the version that introduces it ships.

Contact

Questions? Email jfu213@gmail.com.