PRIVACY POLICY
Effective date: September 1, 2026. Applies to Lo-Fi Fireplace Radio 0.1 and later on Android, Android TV, iOS, iPadOS and macOS.
The short version: no ads, no advertising trackers, no accounts. The room is free. The radio has a free daily limit and a paid subscription; payments go through your app store (section 3a), never through an account with us. Both the Android and iOS apps include Google Firebase, which can collect anonymous, aggregated usage data (which objects in the room get touched, how long a session lasts) and crash reports so we can improve the app, with the advertising identifier disabled. It is off by default: nothing is collected unless you turn on "Share diagnostics" in Settings. The app collects no name, email, contacts, precise location, or advertising ID. The radio fetches its playlist and downloads its music from our server, with no account and nothing identifying you attached to the request (section 3); while diagnostics are off it is the only part of the app that uses the internet. Everything else stays on your device.
1. WHO WE ARE
Lo-Fi Fireplace Radio is published by Michał Daniel Dobrzański, Poland ("we", "us"). Under the GDPR we are the controller of the little data described here. We are small enough that no data protection officer is required, so mail reaches us directly, at one of two addresses and no others:
- Anything at all, privacy requests included: contact@lofifireplace.com.
- Artists and musicians: collab@lofifireplace.com.
2. DATA WE COLLECT
Both apps include Google Firebase, which can collect anonymous, aggregated usage data that helps us understand how the app is used and improve it. Collection is off by default on both platforms and starts only when you turn on "Share diagnostics" in Settings; turning it off stops it again. While it is on, the events are: a session started and ended (with its length and whether it ran on a television), an object in the room was touched (by its name, such as the cat or the hearth), and a sleep timer was set (with its length). Alongside these, Firebase automatically collects a randomly generated app-instance identifier and basic technical context (device model, operating-system and app version, and an approximate region derived from your IP address by Google).
We have disabled the advertising identifier (AD_ID), so this data is not tied to an advertising profile and is not used for advertising. We do not collect your name, email address, contacts, precise location, or anything you play or mix in the app. We do not sell or share this data, and we use no advertising SDKs.
This processing is based on your consent, given by turning the setting on. Firebase acts as our processor; Google processes the data under its own terms (see Firebase privacy and Google's Privacy Policy).
Under the same switch, Firebase Crashlytics records a report when the app crashes (the stack trace, device model, operating-system and app version, and the app's state at the time) so we can fix the fault. Neither usage events nor crash reports contain a name, email, or anything typed into the app, and neither uses the advertising identifier. The app uses no other Firebase service.
3. THE RADIO STATION
The radio starts with the app, and while "Share diagnostics" is off it is the only part of the app that uses the internet. When the app opens or comes back to the foreground, and roughly every half hour while it keeps playing, it asks our server for a small playlist file listing the current tracks and how long each one runs. It then downloads those tracks from our hosting provider. Everything else, the room and its video, the fire, rain, crickets and vinyl crackle, and every object you touch, is on your device and works with no connection at all.
These are ordinary web requests for files. There is no account and no sign-in, nothing that identifies you or your device is sent with them, and we keep no record of what you played: our server holds no per-user state and answers everyone with the same playlist. As with any web server, our hosting provider sees the IP address a request comes from.
Two things are kept on your device as a result: the playlist file, and a cache of the music already downloaded, which the app trims back whenever it reaches its size limit. That cache is why the station keeps playing when you go offline, and why a track is not downloaded twice. Clearing the app's data or uninstalling the app removes both; a random cache key stays in the iOS Keychain; it holds no personal data. If the network is gone and nothing useful is cached, the radio goes quiet until it is back; the room's own sounds keep playing.
3A. PURCHASES AND SUPPORTER NAMES
The subscription, the lifetime purchase and the tips are handled by Google Play or the Apple App Store and checked by RevenueCat, our billing provider. We never see your name, email or payment details. RevenueCat knows your purchase by a random id created on your device and keeps the store receipt and your purchase history for us. Restoring purchases uses your store account, not an account with us. If purchases are not active in your version of the app, none of this applies and no billing code runs.
Every active listener (a monthly or yearly subscription, or the keys to the room) can send a name to show in the app. The name and the random purchase id go to our server, we check the purchase with RevenueCat, and I approve every name by hand before it shows to anyone. Use any name you like; it does not have to be your real one, and most people use a first name or a nickname.
Once approved, the name is public inside the app: every person using the app, on every platform, sees it walk along the bar at the foot of the room, in the list behind the app's "all supporters" button, and in the count of supporters shown beside them, in alphabetical order and with no other information about you. Sending a name is agreeing to that. You can send a different name at any time (it waits for approval again), and anyone can hide the bar in Settings on their own device.
With the name we store only what the feature needs: the random purchase id, when the name was sent and approved, when the plan it came with ends (as RevenueCat reports it; the keys have no end), and when your app last opened, which the app refreshes each time it starts while your plan is active. The name stops showing the moment the plan ends or after 90 days without the app opening, and the row is deleted a month after that. Write to us (section 10) and it comes down at once.
The app also shows how many rooms are listening right now. That number comes from an anonymous counter of requests to the playlist server; no id of any kind travels with a request or is stored with the count.
4. DATA ON YOUR DEVICE ONLY
To remember how you left the room, the app stores a small amount of data locally (Android: app preferences; iOS: user defaults): your sound switch and volumes, each ambience bed's level, whether the radio was on, your sleep timer length, and the display settings (keep the screen on, show the clock, show the listeners' names, dim level), the supporter name you typed and where along the names bar it had walked, and whether you turned on "Share diagnostics".
This data never leaves your device. It is removed when you uninstall the app (on Android it may be included in your device's standard encrypted backups, controlled by your device settings).
5. PERMISSIONS, AND WHY
| Permission / feature | Why the app needs it |
|---|---|
Foreground media playback service (Android FOREGROUND_SERVICE_MEDIA_PLAYBACK)
and the audio background mode (iOS) |
So the fireplace keeps playing with the screen off, with play/pause in the system's media controls. |
Wake lock (Android WAKE_LOCK) |
So the audio decoder keeps running while the display sleeps. |
| Keep the screen on (a setting, on by default) | So the room stays on screen for as long as you leave it running. Turn it off in settings on a phone; a television always stays on. |
| Haptics (iOS) | A light tick when you touch the cat or the hearth. |
Internet access (Android INTERNET) |
So the radio can fetch its playlist and download the music, as described in section 3, and, only if you turn "Share diagnostics" on, to send the usage events and crash reports described in section 2. Nothing else in the app uses it. |
The app uses no location, camera, microphone, contacts, storage, or any other sensitive permission.
6. CHILDREN
The app is suitable for all ages but is not directed to children, and we do not knowingly collect personal data from children. The analytics described above is anonymous and not used to build profiles of individuals.
7. THIRD PARTIES
We use Google Firebase Analytics and Crashlytics, in both apps and only
while "Share diagnostics" is on, as described in section 2, and Firebase Remote Config,
which fetches a few app settings (like the radio's free daily minutes) and sends nothing
about you. When purchases are active we use RevenueCat to check them, as
described in section 3a. We also use two hosting
providers to serve the radio described in section 3: Supabase, which
answers with the playlist file, and Cloudflare, which serves the music
(behind cdn.lofifireplace.com) and this website. They handle plain file
requests and receive nothing from us about you beyond what any web server sees. We bundle no
advertising services and share no data for advertising. If you downloaded the app from
Google Play or the Apple App Store, those stores process your download under their own
privacy policies, independently of us.
7A. WHY WE ARE ALLOWED TO
The GDPR asks us to name a legal basis for each thing we do with data. Ours are:
| What | Legal basis |
|---|---|
| Usage events and crash reports, while "Share diagnostics" is on (section 2) | Your consent, Article 6(1)(a). The switch gives it and the same switch takes it back. Taking it back stops the collection; it does not make what came before it unlawful. |
| Fetching the playlist and downloading the music (section 3) | Performance of the contract you enter into by using the app, Article 6(1)(b): without the request there is no radio. |
| Keeping the servers up and unabused, and the request logs our hosting providers write (section 3) | Our legitimate interest in a service that works and is not abused, Article 6(1)(f). |
| Checking a purchase and restoring it (section 3a) | Performance of the contract, Article 6(1)(b), and, for the receipt we have to be able to show, our legal obligation under tax and accounting law, Article 6(1)(c). |
| Showing a supporter name you sent us to everyone using the app (section 3a) | Your consent, Article 6(1)(a), given by sending the name after being told it will be shown publicly in the app. Sending a different name replaces it; write to us and it comes down. |
Giving consent is never a condition of using the app: the room and the radio work with "Share diagnostics" off, which is how they arrive. We take no automated decisions about you and build no profiles (Article 22): nothing in the app treats one listener differently from another on the strength of data.
7B. HOW LONG IT IS KEPT
| What | How long |
|---|---|
| Usage events and the app-instance identifier | Firebase deletes them after the retention window set on our project, which is never longer than the 14 months Firebase allows. We export nothing and keep no copy. |
| Crash reports | Kept by Crashlytics for 90 days, then deleted by Google. |
| A supporter name, the random purchase id it came with, and its dates (sent, approved, plan end, app last opened) | Shown while the plan is active and the app has opened within 90 days; the row is deleted a month after it stopped being shown, or at once when you ask us to take it down, or when the station closes. A name that was never approved goes by the same clock. |
| Purchase records at RevenueCat | For as long as the purchase can be restored, and as long after that as tax and accounting law requires the receipt to be available. |
| Playlist and music requests | Nothing of ours to keep: the server holds no per-user state. The request logs our hosting providers write follow their own retention policies. |
| Everything on your device (sections 3 and 4) | Until you clear the app's data or uninstall the app. |
7C. DATA LEAVING THE EU
The providers in section 7 are United States companies and may process data outside the European Economic Area. Those transfers rest on the European Commission's Standard Contractual Clauses in each provider's data processing terms and, where the provider is certified, on the EU to US Data Privacy Framework. Ask us and we will point you at the current terms for any of them.
8. YOUR RIGHTS
Under the GDPR you may ask us for access to your personal data, for it to be corrected or erased, for its processing to be restricted, for a copy in a portable form, and you may object to processing we base on a legitimate interest. Where we rely on consent you may withdraw it at any time, which stops the processing from that point on. The same rights, under their local names, apply in the United Kingdom; California's CCPA gives comparable ones, and we do not sell or share personal information as any of these laws define it.
In practice most of this is already in your hands, and one part of it we genuinely cannot do for you:
- Diagnostics are off unless you turn them on, and the same switch in Settings turns them off again at any time.
- The usage analytics we hold is anonymous and not linked to your identity, so we cannot pick your records out of it to show, correct, export or delete them, and the law does not ask us to collect more data about you just to make that possible (Article 11). Google lets you reset the underlying app-instance identifier by clearing the app's data.
- A supporter name is the one thing we hold that can be pointed at a person. Write to us and it comes down; sending a different name from the app replaces it, and it falls off on its own when the plan ends or the app has not opened for 90 days (section 3a).
- All on-device data (sections 3 and 4) goes when you clear the app's data or uninstall the app, except a random cache key that stays in the iOS Keychain; it holds no personal data.
Write to contact@lofifireplace.com to exercise any of this, and we will answer within one month, as the GDPR requires. It costs nothing.
If you think we have got it wrong, you can complain to a data protection supervisory authority. Ours is the Polish Urząd Ochrony Danych Osobowych (ul. Stawki 2, 00-193 Warszawa, uodo.gov.pl), and you may go instead to the authority of the country where you live or work.
9. CHANGES
If a future version of the app ever changes what data it handles, we will update this page first and note the effective date at the top.
10. CONTACT
Privacy questions, requests under section 8, anything else: contact@lofifireplace.com.
Artists and musicians: collab@lofifireplace.com.