potion-pushers
Tap the ingredient bag, push your luck in a glowing 3D cauldron, and bank potions before they overflow.
About this tile
Potion Pushers is an original push-your-luck potion board game for Poe. Tap the ingredient bag on a glowing Three.js cauldron table, drop chips into the brew, and bank before foam makes the potion overflow.
Framework Decision
Potion Pushers uses synced-store as the authoritative Poe state and deterministic mutator layer, vanilla TypeScript for the compact app shell, and Three.js for the tactile cauldron, ingredient chips, and bag pile. I did not add a separate board-game engine because the bag draw, overflow, banking, and round rules are small enough to stay clearer as pure functions shared by the UI, tests, and synced-store mutators.
What you can do
- Tap the bag directly — the main draw target sits on the board instead of behind a menu.
- Push your luck — ruby, mint, sun, and moon chips score while foam chips raise the overflow meter.
- Bank from the thumb zone — the bottom rail keeps Bank, Next, and Drill near frequent mobile taps.
- Read the cauldron quickly — score, round, fizz, bag size, brew value, and recent chips stay visible.
- Practice the finish — Drill loads a deterministic near-win brew for quick learning and E2E coverage.
- Play mobile-first — 300x500 tests verify no overflow, painted Three.js board, and 44px-or-larger tap targets.
Game state lives in synced-store with explicit draw, bank, next-round, reset, and scenario mutators so optimistic taps and server confirmation resolve to the same potion state.