StringSong

Language: 中文 · English · Bahasa Malaysia

Privacy Policy

Last updated: 2026-10-17 · Version 1.3

This policy explains what personal data StringSong ("we", "us") handles when you use the website stringsong.io and the app at app.stringsong.io (together, the "Service"), why, who else is involved, how long we keep it, and what you can do about it. We have tried to keep it short and plain. If anything is unclear, write to [email protected].

1. Who we are

StringSong is run by JuXSThink, an individual based in Malaysia (no company yet). For the purposes of Malaysia's Personal Data Protection Act 2010 ("PDPA") he is the data controller (data user), and for the EU/UK GDPR he is the controller of the personal data described here. He is also the contact person for data protection: [email protected]. If the law requires us to appoint a data protection officer, we will do so and name them here.

2. What we collect

In short: you can listen without an account. If you sign in with Google, we keep your name, profile photo link and email (through Google Firebase), plus the things you do in the app that need saving: likes, follows, recently played songs, daily usage counts and your playlists. We do not run ads, we do not use third-party analytics or tracking, and we do not sell your data.

If you do not sign in

Your likes, followed singers, recently played songs, play counts for this device (your last 500 plays, with times), recent searches, settings and daily usage counts are kept in your browser (local storage) and are not sent to us. Likes and follows saved on this browser while signed out are copied to your account when you sign in, and then removed from the browser (if that copy does not succeed, they stay in the browser as its own data). Recently played, play counts and searches are not uploaded. See the Cookie & Storage Notice.

Lyric cards are made on your device; nothing is uploaded to us. Sharing one uses your device's share sheet, so where it goes is your choice.

If you create an account (Google sign-in)

DataWhere it comes fromDetails
Account: user id, email address, display name, profile photo linkGoogle, when you sign inHeld by Firebase Authentication. Your display name and photo link are copied to your profile. We never see your Google password.
Profile preferencesYouApp language (Chinese/English) and listening mode, with created/updated times.
Likes and followsYouWhich songs you liked and which singers you follow, with the time.
Recently playedYouAbout your last 30 played songs, with the time.
Daily usageThe appPer day: how many manual skips you used and which albums you opened (used for the Free plan limits).
Playlists (Plus/Premium)YouPlaylist names, the songs in them, created/updated times.
PlanUs / our payment providerWhich plan you are on (Free, Plus or Premium).

Like totals per song and follower totals per singer are shown publicly as anonymous counts; they never show who liked or followed.

Payments (when paid plans launch)

Paid plans are not on sale yet. When they launch, payments will be processed by Stripe. Stripe collects your payment details directly; we never see or store full card numbers. We will receive what we need to run your subscription: a customer id, the plan, its status and renewal dates, and the email for receipts.

Technical data

  • This website (stringsong.io) keeps an access log of time, requested page and result. It does not record IP addresses.
  • The app's server keeps an access log of time, a shortened IP address (the last part removed: for IPv4 the last number, for IPv6 everything after the first half), requested address without its query part, and result.
  • Both servers, and their logs, run on the operator's own computer in Malaysia.
  • Cloudflare, which sits in front of our servers, and Google (Firebase, and the Google sites listed in section 4) receive your IP address and browser details when your browser contacts them, to deliver the Service and protect it from abuse.
  • Our Cloud Functions write error logs in Google Cloud. These can include your user id (for example when a like could not be counted).
  • We may switch on Firebase App Check with Google reCAPTCHA Enterprise to block automated abuse; if we do, Google will process device and interaction signals for that purpose.

We do not ask for sensitive personal data (such as health, religion or political opinions) and ask you not to put any in playlist names.

3. Why we use it

PurposeDataLegal basis (GDPR)
Sign you in and keep your library in sync across devicesAccount, profile, likes, follows, recent, playlistsContract (providing the Service you asked for)
Apply plan limits and give paid featuresDaily usage, planContract
Take payments and keep billing records (when launched)Payment and subscription dataContract; legal obligation (tax records)
Keep the Service secure and working; prevent abuseTechnical data, logsLegitimate interests (a safe, working service)
Show anonymous like and follower countsLikes, follows (aggregated)Legitimate interests
Answer your messages and requestsWhat you send usLegitimate interests; legal obligation for rights requests

Creating an account is voluntary. Without one you can still listen; you just cannot sync, make playlists or subscribe. We do not use your data for advertising, profiling or automated decisions with legal or similar effects, and we do not use your personal data to train AI models.

4. Who we share it with

We share personal data only with service providers that run parts of the Service for us, under their data processing terms, and only as needed:

  • Google (Firebase): sign-in (Google sign-in, Firebase Authentication), database (Cloud Firestore), file storage (Cloud Storage), server functions and their logs (Cloud Functions), reached at googleapis.com and cloudfunctions.net; and, only if we enable it (not yet), App Check / reCAPTCHA Enterprise.
  • Other Google services: during Google sign-in your browser contacts apis.google.com and our sign-in domain stringsong-4764e.firebaseapp.com, and the app shows your profile photo from googleusercontent.com. Your browser contacts these directly, so Google receives your IP address and browser details. The app's engine, fonts and the Firebase software are served from app.stringsong.io itself, not from Google's content servers.
  • Cloudflare: domain name service, secure connection (tunnel) to our servers, and content delivery. Cloudflare may also collect network error reports from your browser (a.nel.cloudflare.com) when a connection to our site fails.
  • Stripe: payment processing, once paid plans launch.

We may also disclose data if required by law or a valid order from an authority, or to protect the rights and safety of users or the public. If StringSong is ever transferred to a new operator, we will tell you before your data is handled under a different policy. We do not sell personal data and do not "share" it for cross-context behavioural advertising (as those terms are used in California law).

5. Where it is stored

Our Firebase database, file storage and functions are located in Google Cloud region asia-southeast1 (Singapore). Our web servers and their access logs are on the operator's computer in Malaysia. Google, Cloudflare and Stripe operate worldwide, so your data may also be processed in other countries, including the United States. Where the law requires safeguards for such transfers (for example under the PDPA or GDPR), we rely on these providers' data processing terms, which include contractual safeguards such as standard contractual clauses where applicable.

6. How long we keep it

  • Account data (profile, likes, follows, recently played, playlists): while your account exists. Recently played is limited to about your last 30 songs.
  • Daily usage counters (skips and albums opened, used for the Free plan's limits): deleted automatically after 2 days.
  • When you delete your account (in the app: Account & settings → Delete account, confirmed with Google): your sign-in account is deleted at once and our server then automatically deletes your profile, likes, follows, recently played, usage and playlists. Public like and follower counts go down accordingly. Some small technical markers remain for up to about 8 days and then expire automatically: one holding only your user id (so a signed-out device cannot recreate data), and counter markers holding your user id with a song or singer id (so like counts stay correct). Deleting your account does not cancel a paid subscription: cancel it first.
  • Backups: we do not currently keep scheduled backups of the database. If we start, deleted data will remain in a backup only until that backup expires, and we will state the period here.
  • Cloud Functions error logs: about 30 days (Google Cloud's default), then deleted by Google.
  • Billing records (when paid plans launch): as long as tax and accounting law requires (in Malaysia generally 7 years), even after account deletion.
  • Server access logs: one file per day, deleted automatically after 90 days.
  • Emails you send us: as long as needed to deal with your request, then up to 2 years.
  • Data in your browser: signing out (in that tab and every other open tab) removes recently played, playback positions for Continue listening, today's Daily Mix, recent searches, this device's play counts, the account sync markers and the offline copy of your synced library. Before signing out the app tries to send changes that are not synced yet; if you are offline it warns you that they would be lost. Device settings (language, listening mode, shuffle, repeat, autoplay, the Daily Mix seed, the side panel), the Free plan's daily counters and a sign-in diagnostics log stay until you clear this site's data. That log holds the last 50 sign-in events on this device (time, event type, error code, a shortened account id, app build id), is used only to find the cause of unexpected sign-outs, never leaves the device, and can be viewed or copied in About / Diagnostics. Deleting your account removes the same as signing out, plus the likes and follows kept in the browser and the note that the welcome message was shown.

7. Your rights and choices

Depending on where you live (including under the PDPA, GDPR and California law), you can:

  • Access the personal data we hold about you, and get a copy in a portable format (export): email us.
  • Correct data that is wrong or out of date: email us (your name and photo come from your Google account).
  • Delete your account and data: use Delete account in the app, or email us.
  • Withdraw consent or object to or ask us to limit processing based on legitimate interests.
  • Not be treated differently for using these rights.
  • Complain to a data protection authority: in Malaysia the Personal Data Protection Commissioner; in the EU/UK your local supervisory authority.

Choices to limit what we process:

  • listen without an account, so nothing about your listening reaches us;
  • signed in, choose not to like, follow or make playlists, and delete any you made;
  • sign out to remove your recently played, searches, play counts and the offline copy of your library from the device, or clear this site's data to remove everything;
  • ask us to stop a particular use or to restrict processing (email us);
  • delete your account to end all processing tied to it.

Send requests to [email protected] from the email on your account (or tell us how to verify you). We answer within 21 days (PDPA) and in any case within one month, and we do not charge for reasonable requests.

8. Children

StringSong is not directed at children. You must be at least 13 years old to create an account, or older if your country requires it for consenting to online services (up to 16 in some EU countries). Users under 18 need a parent or guardian's permission to buy a subscription. If we learn that we hold data of a child below these ages without valid consent, we delete it. Parents can contact [email protected].

9. Security and breaches

We use encrypted connections (HTTPS) everywhere; database rules that deny everything by default and let each user read and write only their own data; server-checked plan permissions; short-lived (15-minute) signed links for paid media; no secret keys inside the app; and Google sign-in so we never handle passwords. No system is perfectly secure.

If a personal data breach happens, we will notify the Personal Data Protection Commissioner within 72 hours of becoming aware of it where the law requires, and tell affected users without undue delay where it is likely to cause them significant harm, with what happened and what they can do.

10. Changes, contact and languages

If we change this policy we will update the date above, and for important changes we will tell you in the app or by email before they take effect. Earlier versions are listed below.

Privacy questions and requests: JuXSThink, [email protected]. Anything else: [email protected].

This policy is available in English, Chinese and Bahasa Malaysia. If the versions differ, the English version prevails.

Version history: 1.0 (2026-10-17) first public version. 1.1 (2026-10-17) what sign-out and account deletion remove from the browser; play counts; Google services the app contacts; daily usage counters deleted after 2 days. 1.2 (2026-10-17) Continue-listening positions, Daily Mix seed, side panel, lyric cards; Cloudflare network error reports. 1.3 (2026-10-17) sign-in diagnostics log, Daily Mix list, welcome-note marker.