Inspiration
We wanted a small daily ritual: an inviting place to think for a few minutes, then meet people who saw the same problem differently. Boats, signals and home flags give a good idea and a near miss a readable physical form. The daily Reddit post becomes the dock where players trade approaches.
What it does
Wakekeepers is a daily logic puzzle built for Reddit interactive posts. Everyone playing the same UTC-date harbor receives the same puzzle. Three ferries begin at numbered berths; the goal is to bring all three to their flagged home docks.
Players choose a short sequence from six one-use signal cards, launch the fleet and watch each signal take effect. Shared moves, individual moves, a berth swap and a harbor reflection interact, so order matters.
A skippable practice crossing explains the mechanics without affecting the daily score. There is no timer, lives system or paywall.
Each day features a new deterministic puzzle, a harbor title and a short theme line. The weekly progression uses solver-verified minimum signal counts: two on Monday and Tuesday, three on Wednesday and Thursday, four on Friday and Saturday, and five on Sunday.
Players can revisit daily puzzles through a 14-day archive, preserve unfinished plans and return to the current harbor.
Community features include anonymous rankings, rolling streaks, solve rates and median first-solve launch counts. Players can copy spoiler-free results and discussion prompts to share their approaches in Reddit comments. Nothing is posted automatically.
The interface supports keyboard controls, labeled boats, reduced motion, optional sound and nine languages.
How we built it
Wakekeepers uses TypeScript, original SVG graphics and CSS, built with Vite.
Devvit Web provides Reddit interactive-post integration, Redis persistence and scheduled daily-post functionality. Shared game rules run in both the browser and server.
The server validates launches by replaying moves against trusted puzzle dates and player context. Stable request IDs and Redis optimistic transactions help prevent duplicate attempts and inconsistent rankings.
Daily puzzles are generated deterministically. A separate breadth-first solver verifies puzzle solvability and the intended minimum signal counts.
Our 60-day test certificate covers December 1, 2026 through January 29, 2027. All 60 layouts are distinct and solvable within budget, with exhaustive legal-route checks covering all 512 starting fleets.
The implementation also includes data-retention rules, player deletion controls and retryable cleanup operations.
Local tests verify the main gameplay, server logic and interface behavior. Live Redis operations, scheduled delivery and historical-data cleanup require further operational verification.
Challenges we ran into
Our biggest design challenge was making shared movement controls intuitive. Reading instructions alone was not enough, so we introduced a two-signal practice lesson that demonstrates how actions affect the boats.
Generating daily puzzles with controlled difficulty required more than randomization. We used reachable-state enumeration, deterministic permutations and solver verification to ensure consistent progression.
Reliable persistence introduced additional challenges. Interrupted requests must not create duplicate attempts, first solves or streak updates. We addressed these through stable request identifiers, server-side replay and transaction tests.
We also learned to distinguish verified local behavior from live platform behavior rather than treating simulations as evidence of real community activity.
Accomplishments that we're proud of
We built an original daily puzzle with readable failures, unlimited retries and a carefully designed weekly progression.
The game combines a distinctive paper-and-sea visual identity with interactive boat movement, accessible controls, multilingual support and a spoiler-free social sharing experience.
Our deterministic generator and independent solver provide reproducible verification of the daily puzzle sequence.
Wakekeepers also has a real Reddit post and a complete local demonstration of the game experience.
What we learned
Good puzzle design involves more than finding a mathematically valid solution. Players need clear objectives, understandable feedback, useful mistakes and a natural reason to return.
We learned that an optimal signal count can establish a measurable progression, while actual perceived difficulty and long-term player engagement still require observation.
We also learned the importance of distinguishing simulated community statistics from real usage data.
What's next
We plan to gather real player feedback, improve the introductory experience and refine the weekly difficulty progression.
Further work includes verifying live persistence, daily scheduling, Reddit navigation and deletion behavior over time.
We also plan to refine translations with native speakers, complete historical-data cleanup and improve the community experience while preserving identical puzzles and scoring across languages.
Built With
- css
- devvit-web
- node.js
- playwright
- redis
- svg
- typescript
- vite
- vitest
- web-audio-api