Skip to content
All work

Gridlock Pop

Drop blocks, clear lines, chase the combo. No timer, no lives.

Category
Games
Status
In development
Platforms
iOS, Android
Stack
React Native, Expo, TypeScript, Reanimated, Gesture Handler, react-native-svg

A block puzzle on an 8×8 grid: three pieces at a time, fill a row or column and it clears, and the run ends when nothing fits. The rules are pure functions with no React anywhere in them, which is what makes a game this small worth testing properly.

Drop a piece, watch a line vanish, line up the next one. There is no timer, no lives and nothing asking you to come back tomorrow — the run simply ends when none of your three pieces fit anywhere.

The rules are not in the components

Grid, scoring, piece bag, placement legality and game-over detection are pure functions that import nothing from React. That separation is what lets 207 tests cover the interesting cases — the combo multiplier, a board that is full but not finished, the exact move where nothing fits — without rendering anything or simulating a touch.

What the tests could not catch

All 207 passed while the first drag on a real device crashed. The animated style was calling an ordinary JavaScript helper from a worklet, which Jest cannot see and a phone refuses to do. A second defect had the same shape: the board's position was read once on layout, so moving the window left every drop landing a cell out. Both needed a device, not a test run — which is the argument for the rest of the suite, not against it.

4 capabilities
A pure rules engine
Placement, line clearing, scoring and game-over are functions over plain data, tested without a renderer.
Combo scoring
Clearing on consecutive moves builds a multiplier, so the reward is for setting up rather than for luck.
Offline and accountless
No sign-in, no network in the play path, and nothing that expires while you are not looking.
Lifetime unlock
A single non-consumable purchase removes every ad, permanently.
Screens

Captures of Gridlock Pop are pending. We would rather show you nothing than a drawing of a screen that was never photographed.

Tell us what is broken or what should exist.

Send the shape of the problem and any constraints you already know — budget, deadline, the stack you are stuck with. You will get a written reply from the engineer who would do the work, not a sales sequence.