Privacy
Last updated 15 November 2026
Draft. This page has not been checked by a lawyer yet and is not legal advice. Still waiting for counsel: the store categories for each item below; the rules for children (COPPA in the US, the GDPR in the EU) and the birth year question; whether crash reports need a Yes first; whether the iCloud copy and the Android backup count as data we collect; Texas SB 2420; the legal basis for each item and transfers outside the EU.
Melisol listens while you sing. Nothing is recorded or sent.
Some things you choose to do do leave your phone: a challenge you send, a practice set you share, a message you write, a wrong note you report, and anonymous counts if you say Yes. Checking whether you have Melisol Plus also talks to RevenueCat each time the app opens, and when the app crashes it sends a report without content to Sentry. This page lists each one, what it carries and how long it is kept.
Melisol has no accounts, no ads and no tracking. It never asks for your name, your email address, your contacts or your location, and it does not use your phone's advertising identifier.
What stays on your phone
- Your voice and your instrument. The microphone sound is turned into notes on your phone. It is held in memory only for the phrase being scored, and is never written to storage or sent. "Play my take" plays your last phrase back from memory until the next phrase starts, then it is gone.
- Your practice. Answers, stars, levels, XP, your Ear rating, your weeks, your Collection and your checkups are stored on your phone.
- Your voice range and voice card. Stored on your phone. When you share your voice card, its text holds your range, such as "F3 to D5. Closest to alto.", and goes only where you send it. Its link (melisol.app/v) never carries your range.
- What brings you here. Your answer to the first question, and the settings you choose, stay on your phone.
- Your age answer. Melisol asks only when you first write a message in Messages. On iPhone with iOS 26 or later, iOS may share an age range with the app; otherwise, if you choose to write your own message, Melisol asks for a birth year. The answer stays on your phone and is never sent.
- Reminders, the widget and the rating prompt. Reminders are notifications your phone schedules itself, with no server. The home screen widget reads a file the app writes on your phone. Nothing about them is sent.
- Names in a duel on one phone. When you pass the phone around, the names you type are labels on that phone for that duel only.
Backups and moving to a new phone
- iPhone. Your progress is part of your iPhone's own iCloud backup, and Melisol also keeps a small copy of your progress in your own iCloud (iCloud key-value storage), so a new iPhone can start where you left off. Both are in your iCloud, under your Apple Account. We cannot read them.
- Android. Your progress and settings are part of your phone's own Android backup with Google, if backup is on. We cannot read it.
- What the backups hold. Everything in "What stays on your phone" above, your age answer and your answer to the first question included, is in your phone's own backup. The iCloud copy holds your levels, stars, Atlas, Collection, weeks in a row, Ear rating and voice range, never your age answer.
- Progress file. In Settings, Progress, you can save one file with your answers, levels, Collection and settings, and keep it wherever you like. Saving it sends nothing.
The random codes described below (for challenges, Messages and reports) are never in a backup or a progress file, so two phones never share one.
What leaves your phone, and when
Everything below goes over an encrypted connection (HTTPS). Challenges, practice sets, messages, reports and counts go to Melisol's server; purchases go to the App Store or Google Play and to RevenueCat (see Purchases); the Daily Tune share and share pictures go only where you send them. Each request to Melisol's server, except the downloads of tunes and settings, also names the app version and whether it is the iPhone or Android app, so an old version can be told to update. That is stored only as part of the anonymous counts below.
Challenges sent by link
When you make a challenge, or post your score in one, Melisol sends the challenge's settings (the skill, the level, the questions' seed and version numbers, the number of questions or the time) and your score, under a random code made for that one challenge. Never a name. The link you share holds only a short random code.
Kept 14 days, then deleted.
Practice sets you share
When you share a practice set, Melisol sends the set's options (its parts, its length, a seed for the questions and version numbers). No code for you or your phone is sent with it. The set's title is made on each phone, never sent.
Kept 12 months after the last time someone opens it in Melisol, then deleted. Viewing its link page in a browser does not count as opening it.
The Daily Tune share
Sharing your Daily Tune result opens your phone's share sheet with a short text such as "Melisol #142, sung, 3/6" and a link with the tune's number. It goes only where you send it. Melisol itself sends nothing.
Some screens let you share a picture card (your voice card, then and now, a challenge you won, a Rush score, a week met). It is drawn on your phone when you tap Share and goes only where you send it. It holds numbers only, never your singing or a code. Melisol uploads nothing.
Messages to the developer
In Help shape Melisol, Messages lets you send an idea or a problem. Only when you press Send, Melisol sends what you wrote (or the choice you picked), the app version, your phone model, the system version and the app language, under a random code for that conversation. The screen says this before you send. Please don't include personal details.
When a message arrives, the developer gets an email that says only that conversation's code and whether it is an idea, a problem or a choice, never what you wrote. The developer reads your message and replies on Melisol's server. Replies appear in Messages when you open the app.
A conversation is kept 12 months after its last message, then deleted. "Delete this conversation" in Messages deletes it from the server at once, with the developer's replies. No copy of what you wrote is kept anywhere else, apart from the server's own backups for up to 30 days (see Deleting, and backups of the server).
Messages shows a short conversation code. Keep it: it is how you can ask us about your conversation, even without the app (see Deleting your data).
"Something sounds wrong"
When you report a wrong note in a tune, Melisol sends the tune, its version and the note you picked, with a random code for your phone that is used only for these reports. Nothing you sang, and no text.
Kept 90 days, then deleted.
Anonymous counts and daily crowds, only after you say Yes
On your second day Melisol asks whether it may send anonymous counts. Until you answer, nothing is sent. The same switch is in Settings ("Send anonymous counts").
- Counts are codes and numbers, such as "a session finished" or "a challenge was opened": the code, the day, iPhone or Android, the app version, the week you started and, for some, whether it was your first, seventh or thirtieth day. Never what you sing, what you answer or what you write, and never your phone's model.
- Daily crowds are the Daily Tune's number, the way you played it and how many hears it took, and Today's Rush date, its question set and your score. They let Melisol show lines such as "Average today 3 hears".
Neither carries any code for you or your phone. Each batch of counts carries a random number made for that batch only, so a batch sent twice counts once. It is new every time, says nothing about your phone, and the server keeps only a scrambled form of it for 7 days. Each one only adds to a total, so the server has no row for any phone. Totals are kept 25 months (counts) and 13 months (daily crowds).
Counts from your first days are kept on your phone until you answer. If you say Yes, they are sent too; if you say No, they are deleted. Turning the switch off stops sending at once and deletes the counts still waiting on your phone. A phone known to belong to someone under 13 never sends counts.
Purchases
Melisol Plus is bought through the App Store on iPhone and Google Play on Android. Apple or Google takes the payment. We never see your name, your store account or your payment details.
Melisol uses RevenueCat to know whether Plus is on. Each time the app opens or comes back to the front, whether or not you ever buy, and when you buy or restore, the app talks to RevenueCat, and RevenueCat checks your purchases with Apple or Google. RevenueCat keeps a record of those purchases under a random id that it makes for this app on this phone.
With each of these requests, RevenueCat's code in the app also sends: on iPhone, the identifier Apple gives this developer's apps on that iPhone (the same for every app from Melisol's developer on one iPhone, and not the advertising identifier); and on both, the phone model (and its maker on Android), the system version, the app version, your preferred languages and the country of your App Store or Google Play account. RevenueCat notes when the app last connected, and its records show a country worked out from your IP address; RevenueCat says it does not keep the IP address itself. Whether RevenueCat keeps the iPhone identifier and these phone details is not confirmed yet; until RevenueCat confirms it does not, our App Store privacy details list the identifier as collected.
Melisol tells RevenueCat nothing about your practice, and does not tell it when you look at the Plus screen.
How long RevenueCat keeps purchase records is set by its terms: see RevenueCat's privacy policy.
Crash and error reports
When the app crashes or hits an error, it sends a report to Sentry, a service that collects crash reports for developers: the kind of error, where in the code it happened, the app version, the phone model and the system version, and whether the app was open or in the background. Reports carry no content: no error text, no screens, nothing you sang, answered or wrote, and no name. A report of a crash in the phone's own part of the app also carries a random number that Sentry's code makes when Melisol is installed, so the developer can see how many installs a crash hits; a new install gets a new number. On iPhone, some of those reports also carry the phone's language and time zone. Like any web request, sending a report shows your IP address to Sentry. Reports are kept 30 days. See Sentry's privacy policy.
Tunes, settings and link pages
Melisol downloads new tunes, the Daily Tune schedule and a small settings file from melisol.app. These requests name only the file. Like any web request, every request shows your IP address to the server. Melisol's server stores no IP address. For the requests that send something above, and for the challenge and practice set pages people see when they open a Melisol link in a browser, it uses the address in memory to limit how many requests one address can make. The link pages set no cookies and load no analytics.
On Android, when you install Melisol from a link's Google Play button, Google Play hands the app that link's path once, on your phone, so the app can open it. Nothing is sent.
When Apple tells RevenueCat about a purchase (a renewal, a refund, a withdrawn consent), RevenueCat passes a copy to Melisol's server. The server checks it came from Apple, counts only its kind and the day, and keeps nothing that could point to a phone or a person.
Android test builds: the Audio check
Test builds given to a small group of Android testers include an Audio check, which measures how Melisol listens on that phone. Nothing is recorded. At the end it shows the numbers it found (the phone's maker and model, the Android version, the app build and timing numbers, with pass or fail for each check; never sound, notes or pitch). Only if the tester taps Send, their own email app opens with that text addressed to the developer, and they send it from there. The developer copies the numbers into the project's notes, then deletes the email, at the latest when the test ends. Store builds have no Audio check.
This website
melisol.app is a set of plain pages. It sets no cookies and has no ads. It loads nothing from other sites except one small Cloudflare script on the home page that counts visits.
Cloudflare hosts the site. Like any web host, Cloudflare processes your IP address and your browser's technical details to deliver the pages and to protect the site from attacks. See Cloudflare's privacy policy.
We count visits to the home page with Cloudflare Web Analytics: how often it is read, from which country, with which browser and on what kind of device, and from which site a visitor came. It sets no cookies, does not identify you and does not follow you to other sites; we see only totals. We keep no request logs. See Cloudflare Web Analytics.
The home page shows pictures of the app. It never uses your microphone and plays no sound.
Who handles data for us
These companies process data only to run their part of Melisol for us:
- Cloudflare runs Melisol's server, its database, its file storage and the email routing for Messages, and hosts this website and counts its visits. Cloudflare's privacy policy.
- RevenueCat checks purchases, as above. RevenueCat's privacy policy.
- Sentry collects crash and error reports, as above. Sentry's privacy policy.
- Apple and Google sell Plus through their stores and keep your backups, under their own policies: Apple, Google.
Each of them is bound by its terms with us to protect this data at least as well as this page describes. None of them may use it for advertising.
Deleting, and backups of the server
When you delete something above, it is removed from the database at once. When its time is up, it is removed within a day, at the server's daily cleanup. The database keeps its own backups for up to 30 days, so a deleted item can stay in a backup that long before it is gone for good. For how to delete what you sent, see Deleting your data.
Children
Melisol is listed for people aged 13 and over, and its words are written for teens and adults. Some younger people use it, so the app is built to be safe for them too:
- Messages, for someone under 13 or who has not answered the age question, offers fixed choices instead of a text box.
- For someone known to be under 13, Melisol never sends anonymous counts or daily crowds, sends wrong-note reports without any code for the phone, and never opens the Plus screen by itself.
- A choice sent in Messages carries the conversation's random code, so the reply can come back.
- No one can see another person's name or messages anywhere in Melisol.
The age answer stays on the phone. If you are a parent and think your child sent us something, write to us with the conversation code from Messages.
Your choices
- Use Tap it instead of singing: every question can be answered without the microphone.
- Turn the microphone off for Melisol in your phone's settings at any time.
- Say No to anonymous counts, or turn them off later in Settings.
- Delete a conversation in Messages.
- On iPhone, turn off the iCloud copy in Settings, Progress: the copy in your iCloud is deleted, and no new one is saved.
- Delete Melisol to remove everything it stored on your phone, the random codes for challenges, Messages and reports included; installing it again starts fresh. The iCloud copy stays in your iCloud unless you turn it off first, and your iCloud or Android backup keeps its own copy until you delete that backup.
Depending on where you live, you may have the right to ask what we hold about you, to have it corrected or deleted, to object, and to complain to a data protection authority. Because Melisol has no accounts, we can find something only by a code you can give us, such as the conversation code in Messages. Write to support@melisol.app.
Changes
If Melisol starts to send something new, this page changes first, with a new date, and the app's privacy details in the App Store and Google Play change with it.
Contact
Melisol is made by Vahagn Khorotyan, an individual entrepreneur registered in Armenia ("we"). Write to support@melisol.app, or use Messages in the app.