Spec sheet
What rnspencer.com is made of. The numbers, swatches, and faces are read from the code that runs the site, so they’re always current.
Ryan designs the systems people don’t see, the ones under payments and risk, so what ends up on screen is plain and obvious. This site shows how things are built instead of saying they’re good.
02
Type
GT America by Grilli Type. Blackletter only in metal mode.
Complex systems,
made quiet.
Aa Bb Cc Gg Qq Rr Ss 0123456789 & ? ! ,
Radar was powerful but fragmented. Seven surfaces each held part of the risk story, and merchants had to connect them on their own.
Aa Bb Cc Gg Qq Rr Ss 0123456789 & ? ! ,
Now · 1:24AM · 37.91° N, 122.07° W · 2025–Now
Aa Bb Cc Gg Qq Rr Ss 0123456789 & ? ! ,
Say hello.
Aa Bb Cc Gg Qq Rr Ss 0123456789 & ? ! ,
03
Colour
Safelight. One warm neutral palette and one orange, each colour named once and tuned for the shell and for paper.
Ink and paper, a grey a real step below, a rule lighter than text, and one orange: the amber-red of a darkroom safelight, because the field develops. On paper the orange keeps its chroma rather than darkening to brown, and the grey sits further from the ink so the hierarchy holds on light.
04
The field
One fragment shader, with a Canvas 2D mirror. Numbers from js/grid.js.
A sparse matrix of square pixels on a 9px grid. Scenes are tone maps, one value per cell: a scene develops brightest first, each pixel fading in at its final size, and flattens into an even matrix at a chapter’s end.
05
The scenes
One per chapter, drawn as tone maps in js/scenes.js. On the cover, hovering a project develops its scene across the field.
Each case study gets a place, and the place acts out the system the product runs. The scene follows the study: develop is the problem appearing, the action runs in the middle, and the flatten is the design bringing order. One element in each is orange, the thing the case study is about, and the readout counts what the scene is doing, never a claimed statistic.
Previews run on a steady clock, in over 0.75s and out over 0.35s, never a chase toward a target, which slams in and dribbles.
The stars are the real sky above Walnut Creek, right now, facing south. Scrolling down tilts your gaze toward the zenith. The brightest planet above the horizon is the one orange point. On the homepage the sky rests as a Milky Way instead: every point in the field banded into one slow swell across the middle, drawn with the same star squares, the core steady and the edges twinkling; the real sky is a flag away.
| Right now | Value |
|---|
07
The ghost
js/ghost.js: one physics loop, no keyframes. Tune it at /ghosty; visit it in its world. The brand book: RS Brand System.
The best systems are the ones you stop noticing. Ryan’s work is connecting the dots across a product until the complexity disappears into the outcome. A ghost is a presence you feel without seeing. That fits the job, and it fits him: there, paying attention, not loud.
One body; the face is the variable. It floats on slow noise, leans toward the pointer, and its hem ripples like cloth; every spring is damped so it settles rather than bounces. Faces change behind a blink, and every reaction answers something real. Every reaction has a cooldown, and a face holds before a mood can replace it, because a bit that can restart reads as a glitch. The orange bar is its shadow. It also turns up inside the scenes, in ink: the customer at the shop, the one waiting by the cottage for the order, the watcher on the hill, and when a preview comes up it glances at its own likeness. It notices a shooting star, and it remembers a returning visitor with a hello.
08
The day
The About section’s live line. Walnut Creek time, approximate on purpose.
| Heavy rotation | Tracks |
|---|