TesseractDJ ("the app") and the website at hitthemic.com ("the site") are
operated by Danny Delacruz. This policy explains what data is collected, how it is used, and your
choices. Together the app and site are referred to as the "Services".
Data stored on your device
The app stores the following data locally in a SQLite database on your device only:
Your song favorites, play history, and queue
Spotify playlists you have imported (song titles and artist names only — no Spotify credentials)
Favorite artists and genres
A record of which in-app tips you have dismissed (stored as a numeric bitmask)
A randomly generated device identifier used to identify your device within a party session
This data never leaves your device except as described below.
Copying your YouTube sign-in (Mac only, optional, off by default)
The Mac app plays videos in its own private browser view, which is signed out. If you have a
YouTube Premium subscription, that means you still see ads even though you pay not to. To fix
this, the Mac app can copy your existing YouTube sign-in from Mozilla Firefox on the same
computer.
This is entirely optional, is never done automatically, and asks for your explicit
confirmation each time before anything is read. Specifically:
Only YouTube's cookies are read. The app queries Firefox's cookie
database for the youtube.com domain and nothing else. No other website's
cookies are read, copied, or examined at any point. If YouTube does not recognise your
account from those cookies alone, the app will also request your google.com
sign-in cookies, and it tells you when it has done so.
It never leaves your computer. The copied cookies are stored only in the
app's own storage on your Mac, readable only by your user account. They are not
transmitted to my servers or to any third party, and I never see them.
What they are used for. Solely so that song previews in the app and video
playback on your TV output are signed in as you, and therefore ad-free if you have
Premium.
Removing it. "Forget" in Global Config › YouTube Account deletes
the copy from the app and from the TV output component immediately. Signing out of YouTube
in Firefox, or changing your Google password, also invalidates it.
Firefox is the only supported source because it is the only major browser whose cookies can be
read without asking you to hand the app broader access to your Mac. This feature is not available
on iPhone or iPad.
Data sent to my server
The following information is transmitted to my servers (hitthemic.com) solely to provide
features of the Services:
Search queries — song and artist names you type into the search bar,
used to return results from my karaoke database.
Library sync — favorites, history, and playlists may be synced so you
can restore your library on a new device. Synced data is linked to your device ID, and
additionally to your name and email if you sign in (see below).
Account sign-in — if you sign in with Apple, Google, or email/password,
your name and email address are stored on my server and linked to your library so it
can be restored across devices. Passwords (email sign-in only) are stored as bcrypt
hashes — I never see or store the plaintext.
Party sessions — when you create or join a party (from the app or from a
web browser as a guest), song titles, artist names, your chosen device name, and your
device ID are shared with the party session for the duration of the session. Sessions
expire automatically. If a host blocks a participant, a limited block record may be
retained beyond the session so the block can be enforced.
Party photos — you may optionally upload a photo to be shown on the
party's display screen when you are the current or next singer. The photo is stored
temporarily on my server, linked to your device ID for the duration of the party, and
is deleted when the party ends. You can remove it at any time from the party's guest
list, and the party host can remove it as well. Please upload only a photo you are
comfortable showing publicly, and do not upload photos of other people without their
permission.
Party slideshow photos — separately from the single screen photo
above, you may contribute photos to a slideshow shown on the party's TV, optionally
with a caption and your name. These are stored on my server for the party, may be
collected into a single archive that the party's host can download, and may appear in
the party recap described below. Location and other metadata are stripped from every
photo before it is stored. You can remove your own photos during the party, and the
host can remove any of them.
Party recap — after a party, a recap page may be generated for the
host summarising the night: songs played and when, participant names, shout-outs, any
trivia scores, and the slideshow photos above. It lives at an unlisted web address
that is not indexed or linked publicly, but anyone given the link can open it, and the
page is kept indefinitely rather than expiring. Ask me and I will delete a recap.
Usage events — certain in-app actions (a song played, queued, favorited,
or a search returning a result) are sent to my server with a song identifier, solo/party
context, a timestamp, and your device identifier. The device identifier is stored as a
one-way hash (SHA-256, truncated). These records power features such as the end-of-year
"Year in Singing" recap and are retained for approximately 120 days.
Party planning records — when a host builds a party in advance, I keep
a de-identified record of how that party was put together: the kind of event, the
board theme, the running order and the song identifiers chosen, plus totals such as
how many songs were sung or skipped. It is used to make party planning better over
time. Names, contact details, venue, photos, messages and the host's own description
of the event are removed before this record is stored, and any name I already hold
is stripped out of the wording that remains. Unlike the party records described
above, it is not deleted after 14 days, because it no longer describes anyone.
Push notifications — if you enable notifications, your device's push
token is stored so I can send alerts such as "you're up next" during a party.
Feedback — if you submit feedback through the app, your message and
(optionally) the email you provide are sent to me as a notification.
Song requests — when a search returns no results, you can submit the
song title and (optionally) artist name so I can add it. The search query that produced
no results is also recorded. No name, email, or device ID is attached.
Website waitlist & contact form — if you enter your email in the
launch sign-up form on the site, it is stored so I can email you about the launch (you can
ask me to remove it at any time). If you use the site's contact form, your email and
message are sent to me as a notification so I can respond.
I do not sell or share your data with third parties for advertising purposes.
Analytics
The app uses Aptabase, a privacy-friendly analytics service, to understand
which features are used. It records anonymous, aggregate events and low-detail properties and is
designed not to collect personal information, advertising identifiers, or to track you across other
apps or websites. Separately, the first-party "usage events" described above are used for the same
purpose on my own server.
Third-party services
YouTube / Google — songs are played via the YouTube app or website, and
YouTube's own privacy policy applies to that playback.
Spotify — you can import a public Spotify playlist by sharing its link
into the app. The app reads only the playlist's public track listing (song titles and artist
names) to match against the karaoke catalog. There is no Spotify login, and I never receive
your Spotify password, account, or access tokens.
Sign in with Apple and Google Sign-In — used for optional
account sign-in.
Aptabase — anonymous product analytics, as described above.
TheAudioDB — artist images are fetched from TheAudioDB's public API.
GetSongBPM — song tempo and key data.
Venmo — where a host enables tipping, the app shows a link or QR code to
that host's own Venmo handle. Tips go directly from guest to host. I do not process, hold,
or route any payment, and I never receive tip amounts, payment details, or Venmo
identities.
Payments
Guests are never charged anything. There is no paid request, no paid queue priority, and no fee
to have a song played or to watch one — so there is no guest payment data for me to collect.
Where a host pays for a subscription, that payment is handled by the payment processor (such as
Apple or Stripe), not by me. I receive confirmation of what a given account is entitled to and when
that lapses. I never receive or store card numbers, bank details, or billing addresses.
Microphone
The app requests microphone access only for the voice search feature. Audio is processed
on-device by Apple's Speech Recognition framework. No audio recordings are stored or
transmitted by the app.
Audio playback controls
Optional audio adjustments (such as key and reverb, available on some platforms) are processed
entirely on your device while a song plays. No audio is recorded, uploaded, or transmitted to me or
any third party as part of these features.
Children under 13
The Services are a general-audience product, not directed at children. But parties are
family events, so children do attend them — and rather than pretend otherwise, the
Services ask everyone their age and then collect nothing personal from anyone under 13.
Accounts are for ages 13 and up. Creating an account requires an email
address, so the sign-up form asks for your date of birth and declines to create an account
for anyone under 13.
Children under 13 can still join a party and add songs. No account is
needed for that, and it has never needed one. When someone joins a party they are asked
their age range. For a guest who indicates they are under 13:
They cannot upload a photo — not to the TV screen and not to the
party slideshow.
Only a first name or nickname is kept, never a full name.
No push notification token is stored, so no notifications are sent to
their device.
No usage or analytics events are recorded about them, by me or by
Aptabase.
They are left out of the party recap page created after the event.
What remains is a randomly generated device identifier and the songs in the queue, used
only to hold their place in line and show their song on the screen — what the COPPA Rule
calls support for internal operations. It is not used for advertising, profiling, or tracking
across other apps or websites, and it is not shared.
The age answer is remembered on the device, and an under-13 answer cannot be changed
later by re-answering the question or reinstalling.
Because no personal information is collected from children under 13, I do not seek
verifiable parental consent — there is nothing collected that would require it. If you
believe a child under 13 has nonetheless provided personal information (for example, a photo
uploaded from an adult's phone), email me at the address below and I will delete it. Parents
may also ask what information is held about their child and request its deletion.
Your rights
You may request access to, correction of, or deletion of the personal information I hold about
you, and you can unsubscribe from waitlist emails at any time. If you are a California resident,
you have rights under the CCPA, including to know what is collected and to request deletion; I do
not sell personal information. To exercise any of these rights, email me at the address below.
Changes
I may update this policy. Continued use of the Services after changes constitutes acceptance
of the revised policy.