Slide the puck to the target. Fewest moves wins.
Translation pending
GamesTypeScript · CSSGitHub @kasperstorgaardOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
A tiny puzzle game where you push pieces against walls and each other to reach the target
Taken from the repository README
Loading the full README.
Read the full README ↗A sliding-piece puzzle game inspired by Ricochet Robots.
Guide the puck to its destination - but pieces continue until they hit something.
https://github.com/user-attachments/assets/aeda00d9-e2a5-4814-830c-f34db20361cc
u/r/h shortcuts on
desktophttps://github.com/user-attachments/assets/c1c1c2fd-defb-48a7-9622-1df74779787e
The built-in editor lets you create puzzles from scratch or generate random solvable boards with configurable minimum moves. A debounced solver runs on every edit, showing the optimal solution length in real time.
| Layer | Tech |
|---|---|
| Runtime | Deno |
| Framework | Fresh 2 |
| UI | Preact + Signals |
| Styling | Tailwind CSS v4 + Open Props |
| Storage | Deno KV |
| Build | Vite |
Requires Deno.
# Start dev server with file watching
deno task dev
# Build for production
deno task build
# Preview production build
deno task preview
routes/ File-system routes (pages + API)
islands/ Interactive Preact components (hydrated client-side)
components/ Static server-rendered components
game/ Core game logic (board, solver, parser, types, cookies)
client/ Browser-only code (touch, keyboard, routing)
lib/ Portable utilities (env, analytics, replay, build tools)
db/ Deno KV database layer
static/puzzles/ Puzzle definitions in Markdown + ASCII
Puzzles are Markdown files with YAML frontmatter and an ASCII board:
---
name: My Puzzle
slug: my-puzzle
createdAt: 2025-06-15T00:00:00.000Z
---
+ A B C D E F G H +
1 # # |
2 X |
3 | |
4 |
5 |
6 @ |
7 |
8 # |
+-----------------+
Symbols: @ = puck (player piece), X = destination, # = blocker,
| = vertical wall, _ = horizontal wall.
The easiest way to create a puzzle is via the in-app editor at /puzzles/new.
Design your board, then click Download to save the .md file. Use
Import to load it back into the editor later. Place it in
static/puzzles/ and run deno task update-puzzles to register it.
This site uses PostHog for product analytics. Tracking is opt-in — no data is collected until you accept via the cookie banner. Data is processed by posthog in the eu, and not shared with other third parties.
MIT