Inspiration
I wanted the Wordle feeling — one shared puzzle a day, a result you can brag about without spoiling it — but as a spatial puzzle instead of a word game.
Avaliable on mobile and desktop
What it does
The Daily Path is a daily grid puzzle. You step one tile at a time toward the goal; every piece on the board steps simultaneously along its own pattern (movers, runners, diagonals, knights, turners). Pieces wrap around the board edges, the player does not. Get caught and the level resets. Match par for three stars; match it with no hints for a Flawless.
The hook is the loop around the puzzle:
- One shared daily — the same puzzle for everyone, labelled by date, with streaks and a live rank against everyone who solved it that day.
- Share to comments — after solving, one tap posts your spoiler-free result (stars, move count, streak, rank — never the path) as a comment. The comment section becomes the day's scoreboard.
- Community-made puzzles — a built-in level editor lets anyone build a puzzle. A BFS solver verifies it's solvable, computes its true par, and queues it — the best player-made puzzles become future dailies. The community literally feeds tomorrow's content.
- Plus a 14-day archive, a community browser to play submitted puzzles, a tutorial, and practice levels.
How I built it
Devvit Web with Phaser 4 on the client and a Hono server on the back, all in TypeScript. The game rules live in a pure, shared engine module used by both sides — the client plays it, and the server re-simulates your submitted move list to verify every score, so the leaderboard can't be faked. The same shared BFS solver that computes par also gates user submissions: unsolvable or trivial puzzles are rejected server-side before they can ever become a daily. Redis holds the daily snapshots, results, streaks, leaderboards, and the community-puzzle queue, and a scheduled job posts the new daily automatically each day.
The look is deliberately handmade: no image assets at all. The board is drawn as doubled, slightly wobbly "pencil" strokes, and the tokens are procedurally roughened SVG pebbles, on warm paper tones — I wanted it to feel like a puzzle someone sketched for you, not a generated grid.
Challenges I ran into
- Simultaneous movement is unforgiving. Every collision rule (do you get caught swapping places with a piece? does a 2-tile runner catch you mid-step?) had to be exact, or the solver and the game would disagree about what's solvable. I ended up making pieces report every tile they sweep through each turn.
- Trusting players without trusting clients. Scores and user puzzles both come from the client, so both are re-verified on the server — solutions are replayed through the engine, puzzles re-run through the solver.
- Crisp rendering in a Reddit iframe. Phaser inside a fluid embed on a phone took real work: rendering at device pixel ratio, resize handling, and making every layout scale from small phone screens up.
- Spoiler-free sharing. Designing a share format that's fun to compare in comments but never leaks the solution path.
Log in or sign up for Devpost to join the conversation.