Work  /  ChemQuest

ChemQuest

Same elements. Brighter minds.

A K–12 chemistry game where students build real molecules and watch a world grow out of them. Concept through to a working app, a locked brand, a design system, a year of standards-aligned lessons, an accessibility pass and a plan for getting it into South Carolina classrooms.

Project
Self-initiated product, 2026
Disciplines
Product Design · Design Systems · Accessibility · Go‑to‑market
Deliverable
Working web app, brand & design system
Role
Founding designer — brand, product, build
Lessons
36, in three grade bands
Components
30 families
Standards
58 SC 2021 codes
Plates
14

The work

01 ChemQuest Same elements. Brighter minds.

Chemistry you build, one bond at a time

A K–12 chemistry game, concept to working product

Role
Founding designerSolo — brand, product, build
Scope
Grades 2–12Three developmental bands
Year
2026Oct, over about four weeks
Status
RunningNot yet in a classroom
01 / 14
02 Concept · the idea Connect the blocks

Hydrogen plus oxygen is a thing you can hold

One sentence the whole product had to earn

The starting note

Learn the periodic table by connecting blocks. Put two hydrogens on an oxygen and you have made water — and then the app tells you what water does.

Everything that followed is an answer to one question: how do you keep that true for a seven-year-old and a high-school chemistry student at the same time?

Plenty of chemistry apps quiz. Very few let a student make something and then show them what it was for. The rule I set at the start was that no reward is abstract: every molecule a student builds has to visibly change the world on their screen, and the fact attached to it has to be a real one.

The loop

See, snap, scale

Every element arrives as an object with a shape, not a letter on a chart. Students snap them together under the real rules of bonding. As they get older the blocks become Lewis structures without the mechanic underneath ever changing.

The constraint

Accurate or it doesn’t ship

Gamification never gets to bend the chemistry. A bond that would not form does not form, and the app says why. That rule is what makes a science coordinator take the thing seriously.

The horizon

Physical blocks, later

The long idea is smart blocks a child builds with and scans. That is a hardware company, not a first release — so the app was built to stand on its own, and nothing here depends on the blocks ever existing.

02 / 14
03 Define · the audience One engine · three readings

A six-year-old and a sixteen-year-old cannot share an interface

The problem that shaped every screen

The decision

Not three apps. One engine, with three developmental bands sitting on top of it — the same canvas, the same bonding rules, three different readings of the same moment.

Grade sets the band. The placement quiz only decides where inside it a student starts, so nobody is ever handed material written for someone four years older.

BandHow it readsThe tool in front of themWhat a check asks K–5 · Explorer Chunky, tactile, almost no text. Atoms are blocks with pegs. Drag and snap, with the shape of the molecule doing the teaching. “Why does water form round droplets?” 6–8 · Alchemist Recipes and blueprints. Quest logs, collections, a world that fills in. Formula tracking, the periodic table, an equation balancer. “Which part of the water molecule pulls electrons harder?” 9–12 · Chemist Scientific, dense, unembarrassed. Telemetry rather than confetti. Lewis dot view, lone pairs, a 3D viewer, stoichiometry. “Explain water’s polarity from electronegativity and geometry.”

Pre-readers in K–2 skip the text quiz entirely and start at Level 1 — a written placement test for a child who cannot yet read is a test of the wrong thing.

03 / 14
04 Brand · the pivot Precision creates trust

The first direction was a sci-fi lab

And it would have cost the sale

What changed

The concept brief asked for glass panels, neon cyan on black and an eccentric mad-scientist voice shouting “Great Scott!”. Fun to write. Wrong for the person who actually signs off: a district technology director deciding whether this is a serious instrument or a toy.

The locked direction keeps the delight and moves it. The interface is calm and systematic; the chemistry moments carry the energy.

The mark is four periodic-table tiles — C, He, M, Q — with the Q knocked off square and two reaction sparks. It reads as the thing the app is about rather than as a generic flask.

The guardrails I wrote down

  • No atom, flask, molecule, DNA helix, pill or cross — the pharma shorthand every ed-tech logo reaches for.
  • No clinical biotech styling. This is a classroom, not a lab results portal.
  • No gratuitous gradients. The system has to work flat, because it will be printed, projected and photocopied.
  • Cyan is an accent. It never sets type on white.

The line, twice

Concept: “Master the elements. Fuel the adventure.” True to the sci-fi draft, and aimed squarely at a kid.

Locked: “Same elements. Brighter minds.” It still belongs to the student, but a principal can say it out loud in a budget meeting. Discover · Explore · Create carries the rest.

04 / 14
05 System · foundations 90 color tokens · 30 component families

A palette where every color knows what it may do

Four brand colors, and the rules that keep them legible

Why it is written as code

The system is a Figma plugin — about 4,700 lines of TypeScript that generates the whole file: variables in light and dark, nine text styles, the 8px scale, and 30 component families with their states.

It is idempotent. Run it again and it updates the existing system instead of making a second copy of everything, which is the usual way a design file goes bad.

#0B1F4DPrimary Navy. Text, headings, the mark.15.9:1 on white — AAA
#0066FFQuest Blue. Fills, focus rings, large type.4.8:1 on white — AA
#00F0FFDiscovery Cyan. Bars, pulses, navy buttons.1.4:1 on white — never text
#F2F6FACanvas. The ground everything sits on.Navy on it — 14.7:1

Cyan is the brand’s most recognisable color and its least usable one. Rather than quietly dropping it, the system gives it a job it can do at 11.3:1 — navy type on a cyan fill, and every progress bar in the app.

Type

Manrope ExtraBold for display, Lexend for everything that has to be read. Nine styles, from 64/67 down to a 12px label.

Space

An 8px unit, twelve steps. 4px allowed only for micro-spacing. Controls at 32/40/48/56, default 48.

Targets

Nothing interactive below 44×44, even where the visible control is smaller. Body text never below 16px.

Never color alone

Right, wrong, element category, status — each pairs color with an icon or a word. A color-blind student loses nothing.

05 / 14
06 Product · the core screen Valence, not vibes

The bond either forms, or it tells you why not

The build canvas — where the whole product lives or dies

Every atom carries its real valence. Oxygen has two open slots, hydrogen one. Bring two compatible atoms close and they snap; try to hang a third hydrogen on an oxygen and the node rebounds and sits back down, unharmed.

Nothing is punished. A rejected bond is a fact about oxygen, not a wrong answer, and the mentor says so. That single decision is what lets the same canvas serve a second-grader and an AP student.

The toolbar is deliberately short — select, bond, erase, add, clear. Everything else is a view: 2D, 3D, Lewis dots. The molecule is the state; the views are just ways of looking at it.

Stable. The ring closes, the panel changes from Target molecule to Stable molecule, and the next level unlocks — three signals for one event, because one of them might be missed.
06 / 14
07 Product · progression Five levels · six biomes

Five molecules, and a world that grows

The Primordial Spark — the opening arc

Why a world

A points total is a number. A planet that gains oceans, then an atmosphere, then soil, then the first green is a reason to come back on Tuesday.

Each level teaches one new bonding idea, and the reward is the thing that molecule actually makes in the real world — not a badge standing in for it.

  1. H₂
    The First Spark

    Hydrogen gas

    Teaches the snap itself. One slot, one slot, done — and the first gas clouds appear.

  2. H₂O
    The Catalyst of Life

    Water

    Unequal valences: oxygen holds two, hydrogen one. The oceans arrive.

  3. CO₂
    Stabilizing the Vault

    Carbon dioxide

    Double bonds, the first genuinely hard idea. An atmosphere closes over the water.

  4. NH₃
    The Fertile Ground

    Ammonia

    A three-way bond around one nitrogen. Bare rock becomes soil.

  5. O₂
    The First Breath

    Oxygen gas

    Double bonding again, this time symmetrical. The first green appears, and the Polar region unlocks.

The reward screen does four things at once: name what was made, change the world, log it to the Creation Almanac, and attach one true fact. Admire it exists because a child who just made an ocean should be allowed to look at it.
07 / 14
08 Product · the reference 118 elements, earned

The periodic table, filling in behind you

The thing students are usually asked to memorise, turned into a record of what they’ve done

Discovered

An element lights up the first time a student uses it in a molecule. Two of 118 at the end of Level 2 is not a failure — it is a map of how much is left.

Mastered

Discovery is not mastery. An element is mastered after it has been used in more than one compound, and the panel says exactly how many more are needed.

Inspected

Tapping any element — discovered or not — gives protons, group, period and valence electrons, plus the molecules this student has made with it.

The tiles use outline, fill and a tick to say discovered, available or locked. Color carries the category, never the state — the same rule the design system sets on plate 05.

08 / 14
09 Content · a school year 36 lessons × 3 bands = 108 versions

The same lesson, written three times

Nine expeditions, four lessons each, four checks per lesson

How it is kept honest

All 108 versions live in one authored file with their answers. A build step strips the answers out for the browser and writes them into the server’s key instead.

So the app a student loads has no answer in it to find, and every pick is scored server-side. It also means a lesson cannot drift out of step with its own answer key.

K–5 · Explorer6–8 · Alchemist9–12 · Chemist “Great Galaxies, look at the ocean you made! Today we find out why water is the weirdest, stickiest stuff in your world.” “Alchemist, your ocean is full of a molecule with a secret: it shares, but it doesn’t share fairly. Let’s investigate!” “Chemist, let’s quantify the weirdness. Electronegativity, geometry and intermolecular forces, all in one tiny molecule!” Describe water as made of tiny particles that stick to each other. Model a water molecule and explain how unequal sharing of electrons makes it polar. Use electronegativity and molecular geometry to explain water’s polarity and hydrogen bonding. Build one water molecule. Watch how both hydrogens end up on the same side of the oxygen. Build H₂O and notice its bent shape: both hydrogens sit on one side of the oxygen. Build H₂O. Then switch to Lewis Dots view and find oxygen’s two lone pairs.

One lesson — Why Water Is Weird — in its three bands: the opening line, the objective, and the instruction sending the student back to the canvas. Same molecule, same build, three different things to notice about it.

Expeditions
9Oceans to Deep Earth
Lessons
36About one a week
Check questions
4 eachWith written feedback per option
Answers in the browser
NoneScored on the server
09 / 14
10 Product · the second user Teacher telemetry

The teacher doesn’t need 28 profiles. She needs one sentence.

Class telemetry, built around the alert rather than the table

The whole point

Trends, not rows

Twenty-eight students rebounding on double bonds is one classroom problem, not twenty-eight student problems. The banner names it, and the button next to it puts an explanation on the projector.

Live

24 / 28 connected

The count is there so a teacher can tell, in the first two minutes of a lesson, which four students haven’t got in — before it becomes the whole period.

Scale

Sorted, searched, tagged

The roster sorts by name, tier and progress, filters by name, and tags each student with the biomes they’ve unlocked — a progress bar you can read across the room.

10 / 14
11 Product · defensibility 58 SC 2021 codes

A game is a toy until it has a standard next to it

The curriculum map and the gradebook

Why South Carolina’s codes

South Carolina’s 2021 standards keep NGSS wording but renumber it: middle-school codes name the grade, high-school codes name the course. MS-PS1-1 becomes 7-PS1-1.

Every pairing was checked against the standards text by hand. There is deliberately no automatic conversion, because SC assigns each middle-school expectation to one specific grade and a script would guess.

Each level carries both codes — the SC one a coordinator searches for, and the NGSS one the rest of the country uses. Restrict Sandbox keeps a class together instead of letting four students race to organic chemistry.
Only the first pick counts, and a replay never changes a score — so the number means something. A retake is shown as Redo · was 1/2 rather than quietly overwriting what happened.
11 / 14
12 Validate · accessibility WCAG 2.1 AA · axe-core, every screen

The element dock was 382 pixels below the fold

On the Chromebook most of these students actually use

What was tested

Every student, teacher and parent screen scanned against WCAG 2.1 A and AA, in light and dark. Laid out at 1366×768 and 1280×800 — the two common school Chromebooks — and at tablet width. Then the whole building flow played through on a keyboard alone.

It is an internal pass, not a VPAT. It is the groundwork for one.

What the pass foundWhat changedResult A row of info panels pushed the element dock 382px below the canvas at 1366×768, so dragging an atom meant scrolling mid-drag. The dock moved directly under the canvas. Together they take 619px, which fits a 768px screen. fits Sideways scrolling at tablet width: seven dock tiles plus side captions were wider than the screen. Smaller tiles below 1024px, wrapping if needed, and the captions only on wide screens. 0 scroll About 40 text pairings below 4.5:1 — standard chips, due dates, overdue labels, dock labels, faded atomic numbers. Brand colors unchanged; only the pairings moved. Blue-on-blue and red-on-red chips went navy. 3.96 → 13:1 The picture-password oxygen tile could not carry white type. A deeper pink. Passwords are stored by element, so every existing student password still worked. → 6.0:1 Answer choices were marked up as radio buttons — but choosing one submits it, so arrow keys could spend a student’s only try. Plain buttons instead, with the result still announced. fixed The class code on the Launch screen was announced through an attribute some screen readers ignore. Hidden text instead, read one character at a time. fixed

Holds up

  • No automated violations on any screen after the fixes
  • Canvas and dock fit together at 1366×768 and 1280×800
  • The whole building flow works on a keyboard, focus always visible
  • All three canvases handle touch drags and cancelled touches

Not claimed yet

  • Real Chromebook hardware — everything above was emulated
  • A full lesson played through with ChromeVox or NVDA
  • A VPAT: automated scans catch roughly a third of WCAG issues
  • Keyboard rotation for the optional 3D molecule viewer
  • Animations reviewed against the reduce-motion setting
12 / 14
13 Strategy · getting in the door COPPA · FERPA · SC districts

The first question a district asks is never about the chemistry

What the product gives a technology director, and what it still owes them

Designed to have little to protect

Students have no email and no password. They join with a class code, type a first name and last initial, and pick a three-picture password stored only as a one-way hash.

No birthday, photo, address or school ID. One service provider. No advertising, analytics, tracking pixels or third-party fonts — the fonts ship with the app.

Enforced

Row-level security on every table, with 102 automated checks proving it. Scores are written by the server, so they cannot be forged from a browser.

Mapped

A data inventory listing every field, where it lives, who can see it and why — then checked line by line against COPPA and FERPA.

Named

Five gaps that block a pilot, written down rather than glossed: no deletion, no parent export, family links without parent approval, no retention schedule, no signed agreements.

Timed

School budgets run July to June. Quotes go out in spring, agreements get signed in summer — which sets the whole build schedule backwards from there.

South Carolina first, for one unglamorous reason: its 2021 standards are NGSS with state codes, so the alignment is already visible on day one — across about 80 districts and 724,000 students, with grade 6 a tested science year. Pricing is set under the small-purchase threshold so a principal can buy a school licence without running a bid.

13 / 14
14 Close October 2026

Built, scanned, documented — and not yet in a classroom

Where ChemQuest actually stands

Done

  • A running React app: student, teacher and parent, about 29,000 lines
  • A locked identity and a design system of 30 component families, generated by its own Figma plugin
  • 36 lessons in three grade bands — a school year — with server-side scoring
  • A teacher guide and pacing calendar, generated from the lessons so they cannot drift
  • An accessibility and Chromebook pass, with its own open list
  • A privacy pack for counsel and a South Carolina district plan

Next, in order

  • Close the five privacy gaps — nothing else happens until deletion exists
  • Counsel signs off a policy and a pilot agreement
  • Two or three friendly classrooms, four to six weeks, grade 6 and high-school chemistry
  • Test on a district Chromebook, on school Wi-Fi, through a content filter
  • Then the accessibility review and the VPAT a procurement office will ask for

The part worth saying plainly: none of the numbers on these plates are classroom results, because there haven’t been any classrooms yet. They describe what was designed and built, and what an internal pass found. The evidence that matters — whether a sixth-grader who has never liked science finishes an expedition — comes next.

App
~29,000Lines of TypeScript
Lesson versions
10836 lessons, three bands
Security checks
102Automated, on every table
In classrooms
0Pilots are the next step
14 / 14