← BACK TO THE STREET

How this site is made

Every other Stimpunks site has a design system. This one has a street instead, and every room on it refuses to look like the one next door. This page says what is shared, what is not, what gets checked, and who makes it, including how we use AI. Last updated 2026-09-28. Every change to it is dated in the changelog.

THE SHORT VERSION

No design system, on purpose

Queering Earth is drawn as a herbarium sheet in daylight. Star Stuff has a design system page with a palette you can copy. Both are careful, and so is every other site we run. This one started from Ryan’s brief of 2026-09-19: “All of our sites are so careful. Careful color palettes, careful fact checking, careful sourcing, careful attribution. I wanna get wild and wacky and loose.”

So here the street is the system and the rooms refuse to share one. Each room brings its own ground, its own typefaces and its own palette. What does the most work is that each one is lit differently. The Faery Yurt is candlelight in canvas. The Latibulum has one low lamp in a burrow. The Community Center gets morning sun through a venetian blind. The Healing Checkpoint is lit from under the floor. The Outskirts has nothing but headlights, and the Adventurer’s Guild is lit like a photocopy, from nowhere at all. When two rooms are about the same feeling, something structural keeps them apart: where the light comes from, what the room is built of, which way round the words sit. A nudge to a colour will not do it.

The instinct to tidy all that up, with one type scale, one palette and shared components, is the right instinct on every other site we make. Here it would delete the thing the street is for. The rule we work to is short: if a change would make two rooms look more alike, it is probably wrong.

You will not find a count of the rooms anywhere on this site. The street keeps growing, and a total written into a dozen places goes out of date in eleven of them the day a room opens. A small checker refuses any sentence that states one.

What every room shares

One stylesheet, love.css, holds the whole street. It opens with a small shared base: the typefaces, a few ground rules every page needs (the skip link, the focus ring, making sure a hidden thing stays hidden), the dial, and some shared furniture. That furniture is the press-to-play plate, the job marker from the Adventurer’s Guild, the fractal window and the sign-off at the foot of every page. It carries layout and no colour of its own, so it turns up in each room wearing that room’s ink.

After the base, every room gets a section of its own, free to contradict all the others. Those sections duplicate each other’s ideas in different clothes, and that duplication is the point. The pages that have a job to do and no room to be, like this one, Privacy, the liner notes and the changelog, share one quiet look and otherwise get out of the way.

The dial

Every page has a dial with Gentle, Regular and MAX GLITTER on it. It starts wherever your device says about reduced motion, and once you pick a setting your browser remembers it (that is love-intensity on the privacy page). Gentle stills everything. Regular moves things when you hover over them or focus them. MAX GLITTER turns on the ambient layers, like the mirrorball over the dancefloor and the sparks at the guild.

Gentle takes away the wobble, never the words. No content is kept behind a louder setting, and nothing you can read at MAX is missing at Gentle. A checker loads every page at all three settings and measures both halves of that. Games keep a speed control of their own, separate from the dial, so Gentle never hands anybody a lesser game. Nothing on the street flashes or strobes, with one exception. The Rebellion Rave Room has a strobe for the people who stim with one, and it sits behind a warning and two presses.

This is a Disabled people’s organisation. A glitter-maximalist site that overwhelmed the people it is for would be the kind of self-own we exist to name. We did not fix that by toning the site down. We made loudness something the visitor holds. Access is the premise of this design, not the brake on it.

Loud, not illegible

Clashing is not the same as illegible. All text on the street is held to WCAG AA contrast against every ground it sits on, and two different checkers do the holding. The first is a list of every text colour and ground somebody chose, each with its ratio and the reason beside it. The second renders every page in a browser and measures each piece of text against the colour actually behind it, because the colour that renders is not always the colour that was written down. Each checker has caught failures the other could not see. Decoration that carries no words is listed with its measurement rather than ignored, and every room chooses its own focus ring, because a ring picked for a dark street disappears on a pale one.

The one change this repository made to Helen Edgar’s design for the Faery Yurt was a single grey, which failed contrast on every ground it sat on. That change is written up in the liner notes and the changelog rather than left in a diff.

Nothing plays until you press it

Every video and player on the street is a plate standing in for the real thing. Until you press it, this site has made no request to that service for you. Every plate says how long it runs before you press it. A live camera or a playlist has no length to give, so its plate says that instead. Every typeface, script, stylesheet and image is served from this site, so opening a page talks to nobody but our host. The full account is on the privacy page.

Type

Every typeface is self-hosted, and a room only downloads the faces it sets. The Foundry holds every face on the street, with who drew it, what licence it travels under and which rooms set it, all read from each family’s own record in Google Fonts’ public repository rather than typed in. Most are under the SIL Open Font License and a few are under Apache 2.0. We know that because a tool read those records and found our own credits saying every face was OFL.

Share cards

Every page has a share card, the picture that shows up when somebody posts a link. Each one is rendered in a headless browser from the page’s own markup and stylesheet, with a design for each room rather than one template, and none is written without alt text. A new room will not build until it has a card of its own. A room with somebody else’s face on its card would be the street tidying itself up somewhere nobody looks.

How it is built

The site is plain HTML files, one stylesheet and some small scripts, with no framework and nothing to compile before it can be served. Next to them sits a workshop of Python tools. Some generate the parts of a page that have to agree with a data file: a jukebox’s track list, a credit, the sitemap, a share card. Others check things we have got wrong before: a page left out of the sitemap, a photograph still carrying its location, a colour nobody measured, a quotation longer than a room allows, a credit with nobody’s name on it. The tools refuse rather than guess, and when one refuses, we fix the cause and leave the tool alone.

It is hosted on Netlify. The only code that runs on a server is the CB radio, together with its chalkboard, its pebble bowls and the Slake. Everything else is files. The source and its whole history are on GitHub. Our words and design are under CC BY-SA 4.0. Photographs, recorded voices, songs, typefaces and borrowed names keep their own terms, the broadside sheets are given away under CC0, and the licence file says which is which.

Who makes it, and how we use AI

Ryan Boren and Helen Edgar make this street. They decide what each room is, what it argues, what it refuses and where on the street it goes. They write the briefs that the rooms quote, and they correct the rooms when they are wrong. The Faery Yurt is Helen’s own design, from a mockup she built.

Most of the building is done by Claude, an AI model made by Anthropic, in Claude Code sessions that Ryan or Helen directs. Claude writes nearly all of the code: the pages, the stylesheet, the scripts, and the generators and checkers described above. It also drafts most of the words in the rooms, working from the briefs, from our own pages on stimpunks.org, and from the sources each room credits. Nearly every change in the site’s public history names Claude as a co-author, so you can see which parts it wrote.

Some specifics, so nothing here has to be guessed at:

What an AI gets wrong, and how this site catches it. A language model’s most common mistakes are exactly the ones this site’s tools are built to refuse: a quotation, a credit or a number written from memory, a book link that points at a different book, a framing borrowed because it sounded right. Many of those mistakes were Claude’s, and many are written up in the changelog along with how they were found. Quotations are checked against a source, and each one says how it was checked. Where one could not be checked, the page says that too. Checkers catch what can be checked. People looking at the page catch the rest, and several faults on this street were found by Ryan simply pressing the buttons.

Stimpunks’ policy on all of this is AI Collaboration at Stimpunks, and the thinking behind it is at AI at Stimpunks and AI, Disability Justice, and the Ethics of Making. Those pages name the tensions honestly, the energy and water costs included, and we carry the same tensions here. Generative AI is built from knowledge taken from communities, so what we make with it goes back to the commons. That is one reason everything we write here is under an open licence.

When this page changes

If how this site is made changes, and especially if how we use AI changes, this page changes with it, the date at the top moves, and the change is written up in the changelog on the day, where the feed will pick it up.

HOW LOUD DO YOU WANT IT?

Starts wherever your device says. Nothing moves, flashes, or plays until you say so.