Blog

How we build things, what we measured, and the versions that did not survive testing.

Engineering notes

Working notes from building our games: the measurements, the constants, and the designs we threw away. Written for anyone else making small web games.

Eleven stones, one glance

Our first palette looked fine and measured ΔE00 = 3.2 between tiers. Measuring the rendered colour instead of the design swatch is what fixed it.

13 October 2026 · Colour

Thousands of games, zero frames

How we pulled the rules out of the browser so the game can play itself headlessly, and the mechanic that test killed.

13 October 2026 · Testing

Sound from arithmetic

A full set of sound effects with no audio files: oscillators, an envelope, and a pentatonic scale chosen for a specific reason.

13 October 2026 · Audio

Why we cap devicePixelRatio at 2

A one line cap in the render setup that took a week of arguing with myself to keep. Drawing more pixels than the CSS box can show is what blurs the thin lines.

16 October 2026 · Rendering

The score ladder was a triangle

The eleven merge values we typed by hand are triangular numbers. What that shape does to a run, and the 7,076 points hidden behind one clean sunstone.

18 October 2026 · Scoring

How we decide what to build

Picking a genre is the highest-leverage decision we make, so we try to do it on evidence instead of instinct. Below are the rules, and the numbers behind them.

When language locks a genre

We score language dependency on its own, apart from build difficulty. A high score means the genre's appeal is tied to references that do not cross a border.

16 October 2026 · Strategy

Our genre model has five scores and behaves like three

We audited the model we use to pick genres. Difficulty and compliance risk correlate at +0.809, the window column is mostly the crowding score, and the composite barely moves.

17 October 2026 · Strategy · Measurement

Player guides

Design and studio

Why we build cozy games

The case for calm games, and why making something relaxing is harder than making something exciting. Not easier.

13 October 2026 · Design

Why merge games are so relaxing

Predictable feedback, self-chosen goals, and no penalty for pausing: what the merge genre gets right about calm, and what we borrowed.

6 October 2026 · Design

How we designed the cascade bonus

We simulated games of real physics to check whether a combo mechanic rewards skill or luck. The answer changed what we shipped.

13 October 2026 · Design · Measurement

Browser games vs mobile apps

What a small studio gives up by not shipping to an app store, and what it gets in return.

13 October 2026 · Business

Why losing waits a second

Two timers stand between a bad spawn and game over. They exist because an instant loss feels like the board hates you, and a patient one feels like your fault.

16 October 2026 · Design

The accessible thing we never built

Keyboard play and screen-reader labels are in. The one player setting we never read is the one that matters most for a game that sells itself as calm.

18 October 2026 · Design · Accessibility