// her ideas, shaped together

Zoey's Lab

The ideas here are my daughter's. She works out what an app should do and how it ought to feel, and we shape it together until it runs — which has been more fun than anything else I built this year. Three so far, living together at zoeyslab.com. All are free, all work offline once installed, and none has ads, tracking, or an account to make.

Huely icon

Huely

A colour-mixing lab

Drip cyan, magenta, yellow and black and watch them blend the way real ink does — magenta and yellow make red, not mud. Then turn the lights off and cross red, green and blue beams that add up to white instead. Two opposite kinds of colour over one engine.

  • 58 quests across both media, scored on how close you get
  • 77 colours the world's cultures named, with their stories
  • Palettes pulled from your own photos, entirely on device
  • A jar you keep, printable as a palette sheet
TypeScriptReactPWAColour science
Open Huely
Ditty icon

Ditty

A Morse code lab

Tap for a dit, hold for a dah. Every mark is drawn as long as you held it, so the ratio that makes Morse readable — one for a dit, three for a dah — is something you can see before anyone explains it. Or send it as light from a signal lamp instead.

  • Quests in Koch order, the way Morse is actually taught
  • A playable alphabet where every key wears its own code
  • Farnsworth timing: letters stay honest, the gaps stretch
  • The history of Morse, from 1838 to the amateurs still on air
TypeScriptReactPWAWeb Audio
Open Ditty
Tessa icon

Tessa

A shape lab

Every shape is the shape below it, dragged — a point to a line, a square to a cube, one more drag to the tesseract. Draw a shape with one finger and it is named and scored; pull flat shapes into prisms and pyramids by hand; fold six squares into a cube; slice solids to find the hexagon hiding in every cube.

  • Sixteen shapes recognised and scored, hearts and teardrops included
  • The dimensional ladder from 0D to 4D, with every name's story
  • Exactly 11 cube nets to find, and a fold that proves each one
  • Apple Pencil support: pressure strokes, palm rejection, hover
TypeScriptReactPWAGeometry
Open Tessa

How they are built

All three are Vite, React and TypeScript, sharing one set of conventions in a small monorepo: an engine with a test suite written before any interface, hash routing so the whole thing is a static file, a service worker for offline use, and English, Japanese and Chinese throughout. Nothing leaves the device — photos are read in the browser, and progress lives in local storage.