Lofi-Kawaii · KMC Apps

Privacy Policy

Effective: September 12, 2026

Summary: Lofi-Kawaii does not use OAuth or request Discord profile information. It stores a random, Activity-specific identifier on your device and records minimal anonymous usage information to estimate unique users, return usage, daily usage, and country-level usage over a rolling one-year period. It does not transmit playback activity, track choices, volume, or environmental-effect settings.

1. Scope

This Privacy Policy explains how the KMC Apps developer team (“KMC Apps,” “we,” or “us”) handles information in connection with the Lofi-Kawaii Discord Activity (“Lofi-Kawaii” or the “Service”). Discord separately processes information under its own policies.

2. Information Lofi-Kawaii Does Not Request

The current version of Lofi-Kawaii does not:

3. Information Processed on Your Device

Playback state

Track selection, play/pause state, and volume are handled in memory on your device. They are not transmitted to a KMC Apps server and reset when the Activity is reloaded or closed.

Favorite tracks

Favorite track selections are stored only in localStorage on your device so they remain available after reloads. They use Lofi-Kawaii track identifiers, are not sent to a KMC Apps server, and can be removed by clearing this Activity's site data.

Discord SDK connection

Lofi-Kawaii uses the Discord Embedded App SDK only to establish that the Activity is ready inside Discord. The current code does not call SDK commands that request user profiles, authenticate a user, read messages, or fetch guild or channel records.

Anonymous usage measurement

To understand approximate usage, Lofi-Kawaii creates a random UUID using the browser's cryptographic API and stores it in localStorage under a key used only by this Activity. On startup, the Activity sends that identifier once to a KMC Apps Cloudflare Worker. It does not send your Discord ID, profile, playback state, selected track, volume, button activity, environmental-effect settings, or precise location. The Activity does not send a country value from the device.

The Worker converts the identifier to a keyed HMAC hash before storing it in Cloudflare D1. The database stores only that hash, the first and most recent JST usage dates, and whether the same identifier was seen on a later JST date. It also stores pseudonymous daily usage history using the HMAC hash and JST date, so the same stored identifier is counted once per JST day. These records are used only to estimate unique users, the percentage that return on a different day, and daily anonymous usage. Separately, the database stores only a per-day total of accepted usage events. Multiple launches by the same stored identifier on one day each add to that daily total, but no individual event history or event timestamp is stored. These records represent a browser or Discord WebView storage installation, not a verified individual person.

4. Hosting and Network Information

Discord and the hosting or content-delivery provider used to serve Lofi-Kawaii may automatically process technical request information such as IP address, browser or device information (including User-Agent), access time, requested URL or asset, referring information, HTTP status, and security or error data. This information is used to deliver the Activity, maintain reliability, prevent abuse, and diagnose failures.

KMC Apps does not copy this technical request information into its anonymous usage database. Infrastructure providers determine their own technical logging and retention practices under their agreements and privacy policies.

For anonymous country-level usage statistics, the Cloudflare Worker may use the two-letter country code that Cloudflare derives from a request (for example, JP or US). KMC Apps stores that country code with the pseudonymous daily usage history; it does not store raw IP addresses, User-Agent values, Discord IDs or usernames, email addresses, or precise location in the anonymous usage database. If no valid country code is available, the usage may be recorded as unknown.

5. Third-Party Services

Lofi-Kawaii does not include advertising networks, social-tracking scripts, or third-party behavioral analytics.

6. Retention and Deletion

Anonymous usage records are retained until the stored identifier has not been seen for more than one year, based on JST dates, and are then deleted by a scheduled cleanup. Pseudonymous daily usage history and associated country codes, and daily aggregate usage totals are also retained for a rolling one-year period and then deleted. The reported unique-user total is therefore an approximate rolling one-year total, not a permanent lifetime count. In-memory playback state ends when the page or Activity process is closed. The local anonymous identifier remains until site data is cleared or storage is otherwise reset.

Daily and country-level statistics are available only for usage recorded after those analytics features are introduced; Lofi-Kawaii does not reconstruct missing historical daily or country information. During a reporting period, one anonymous installation may be observed in more than one country, so country totals may add up to more than the overall unique-user total.

To show how many anonymous installations have opened the Activity at least twice, Lofi-Kawaii stores a cumulative visit count with each pseudonymous identifier. Existing records are initialized from the safest known lower bound: installations already observed on separate dates start at two, and all others start at one. Earlier same-day repeat usage cannot be reconstructed. The administration screen displays only the aggregate number of installations with two or more accepted visits, never an individual identifier or an individual visit history.

Lofi-Kawaii does not add an opt-out control to the player interface. If you do not want future launches included in this anonymous measurement, do not launch the Activity or use browser or platform controls to block site storage for it, where such controls are available. Clearing the Activity's site data removes the locally stored identifier, but launching again with storage available creates a new identifier and resumes measurement; clearing data is therefore a reset, not a persistent opt-out setting.

The stored HMAC hash is not linked to a Discord account, so KMC Apps cannot locate a particular database row from a Discord username or profile. Privacy questions may be submitted through the official KMC Apps Community support server linked from Lofi-Kawaii's Discord application profile or App Directory listing. Requests concerning data controlled by Discord or another infrastructure provider should be directed to that provider.

7. Security

KMC Apps uses reasonable measures appropriate to this small Activity. The anonymous identifier is generated with a cryptographic browser API, transformed with a server-side secret before database storage, retained only for the stated period, and kept separate from Discord account information. KMC Apps also avoids unnecessary Discord API access. No internet transmission or software can be guaranteed completely secure.

8. Children

Lofi-Kawaii is not directed to anyone below the minimum age required to use Discord in their country. KMC Apps does not knowingly request personal information from children through the Activity. Users must satisfy Discord's applicable age requirements.

9. Changes to This Policy

KMC Apps may update this Policy when the Service, its data practices, hosting arrangements, or platform requirements change. The effective date above will be revised when an updated version is published. Material new collection or use of information will be described before or when the relevant feature is made available.

10. Contact

Privacy questions, requests, and concerns may be submitted through the official KMC Apps Community support server linked from Lofi-Kawaii's Discord application profile or App Directory listing.