Privacy
What Vocal Habit collects
Your singing stays on your device. The website and the iOS app use our own analytics; on the website, the choices below control it.
Last updated 2 October 2026
The iOS app
Vocal Habit processes microphone audio on your device to detect pitch and score your singing. Microphone audio is never uploaded. You can revoke microphone access in iOS Settings.
Practice sessions, pitch results, routines, imported songs and settings stay in local app storage. There is no account or cloud sync. Deleting the app removes its local data; iOS device backups may retain app data according to your device settings.
The iOS app sends usage events to PostHog, the same analytics service the website uses, so we can see which parts help people practise: screens opened, practice started and finished, scores, and errors when something breaks. Events carry a random ID the app creates, plus the app version and device type. PostHog also receives your IP address with each event and works out an approximate location (country and city) from it. Events never include microphone audio, your name or your email.
In the EU, the UK and other places where privacy law asks for consent, that ID lasts only until you close the app, so separate launches are not linked. The app does not use tracking cookies, show advertising or track you across other apps and websites. Piano samples and fonts are bundled with the app.
If you choose Leave a comment, your message, optional email address and the practice context shown in that form are sent to our Netlify feedback service. Netlify also receives connection information such as your IP address. Microphone audio is never attached.
Opening a linked lesson video, calendar reminder or external website contacts that service, whose own privacy policy applies. Questions can be sent through Leave a comment in the app.
Your voice never leaves your device
Vocal Habit listens to your microphone to work out which note you are singing. All of that happens inside your browser: the audio is analysed on your own machine and discarded as it goes.
We do not record you, we do not upload audio, and we do not store a voiceprint or any other biometric identifier. There is no code path in the app that sends microphone data anywhere, and the pitch detection you see on screen is computed locally, frame by frame.
Your browser will still ask for microphone permission, because that is how browsers work. You can revoke it at any time from the icon in your address bar, and the app will keep working for everything that does not need scoring.
What is stored on your device
Your practice history, routine, saved songs and settings are kept in your own browser storage. They are never sent to us. That is why your progress survives a refresh but does not follow you to another browser, and why clearing site data erases it.
A copy of your settings, routine and course progress (not your practice history) is also kept in one cookie, vh_carry. Safari gives an app you add to your Home Screen or Dock its own empty storage but copies the site's cookies into it, so this is what lets the installed app remember you. Your browser sends that cookie along when it loads our pages; our host does not read or keep it.
You can export all of it as a file, or wipe it, from the "Your data" section at the bottom of the Progress screen.
·
Practice sessions, scores and streaks
·
Your routine, chosen voice part, tempo and exercise settings
·
Songs you import, and any lyrics you add to them
·
Counters that tell us how many days you have practised, used for the analytics below
Analytics
We use PostHog, configured to send data to us and nobody else. There is no advertising network, no data broker, no cross-site tracking and no session recording. We are trying to answer one question: which parts of this actually help people sing better, and which parts get abandoned.
If you allow it, your visits are linked together with a first-party identifier so we can tell whether someone who practised in week one is still practising in week four. If you decline, we fall back to a rotating anonymous identity: the visit is still counted, but nothing joins it to any other visit. That anonymous mode is how the entire site ran until September 2026, so declining genuinely costs you nothing.
When something in the app breaks, we also collect the error itself: the message, the stack trace and the page it happened on. It is the only way we find out that a thing is broken for someone who is not us. It is gated on the same setting as everything else here, so declining turns it off too.
If your browser sends a Global Privacy Control signal, we treat that as a decline and never ask.
What we never do
·
No accounts, so we do not hold your name, email or password
·
No advertising, and no selling or sharing of personal information
·
No third-party trackers or social pixels
·
No session replay or screen recording
·
No microphone audio leaving your device, ever
Other services in the page
The site is hosted on Netlify, which keeps standard server logs including IP addresses, as any web host does. We use Ahrefs Web Analytics for a coarse view of where visitors arrive from; it is configured cookielessly and stores nothing on your device. Fonts are served from Google Fonts.
Your choices
You can change the analytics setting for this browser at any time using the control above. You can export or delete everything stored on your device from the Progress screen. You can revoke microphone access from your browser. And because we hold no account, there is no profile of you on our side to request or delete.
If you are in the EU or UK, you were asked before anything durable was stored. If you are elsewhere, analytics default to on and the control above is your opt-out, alongside the Global Privacy Control signal which we honour everywhere.
Contact
Questions about any of this can go through the Feedback link in the app, which reaches a form we read.
Piano credits
Salamander Grand Piano by Alexander Holm, provided through Tone.js. Selected samples are pitch-shifted and shaped during playback.
Creative Commons Attribution 3.0
Sample source and original notice