The mark
A pixel-block wordmark: tall F, lowercase ixer, a blinking block cursor. Three glyphs sit above: a bug for the fixes, an invader for the threats, a knight for the move. A fixer is dispatched to you.
- The logo is drawn on a 72 x 22 unit grid. Letters use 2u pixels, glyphs use 1u pixels.
- Full logo heights go up in multiples of 22 px so every glyph pixel lands on a whole screen pixel. The mark alone goes up in multiples of 11 px.
- Minimums: primary 44 px (glyph pixels stay 2 px), wordmark 22 px, mark 22 px. Below that, use the 32 px favicon file.
Not phosphor green. Not amber. White on black, or black on white.
Scale both axes together. The pixel grid is square.
No rounded corners, blur or anti-aliasing. Pixels stay hard.
The only lift is the soft glow, and only on screen.
Fixer, the original
The word "Fixer" set in a chunky geometric face. A tall capital F, then lowercase ixer. Three silhouettes perched above ixer: a spider, a space invader and a chess knight.
The idea was right from day one: a problem, a threat, and a move to deal with it.
chunky geometric fontpixel-block wordmark on a 2u gridtall F, lowercase ixer // keptspiderbug // fixes. we squash theminvader // threats, malware, scamsknight // the move: a fixer dispatchedblinking block cursor // ready for input
Pixel icons
One icon set, drawn pixel by pixel on a 1u grid and filled with currentColor, so a glyph inverts with whatever it sits on. Click any glyph to copy its snippet.
The fix
Every job starts as a bug. Wi-Fi black spot, dead laptop, printer sulking. We squash it.
The threat
Malware, scams, the dodgy email that wants your bank login. Also our virus and scam category.
The move
The knight jumps where it is needed. A fixer, dispatched to your door.
Read the logo left to right: there is a bug, it might be a threat, so we make our move.
- Pixel-exact. Integer pixel sizes only: 2, 3, 4 or 6 screen pixels per glyph pixel. Never 2.5, never scaled with CSS.
- One colour. Glyphs take the text colour. No outlines, no second tone, no rounding.
- With words. Pair a glyph with a label the first time it appears. A glyph on its own needs an aria-label.
- Usage. <span data-glyph="wifi" data-px="3"></span> or Fx.glyph('wifi', 3)
State emoticons
The system has a face. Nine text emoticons tell you what Fixer is doing right now, at a glance, without a single colour.
- Text, not emoji. Faces are typed characters in VT323 or JetBrains Mono. Never images, never emoji.
- One per screen, beside a plain-English line that says what is happening.
- Errors bring the fix. [x_x] is always followed by what to do next.
- Celebrate once. \[^o^]/ is for a closed, paid and rated job. Not for every button press.
Monochrome
Ink, paper and nine greys. Status, focus and urgency are carried by inversion, blink and glyphs. Click a swatch to copy its hex.
No colour. Ever.
Selected, active, new and urgent states flip to a white block with black text. Hover the rows. That is our only highlight.
--glow: 0 0 10px rgba(255,255,255,.35). Use it on the live number, the active marker, a hovered button.
A 3 px line pitch at 2.8% white plus a soft vignette. Fixed overlay, never blocks a click.
Two faces
JetBrains Mono does everything: headings, UI, body. VT323 is the CRT face, kept for big numerals, countdowns and boot screens.
-.03em // lh 1.0
-.02em
Fixers set their own rates. You see the hourly rate and call-out before anyone leaves the house. Payment is held until the job is closed and you have both left a rating.
numerals, timers, boot
uppercase // .16em
lowercase system voice
The kit
Square-ish corners (3 px), 1 px borders, white for the one thing you should press. Everything here is live and comes from /assets/fixer.css.

Things move like a terminal
Stepped, quick and purposeful. Motion tells you the system is working. Each demo has a replay.
riseglitchflashblinkpulse- Reduced motion respected. With prefers-reduced-motion on, everything resolves instantly. Nothing important lives only in motion.
- Stepped, not floaty. No bounces, no springs, no parallax.
Brisbane in greyscale
The map is the main screen of both apps. It is a black-and-white street map with white markers and a dashed route. Live below: Kai heading from the Valley to Sam in Paddington.
- Tiles: Esri dark grey canvas (OpenStreetMap data), greyscale.
- Markers: white squares. Idle is grey. Claiming pulses fast.
- Route: dashed white line, 3 px, dash 2 6.
- Never satellite. Never coloured tiles.
- No pin-drop teardrops. No coloured pins, no heat maps.
- Labels are inverted mono tags: FX-24817
How Fixer talks
Like a good local tech: straight to the point, friendly, and clear about what happens next.
Plain English
Say what is happening. "Your fixer is 5 min away", not "Technician en route to service location".
Queensland direct
Friendly, no fuss, no waffle. A "no worries" now and then is fine. Not on every screen.
Short sentences
One idea each. Under 20 words. Numbers stay exact: 14 min, 1.2 km, $151.20.
System lines in lowercase
Status from the machine reads like a terminal: > job posted. pinging 7 fixers within 5 km.
No hype
No synergy, no revolution, no exclamation marks. Let the 14-minute ETA do the selling.
House style
Australian English. Spell it dispatch. Hyphens, never long dashes. Money held, then released.