Who your browser talks to
Loading a page here makes your browser fetch things. Anything it fetches
from somebody else's server tells that server your IP address, roughly
where you are, and which page you were on. That happens before you click
anything, and no sentence in a policy undoes it. So here is the actual list.
Google Fonts Every page
fonts.googleapis.com · fonts.gstatic.com
Serves the three typefaces this site is set in. Every visitor's IP address
reaches Google on every page load. We are listing this rather than burying
it, because plenty of sites pretend a font is not a third party. It is.
Self-hosting the fonts removes this entirely and is on the list to do.
unpkg Terminal only · runs code
unpkg.com
The Terminal loads React and Babel from this CDN and runs them. That is
a different and larger thing than fetching a price: it is executable code from
somebody else's server, so if unpkg is ever compromised or simply down, that
page breaks or runs something we did not write. It is listed separately for
that reason. Serving these three files from our own host removes the risk
entirely and is the next thing to fix on that page.
three.js 3D models only · runs code
Served from this site. No outside server is contacted.
The three dimensional models of Loophole and the Rave Bus are drawn by three.js, which we did
not write. It is listed here because it is somebody else's executable code
running in your browser, and that is worth knowing whoever serves it. What is
different from the entry above is where it comes from: the library is copied
into this site rather than loaded from a CDN, so no third party learns your IP
address, and nobody outside this project can change the code after the fact.
It is MIT licensed and the licence travels with it in
assets/vendor/three.
It is also optional. Nothing loads it unless you press
Open the 3D model on the Loophole page, and that button is only offered
on machines that can use it. Everything the model shows is written out
underneath it, so declining costs you nothing but the ability to turn the
city round.
Instagram Never contacted
Served from this site. No outside server is contacted.
The Instagram posts on the People page look like a feed and are not one.
Nothing on this site loads anything from Instagram, Meta or Facebook, there
is no embed, no widget and no tracking pixel, and Meta is never told you
were here. The pictures are ordinary files served from brokehella.com
like every other image.
They get there because a script on our machine downloads them in advance and
writes them into the site. That keeps the access token off the internet
entirely, which matters: Instagram's tokens expire about every sixty days and
a static site has nowhere safe to keep one. The cost is time, and it is
printed rather than hidden. Each account shows the date its snapshot was
taken, so a feed that has gone stale says so on its face instead of quietly
looking current.
Kraken Terminal only
api.kraken.com
Public crypto prices and candles. No account, no key, and no order is ever placed.
Coinbase Exchange Terminal only
api.exchange.coinbase.com
Public crypto candles. Read-only and unauthenticated.
Stooq Terminal only
stooq.com
Public stock quotes and daily history, as CSV. Read-only, no account.
Polymarket Terminal only
gamma-api.polymarket.com
Public prediction-market odds. Read-only. We place nothing and we hold nothing.
Kalshi Terminal only
trading-api.kalshi.com
Public prediction-market listings. Read-only, unauthenticated, no order ever placed.
Netlify Forms Every form on this site
the host this site already runs on
Every form here tries to send itself directly first, so you do not have to
leave the page and finish the job in your own mail app. That attempt is a
request to Netlify, the company already hosting these files, so it is not a
new company learning your IP address, only a new thing that company is doing
with a request it would receive regardless. If that request fails, for
instance this site is not deployed on Netlify or forms have not been turned
on there yet, the form falls back to the mail-app method, exactly as before.
One case is routed around this on purpose: a Scene Cards crew note names a
specific person to write to, and it always goes straight to their mail app,
never through Netlify, because it was addressed to them, not to us.
Art Institute of Chicago Art Desk only
api.artic.edu · www.artic.edu
The museum's public collection API, plus its IIIF image service for the
pictures themselves. Read-only, no key, no account. It sees your IP
address and what you searched for, the same as any website you visit.
Nothing about you is sent along with the search.
Audius The Decks only, when you open its tab
api.audius.co · the Audius content nodes it points to
An open music platform where artists put up their own tracks for
anyone to stream. The Decks searches it and
streams the tracks you load, straight from Audius to your browser,
which is what lets them be scratched and mixed. No key and no
account. Audius and the node that serves a track see your IP address,
what you searched for and what you played, the same as any website
you visit; nothing about you is sent along. Every track shows its
artist and links back to them, which is the one thing Audius asks of
apps. The tracks are the artists' own and Brokehella does not choose
or check them.
Spotify Switched off until its app is registered · names only
accounts.spotify.com · api.spotify.com
On The Decks, BRING MY SPOTIFY LIST sends you
to Spotify to say yes, then reads the names of your top tracks, your
liked songs or a playlist you made, and looks each one up on Audius.
Spotify's terms forbid mixing its music and it never hands a website
a song, so nothing plays from Spotify. The sign-in uses PKCE, so the
site holds no secret; the permissions only read lists; the key it
gets lives in the open tab and is never saved. Spotify sees that you
used the app. Brokehella sees nothing: there is no server in the
middle. It stays switched off until the founder registers the
Spotify developer app, and while that app is in Spotify's
development mode it works for its owner and up to five people they add.
Internet Archive The Decks only, when you open its tab
archive.org · the archive.org servers it points to
The nonprofit library's netlabel collection: releases that small
labels put out free under Creative Commons licences.
The Decks searches it and streams the tracks
you load, straight from the Archive to your browser. No key and no
account. The Archive sees your IP address, what you searched for and
what you played; nothing about you is sent along. Only releases that
state a Creative Commons licence are listed, and every track shows
that licence and links to its release.
Open Trivia Database Side Quest only
opentdb.com
A free, community-maintained question set, licensed CC BY-SA 4.0.
Read-only and no key. It issues a session token so the same question
does not repeat at you all night; that token is stored on your device,
identifies a run of questions rather than a person, and is not an
account. Your score is never sent anywhere.
Supabase Studio accounts, the pledge roll, party rooms and Crowd Rooms
ybrjocmwfpcwftvimjgk.supabase.co · cdn.jsdelivr.net
The database and sign-in behind studio accounts. It is the first
thing on this site that stores anything about you on somebody
else's computer, so here is exactly what and exactly when.
The studio: only if you sign in. It works signed out and saves
to your own browser, which is still the primary path. If you never
sign in, the only request the studio makes to Supabase is the library
download from the CDN.
The Oath: when you swear it. Taking the Oath on the Pledge page
writes one row here with the name or handle you gave, your email, the
optional line about what brought you, and the serial on your coin. That
happens without an account, so this is the one place the site stores
something about you without you signing in first. Nothing else on the
page sends anything: the Constitution, the vote and the complaint form
do not touch this database.
The roll can be written and not read. That table takes new rows
from anybody and returns none to anybody. The key in our page source
can add your name and cannot fetch a single one back, so nobody who
views source can download the list of people who have sworn. We tested
it against the live database: adding a row returned success, asking for
the list returned an empty array. Reading it takes the private key,
which is not in this website and never has been.
Party rooms and Crowd Rooms: nothing stored. The Party games
and the Crowd Room use Supabase's live
relay, not its database: a message goes from one screen to the
others while the room is open and is not written down. A phone in a
Crowd Room is a random number made when the page opens, with no
name. The DJ's decks send the phones the titles and artists in the
crate and what is playing, and nothing else.
If you do sign in, it holds your email address and whatever
projects you choose to save: pattern data, tempo, and the name you
gave them. Nothing else. No tracking, no analytics, no profile
built from what you make.
The Brokedex: only if you sign in to keep it. Finding things
on this site sends nothing anywhere; your finds sit in your own
browser. If you sign in on the Brokedex
to keep them, two tables hold them. brokedex_finds has
one row per thing you kept: its name, when your browser says you
found it, and when our server received it. brokedex_days
has one row per day you came back signed in, written with the
server's date so loyalty cannot be moved by changing a clock. Taking
the Oath while signed in also dates it on your profile, once. Nobody
else can read any of it, and there is no delete or edit from the
browser: a kept find stays kept. They are not NFTs, not for sale and
worth no money. What you have not kept is never sent.
Nobody else can read it. The table holding your projects has
row level security tied to your account: a request carrying somebody
else's session, or no session at all, reads an empty list and is
refused on write. We tested that against the live database by
signing in as two different users and trying to make each one read
and delete the other's work. Both attempts failed, which is the
result we wanted. The key in our page source is the publishable one,
which is designed to be public and grants nothing by itself.
Sign-in is a link by email, not a password. There is no
password to leak because there is not one.
Party rooms: carried, never stored. When you play on
Party, the big screen and the phones talk
through Supabase Realtime, a relay that passes messages between
people in the same room. What passes through it: the room code, the
name and colour you typed, your taps, and the state of the game.
None of it is written to the database; a room exists while people
are in it and nothing about it is kept. Your card (whether you are
the Tourist, and the spot) and every tap you make are encrypted
between your phone and the big screen with a key the two of them
agree on, so the relay carries them without being able to read
them, and nobody else in the room can read your card or vote as
you. The connection is made directly from the page with the same
publishable key as above; no library is downloaded for it. The
only things kept are two notes in your own browser, listed in
privacy.
That is the whole list, and it was built by watching what the browser
actually requests, not by reading our own code and hoping. Everything above
Netlify Forms is confined to one page each; open any other page carrying no
form and Google Fonts is the only outside company involved.
There is no analytics script, no advertising pixel, no session recorder, no
heatmap, no chat widget, no A/B testing service and no tag manager anywhere on
this site. If that ever changes, it gets added here in the same change that
adds it, not afterwards.
Artificial intelligence No AI features
No page on this site sends anything to an AI model. There is no chatbot,
no assistant, no generated text presented as fact, no AI scoring of anything
you write, and no model trained on your work. Nothing you type, record or
upload here goes to any AI company.
Claude was used as a tool by us while writing this software, the way an
editor or a compiler is a tool. That is a fact about how the code was built,
not a thing that happens to you when you visit.
Some of the pictures are generated Worth saying plainly
The coins, the comic cover, the rusted container in the homepage intro, the
homepage concept art (the woman and the container tower, the statue on the culture panel,
and the three VIP-against-everyone scenes, each now marked GENERATED where it sits), and the
illustrated artefacts around the site were
made with an image generator. They are drawings, not photographs, and nothing
on them is a record of an event that happened. Several of the coin faces still
carry the generator's own corner watermark and we left it there on purpose,
because removing it would be scrubbing off the one mark on the file that says
how it was made. The homepage's first picture is no longer generated at all. Since
28 October 2026 it is Loophole as our own Blender model renders it, drawn over by a
script of ours (scripts/build_hero_art.py) with the people, the line outside and the
sky. The generated picture it replaced had a static coin with a crown engraved on it
that an earlier clean-up missed. It is gone from the site, and the one coin on the
homepage is the one you can spin. On the other generated panels the crowns the generator
added were taken out (a stock symbol any brand could use, not ours). The untouched
originals are kept in the project's files, and scripts/clean_home_art.py is how it was done. Also on 28 October 2026, four more generated pictures on the homepage (the VIP water,
the VIP table, the split festival and the culture panel) were replaced by posters set in type
with simple drawn shapes (scripts/build_home_posters.py). Three Neighbor pictures that had a crown
built into the figure became typographic plates (scripts/build_neighbor_plates.py). The link
preview every page shares is now the drawing of the house, not the old coin card. Three of the four vision
panels are no longer generated at all: one is a corner of the Loophole floor plans,
and two are screenshots of the vote and the Receipts as they stand. Every picture on
the homepage, where it came from and what was done to it is listed in
site/data/assets.json.
The people living in Loophole are made up. Apart from the
In The Yams cast, who only say lines from their own character cards, the thirty-three
residents, the four people working the door and everything they say were written for
the house and sit in site/data/loophole-cast.json and site/data/loophole-world.json.
What they do and say next is chosen in your browser by a small rule-based script
(assets/loophole-director.js) with a dice roll. No model is asked, nothing is fetched
from anywhere else, and none of them is based on a real person.
Two things this does not mean. It does not mean a model runs when you visit,
because none does. And it does not mean the photographs are generated: the
field clips are phone footage from real rooms, shot by people who were there,
and the field guide says whose nights they
were. Where this site shows you a real place, it is a real place. Where it
shows you a drawing, it says so here.
The studio's voice pack is generated Worth saying plainly
The shouts in the DJ studio's voice pack ("Let's go!",
"¡Manos arriba!", "Руки вверх!" and the rest, in 32 languages) were made with
a voice model, VoxCPM2 by OpenBMB, released under the Apache 2.0 licence. We
ran it on our own computer, ahead of time, through the open-source
VoiceStudio app, and the page just plays the resulting audio files.
None of them is a real person. Each voice was designed from a written
description (a language, a gender, an age and "an MC hype voice"), not cloned
from anybody's recording, and each one speaks its own language rather than
imitating an accent. Nothing about you goes anywhere to make them: the DJ
studio still never contacts a model, and the list of voices, with the
description each was made from, is in the studio itself. The other sounds in
the studio's sound library are synthesized in your browser, by code, not by
a model.
Say Anything uses your device's own voices. In the studio's SAY ANYTHING
tab you can type any line and have it spoken. That uses the speech voices your
phone or computer already has, through the browser's built-in speech feature.
The tab lists only voices the browser marks as on-device. Some browsers also offer
"online" voices that send the text to Google or Microsoft to be spoken, and we
leave those out, so what you type stays on your device and this page sends it
nowhere. Which voices and languages you get depends on your device, not on us.
SING-SONG in that tab only bends a speech voice up and down a little tune, word by
word. It is not a singing model, and the studio has none.
The slang and sayings are those same voices. Some pack voices also say current
slang ("No cap", "Let him cook"), everyday sayings and Miami Spanish ("¡Dale!"). Each line
was made by cloning from that voice's own five shouts, with the same model, on our own
computer, ahead of time, so a saying is the same designed voice as the shouts and no real
person. We left out slang that is sexual, insulting or about drugs. What each line means is
written by us.
The Mic Director writes; it does not record. SAY ANYTHING also has a phrase bank of
original DJ cues (openers, builds, countdowns, drops, crowd work, transitions, Miami callouts,
recovery, closers, slang and sayings) that it strings into an editable mic run of about 15, 30
or 60 seconds. Those runs are text, spoken by a voice already on your device. They are not extra
Voice Pack recordings, and browser speech cannot go onto a pad or into REC SET.
The cast, children's voices included, is designed too. The studio's CAST & CHOIR has a
mixture of voices for crowds and harmony: children, teens, adults, elders, a soprano, a tenor, a deep
bass and more. Each was designed from a written description with the same model, on our own computer,
ahead of time. The children's voices are designed, not any child's: no child was recorded or cloned,
and they only shout the pack's clean lines and sing vowels. The held vowels are tuned to a named note
so the choir builder can stack them into a chord, which happens in your browser.
The Voice Lab edits; it does not imitate anyone. The studio's VOICE LAB changes the
pitch and speed of whatever is on a pad, stacks copies of it into a double or a choir, layers
pads and adds echo. That is ordinary audio processing in your browser, not a voice model, and
it cannot make anybody sound like somebody else. RECORD MY VOICE puts up to ten seconds of
your microphone on a pad for this session. It is not uploaded or kept, and closing the page
ends it. The site has no voice cloning, because cloning needs a model we will not run on a
page, and because a clone of a voice that is not yours is not ours to offer.
The Sample Maker is arithmetic, not AI. The Sample Maker builds
drums, synths, loops and noise from formulas, and its reverb, echo, pitch and SPLIT are ordinary
filters run in your browser. SPLIT cuts by frequency and by left and right; it does not separate
instruments, and the page says so. The microphone is open only while RECORD is lit. What you save
stays in your browser's own storage; nothing is uploaded and the page talks to no other service.
Hum It is arithmetic, not AI. Hum It finds the pitch of your voice with
the YIN method, a formula from a 2002 paper, and sorts beatbox hits by where their sound sits, low,
middle or high. No model is downloaded and nothing you sing leaves your device. The microphone is
open only while RECORD is lit; the MIDI and WAV files are made in your browser, and SHARE hands the
file to your phone's own share sheet.
The Culture Draft is the public record, sorted. The Culture Draft
uses real names: musicians, producers, songwriters, actors, directors, films, TV series, networks and
artists. Every number on a card is read by a script from a table on a Wikipedia page (Academy Award
nomination lists for acting, directing and every film craft from screenplay to makeup, Emmy and Grammy nomination lists, claimed record sales, the most expensive artworks sold), never typed
by hand, and each card links to the exact page revision it was read from. A card's big number is only
its rank within its own role; the 52-week season is a game played with those ranks, not a prediction or
a judgement of anyone's work. The credits roll at the end names real people for real nominations and
says plainly that the picture was never made; its image is drawn on your own device. No AI writes or scores anything. There are no photographs of people, so
no card suggests anyone endorsed the game. One person on the source lists is left out by our choice,
and the page says who. The game data is a file on this site; the page talks to no other service, and a
receipt link only opens Wikipedia if you tap it. The daily leaderboard lives in our Supabase database:
posting sends a name you choose, an optional social handle, your five picks, a browser code and the day's game data, which
the database checks against a fingerprint of that day made in advance before it re-scores the picks itself,
so a score typed into a browser cannot go on the board. A score counts only if it is posted within 15 minutes
of first opening the day's crate, only with the shot clock on, and only the first one; each browser
gets one go a day. A name, and a social handle, belongs to the first browser that posts it. Handles are
shown as text, never linked, and nothing proves a handle belongs to whoever typed it.
Names are checked for links, phone numbers and official-sounding names; they are not screened for every
offensive word, and a reported name or handle comes down.
In The Yams has a narrator Worth saying plainly
The In The Yams chapters have a read-along under each panel, written by
us. When a chapter shows a Listen button, the narrator reading it is a generated voice: designed
from a written description with VoxCPM2 (Apache 2.0) on our own computer, chosen by ear, and
locked so it never changes between panels or chapters. It is no real person and was cloned from
nobody. The page only plays the recorded files.
The rule if that changes Binding
If an AI feature ever ships here then, before it is switched on: it is labelled
where it appears and not only in a policy; it says whose model it uses; you are
told what leaves your device to make it work; it can be turned off; and its
output is never presented as verified fact. Nothing you make in the Studio, and
nothing you write in the Still Room or The Wrack, will be used to train a model,
by us or by anybody we work with.
What we collect
Signed out, which is the default: nothing. No account, no cookies we
set, nothing of yours on a server of ours. Your projects, your Still Room
favourites and your Wrack reports live in your own browser's storage, on your
device, and we cannot read them. Clearing your browser data deletes them, and
if you have not exported first they are gone. That is a real cost of having no
server, and it cuts both ways.
Signed in, which is always optional: your email address, the studio
projects you chose to save, and. If you vote. A record that you
voted in a particular ballot. That is the whole list. It is described in full
under Supabase above, including the fact that nobody without your session can
read any of it.
What we deliberately do not record about your vote Live
Which option you chose is not stored against you anywhere. One table
records that you voted. A separate table records what was chosen. They share no
column that could connect them, and neither points at the other, so there is no
query anybody can run. Us included, with full access to our own database
, that reconstructs your ballot. It is not hidden behind a permission. It
was never written down.
Both of those tables store a date rather than a timestamp, on purpose. If
one held the second you were marked as having voted and the other held the
second a vote arrived, matching them up would rebuild the whole ballot. Everyone
who votes on the same day sits in the same bucket instead.
The honest limit: somebody watching our database as writes happen could still
correlate them in real time. Defending against that needs infrastructure we do
not have, so we are saying it rather than implying otherwise. The claim we will
stand behind is narrower and true. after the fact, our own database
cannot tell anyone who voted for whom. One consequence we accept: we cannot
show you your own ballot after you cast it, and no future feature will, because
there is nothing to look up.
Every form on this site tries to send directly through Netlify first and falls
back to your own mail app only if that fails, so what you submit lands either
in Netlify's form dashboard for this site, or in an ordinary inbox, depending on
which path actually worked that time. Either way it goes to us, not to a list.
It is not enriched and not sold. If you are signed in, nothing in a form
submission is joined to your account either. Those two paths never meet.
The rule if that changes Binding
Anything new we collect gets named on this page and in
the privacy policy before it starts: what it is, why
it exists, how long it is kept, and how to get it deleted. We do not collect
something because it might be useful one day.
Storage and public buckets Binding
A bucket is a folder on a hosting company's storage service. Left public by
accident it is readable by the whole internet, and that single mistake is behind
a very large share of the data leaks you read about. It is almost always
carelessness rather than an attack.
Today Brokehella has no buckets and no database. It is static files on a
host. If storage ever exists here the rule is: private by default; nothing
containing anyone's personal information ever goes in a public bucket; anything
genuinely meant to be public, like a poster or a track somebody chose to release,
lives in a separate bucket that holds nothing else; and no unlisted-but-public
URLs treated as though they were a password.
Paying, trials and cancelling Nothing is for sale to people
There is nothing for a person to buy on this site today. No subscription, no
trial, no card stored anywhere. The rules below are written now, while nobody
is paying us and being strict costs us nothing.
The one thing that is charged for is machine collection, and it is charged to
bots, never to people. The Toll answers AI training
crawlers and scraping tools with HTTP 402 and asks $0.01 a request in USDC on
Base, paid with x402. It runs as a Netlify edge function that reads each
request's user agent to tell a bot from a browser, and keeps nothing about
anybody. A paying bot's payment is checked and settled through
Coinbase's x402 facilitator (api.cdp.coinbase.com), with Brokehella's
own key held in Netlify's server settings, never in the site's code. Payments
land on the Base blockchain, where every transaction is public, in
Brokehella's own wallet. People, search engines, link previews and AI
assistants fetching a page for a person are never asked.
Cancelling Binding
Cancelling takes the same number of clicks as signing up, on the same device,
in the same place. If you can subscribe on a web page you can cancel on a web
page. No phone call, no chat with our team, no retention offer you have to decline
three times, no hunting through settings. You get an email confirming it, and
access runs to the end of what you already paid for.
Trials Binding
If a free trial ever exists we email you before it converts, not after,
and early enough to actually do something about it, saying the date, the amount
and how to stop it in one click. A trial that quietly becomes a charge is a trap,
and it is the most common complaint there is about software billing.
Renewals Binding
Any recurring charge gets a reminder before it happens, with the amount and the
date. Prices do not rise silently. If we ever raise one you are told beforehand
and you can leave without penalty.
Cryptocurrency Not accepted, nowhere on the roadmap yet
We have been asked about giving in cryptocurrency, specifically toward
under-resourced areas, education, and community help. That is a real
goal worth stating plainly rather than quietly building around: no
wallet exists on this site, we do not hold or generate one for
anybody, and there is no token, coin, or cryptocurrency of our own,
and none is planned. A donation address only ever goes up once a real
person here actually controls that wallet, and a payment mechanism of
any kind only ships after the legal and tax review that real money
deserves, the same rule that already governs the Reservoir and Copper
Patron above. This line exists so the goal is on the record before
the capability is, not the other way around.
Crisis, self-harm and hard nights
Parts of this site are deliberately built for four in the morning. The
Still Room exists for people having a bad one.
That comes with a duty.
Nothing here is a treatment. No sound treats a condition, reverses
intoxication, or manages a withdrawal. The beds are named for situations and
never for diagnoses, and they never will be. If an AI feature ever ships here it
will not give advice about self-harm, about suicide, or about how to use a
substance. It will say it is not the right thing to be talking to and point at a
human, every time, without exception and without a "but".
If somebody cannot be woken, is struggling to breathe, has a seizure, or is
burning up, call 911. Florida has a law that protects people who call
for help in an overdose. Stay with them.
988 is the Suicide and Crisis Lifeline, by call or text, any hour.
1-800-662-4357 is the SAMHSA national helpline, free and confidential.
Neither of those is us, and both of them are better at this than a website.
Things we are not going to do
- Sell, rent or trade your personal information. There is no version of this where that is fine.
- Sell the contents of your projects, your recordings or your voice, or hand them to anybody to train a model.
- Put an advertising pixel or a session recorder on this site.
- Make cancelling harder than subscribing.
- Let a trial convert without telling you first.
- Charge more without telling you before it happens.
- Publish anybody's face, name or report without them choosing it.
- Claim that a sound, a page or a number treats a medical condition.
- Show an invented figure as though it were measured. Numbers here carry their state, or they do not go up.
If we get this wrong
Tell us, and we will fix it and say what happened:
info@brokehella.com.
A page like this is only worth something if it can be proved wrong, so if you
find anything on this site that contradicts it, that is a bug and we want it.
This page describes the site as built and deployed. It is not legal advice and it
has not been reviewed by a lawyer. The commitments above are ours; the statutes
they touch are somebody else's, and where the two disagree, the law wins.