4,446 PUZZLES SOLVED
Inspiration
I play the New York Times games every day, and over time I started collecting other logic puzzles too: niche ones I found on websites and in Android games, like Pips, Tracks, Shikaku and Kakuro. They were scattered across a dozen apps and sites, each with its own look, its own account and its own ads.
I wanted one clean, calm iOS app that brought the puzzles I love together, with a Daily challenge that everyone plays on the same board.
What it does
Logic Puzzles is a collection of 17 logic games in one app: Sudoku, Mini Sudoku, Killer Sudoku, Queens, Flow, Tracks, Shikaku, Nonogram, Minesweeper, Water Sort, Mazes, Pips, Kakuro, Cross Math, Number Maze, Number Match and Sliding Puzzle.
- A Daily for every game. Everyone in the world gets the same board each day, with a leaderboard and a streak to protect.
- Boards that solve themselves. Each game's page shows a live board playing through a solve, so you understand the game before you start.
- Made to feel good. Pours with corks in Water Sort, crowns that ripple in Queens, and a train that rides your finished line in Tracks.
- Play as a guest or sign in. Your streak, stats and favourites follow you across devices and the website.
- Free, with no paywall. Money comes only from rewarded ads the player chooses to watch: a hint, the solution, or a refill of lives.
- Six languages: English, German, Spanish, French, Italian and Brazilian Portuguese.
How we built it
SwiftUI
The whole app is SwiftUI (iOS 18). There's one shared design system of ink outlines, hard shadows and chunky tiles, with a custom board for each of the 17 games.
Supabase
Supabase is the source of truth for accounts (including anonymous guest sessions), profiles, per-game mastery, every completion, and the Daily leaderboard. The iOS app and the website share it, so it's one experience across both.
OneSignal: a messaging layer that reacts to what players do
We didn't want "blast everyone at 9am". We built OneSignal around what the player has actually done:
- Shared identity. Every player, guests included, is identified in OneSignal by their Supabase ID. The ID a completion is saved under is the same ID OneSignal knows, which is what makes cross-platform messaging possible.
- Up-to-date tags. The app keeps these current:
daily_reminder: whether they've set their own reminderplayer_name: their display nametop_game: the game they play most
- The Daily Nudge Journey:
- Only targets players who don't already have the in-app 9:00 reminder and haven't played in the last 6 hours.
- Sends at 10:00 in each player's own time zone and re-arms every day.
- Drops anyone who opens the app before it fires.
- Personalised with Liquid. For example: "Today's **Queens* is ready 🧩, Sam"*, falling back gracefully when a tag is missing.
- Opens the right screen. Tapping a notification opens the Daily, or straight into that game's Daily. Every open is tracked, so we can see which messages bring people back.
- Asked at the right moment. Onboarding asks for notification permission right after explaining the Daily, not as a cold prompt. There's also a Puzzle Nudges switch in Settings, so players stay in control.
AdMob + RevenueCat
- Rewarded ads only. No banners and no interstitials. Every ad is something the player chose, for something they wanted: a hint, the answer, or another life.
- Ad revenue in RevenueCat. Ads load through RevenueCat's AdMob integration (
loadAndTrack), so ad revenue shows up in RevenueCat alongside everything else. Each surface (hint, solution, lives) has its own placement, so we can see which moment earns. - The reward is verified on RevenueCat's servers before it's granted, so a tampered app can't give itself free hints.
- Privacy-first. No tracking prompt and no advertising ID, with Google's consent form for EU and UK players.
PostHog
Product analytics: per-game starts and completions, onboarding steps and notification opens.
Challenges we ran into
- One design for 17 very different games. A Water Sort rack, a hex Number Maze and a 9×9 Sudoku don't naturally share a layout. We built one "stage" and one visual language, then tuned every board until it looked native in it, on phone, iPad and the web.
- Making every game solve itself. Each game needed its own demo. Water Sort was the hardest: a shortest-solve search gave up on bigger boards, so we switched to a best-first search that finds a solve in milliseconds.
- Data showed players leaving within seconds. PostHog showed some games (Killer Sudoku, Pips) being abandoned in under 15 seconds. We added starting digits, a first-run tutorial and a "drag a domino" hint, and fixed a Pips drag bug that made dominoes land a cell off.
- One identity across three systems. Linking guests and signed-in players in Supabase, PostHog and OneSignal without losing progress took real care. That includes someone who plays as a guest, then signs up, then signs in on another device.
- Ads that don't feel like ads. Keeping monetisation fully opt-in and still verifiable meant wiring reward verification end to end.
Accomplishments that we're proud of
- Over 4,000 puzzles solved by players so far.
- 17 complete games, each with a Daily, a leaderboard and its own polished feel.
- Boards that play themselves on every game's page. That's the moment people "get" a new puzzle.
- A OneSignal setup that treats notifications as something useful, not spam: identity shared with our database, messages that depend on what the player has done, personalised wording, and taps that open the right screen.
- No in-app purchases and no paywall. Every ad is the player's choice and every reward is verified.
- Shipped in **six languages.
What we learned
The biggest lesson was design. Making one experience that feels right on phone, iPad and the web, across 17 games with completely different mechanics, meant a strict design system and a lot of iteration, often with HTML mockups before any Swift.
The second was choosing platforms that bring everything together:
- Supabase as the single source of truth for who someone is and what they've played.
- OneSignal to act on that data with the right message at the right time.
- RevenueCat to tie ad revenue and reward verification into one view.
Picked well, they turn three separate tools into one app that feels coherent.
What's next for Logic Puzzles
- More to come: more games, friends and head-to-head Daily results, and A/B testing message timing and wording in OneSignal.
Built With
- onesignal
- revenuecat
- swift
Log in or sign up for Devpost to join the conversation.