Mobile App

Sudoku Play

Complete mobile Sudoku app with progression system, adventure mode with 5,900 levels, 1v1 duels, social features, and professional monetization. Offline-first architecture with event sourcing sync. One-man project published on both stores.

Published on both storesJanuary 2026 — v1.0.13Android + iOS

6,000

Unique puzzles

5,900

Adventure levels

590

Worlds

13

Screens

14

Event types

v1.0.13

Current version

Features

Key Features

Core Gameplay

9x9 Responsive Board

Precise touch mapping respecting safe areas on all devices.

Drag Input

Hold 0.5s to activate drag mode for placing multiple numbers by sliding across cells.

Two Game Modes

Classic (instant feedback, limited lives) and Purist (no validation, no hints).

Smart Hints

Identify pivot cells with 1:30 minute cooldown.

Unlimited Undo + Autosave

Complete move history. Autosave every 10s, on pause and on exit.

Adventure Mode

5,900 Levels

590 worlds organized in 6 chapters with progressive difficulty.

Candy Crush-style Map

Winding path with interactive nodes and Boss levels.

Hearts & Stars System

Time-based regeneration, ads to recover, gates requiring accumulated stars.

Progression & Engagement

Complete Economy

XP, user levels, in-game coins with chain multipliers.

Streaks with Shields

Daily streaks with increasing bonuses and streak protection.

Daily Challenge + Quests

Daily puzzle same for all, daily and weekly quests with rewards.

Achievement System

Achievements with dedicated screen and progress tracking.

Social & Duels

Friends System

Unique 6-character codes, friend requests, leaderboard with multiple metrics.

1v1 Duels

Same puzzle for both, coin bets, winner by time + errors.

Anti-cheat in Duels

No hints, no pause, no autosave. Server-side coin escrow.

Monetization

Ads (AdMob)

Banner on Home (never during gameplay), interstitial between games, rewarded for hints and coins.

Premium Subscription

$0.99/mo or $9.99/yr: no ads, +50% coins, 5 hints per game, exclusive themes, infinite hearts.

In-App Purchases

Integrated with App Store Connect and Google Play Console via react-native-iap v14.

Technologies

Tech Stack

Frontend / Mobile

React Native 0.81

Base framework for Android and iOS

Expo SDK 54

Toolchain, builds and OTA updates

TypeScript 5.9

Static typing across the project

Zustand 5

State management with persistence

React Navigation 7

Stack-based navigation

Backend

Supabase

Auth, DB, Edge Functions, RLS

PostgreSQL

Schemas global + sudoku

Deno Edge Functions

sync-events, validate-completion

Row Level Security

Row-level security

External Services

Google AdMob

Banner, interstitial, rewarded

Firebase Crashlytics

Real-time crash reporting

Firebase Cloud Messaging

Push notifications

EAS Build + Update

Cloud builds and OTA updates

Local Storage

SQLite (expo-sqlite)

6,000 pre-loaded offline puzzles

AsyncStorage

State, config, progress

expo-secure-store

Device ID and encrypted sensitive data

Main Libraries

@supabase/supabase-jsreact-native-google-mobile-adsreact-native-iap@react-native-firebase/crashlyticsexpo-notificationsexpo-cryptoexpo-hapticsexpo-avexpo-batteryexpo-auth-sessionexpo-apple-authentication@react-native-community/netinfoi18nextreact-native-gesture-handlerreact-native-view-shotexpo-sharing
Design

Architecture Decisions

Event Sourcing for Offline

Each action is recorded as an immutable event. The server processes them in order and is the source of truth. Enables idempotent sync, full audit trail, and safe multi-device merge.

Real Offline-First

6,000 puzzles in local SQLite, state in memory and AsyncStorage, offline event queue. Works 100% without internet.

"Sacred Gameplay" — Zero I/O

During active gameplay, zero network or disk operations. Everything in RAM. Deferred persistence with InteractionManager.runAfterInteractions(). Guaranteed 60 FPS.

Server as Source of Truth

The client is never trusted for coins, XP, or purchases. In duels, rewards are handled exclusively by the server.

Smart Sync Conditions

Evaluates WiFi vs data, battery level, power save mode, and event count before syncing.

Silent Anti-Cheat

Gameplay pattern analysis, HMAC-SHA256 signing, shadow bans without alerting the cheater.

Engineering

Technical Challenges Solved

Notes Rendering on Samsung One UI

Problem: flexWrap differs on Samsung, 3×3 notes rendered incorrectly.

Solution: Explicit 3×3 nested Views with fixed dimensions.

→ Pixel-perfect rendering on 50%+ of Android market.

Background Fetch Crashes on Android

Problem: expo-task-manager causes NullPointerException on Samsung before JS initialization.

Solution: Sync on foreground return instead of background fetch.

→ Production crash elimination.

Google Play Services Fallback

Problem: App crashed on Huawei/emulators without Play Services.

Solution: Service with availability detection and dynamic imports.

→ Works on all devices.

IAP Plugin Missing on iOS

Problem: react-native-iap not included in app.json plugins, excluding entitlement.

Solution: Plugin added + new native build.

→ Subscriptions enabled on iOS.

Multi-Device Sync

Problem: State merge generates coin conflicts between devices.

Solution: Event sourcing with UUID per event. Server recalculates state.

→ Zero data loss, full audit trail.

Duel Economy

Problem: Math.max() for merge allowed coin exploits.

Solution: Coin escrow on create/accept. Authoritative server.

→ Economy protected against exploits.

In-Game Performance

Problem: Persistence and sync caused micro-stutters.

Solution: "Sacred gameplay": state in RAM, autosave with debounce, deferred I/O.

→ Constant 60 FPS, imperceptible autosave.

AdMob Verification

Problem: AdMob required domain verification to serve ads.

Solution: app-ads.txt on GitHub Pages + URL in both consoles.

→ Active monetization on both platforms.

Progress

Project Status — 13/13 Phases

Phase 1: Setup & Infrastructure

Phase 2: Puzzle Generator

Phase 3: Game Core

Phase 4: Progression Systems

Phase 5: Auth & Sync

Phase 6: Monetization

Phase 7: Polish & Testing

Phase 8: Notifications & Onboarding

Phase 9: Security & Anti-Cheat

Phase 10: Offline Sync

Phase 11: Performance Optimization

Phase 12: Friends System

Phase 13: 1v1 Duels

In Production

  • Published on Google Play and App Store
  • 2 Edge Functions deployed
  • AdMob verified and active
  • Crashlytics reporting in real-time
  • EAS Update for OTA deployments

Pending / In Progress

  • IAP subscriptions on both stores
  • Supabase Realtime for duels
Results

Key Achievements

Complete individual project: design, development, publishing, and maintenance on both stores

6,000 puzzles generated with custom backtracking algorithm in Python, 6 difficulty levels

5,900 Adventure Mode levels with Boss worlds, hearts, and star system

Event Sourcing implemented from scratch with idempotency, audit trail, and anomaly detection

Anti-cheat with pattern analysis, HMAC-SHA256, and silent shadow bans

Complete social system: friends with unique codes, leaderboards, 1v1 duels with bets

Real offline-first: 6,000 local puzzles, in-memory state, offline event queue

"Sacred gameplay" with zero I/O during active gameplay, guaranteed 60 FPS

Cross-platform with single codebase: React Native + Expo with native builds via EAS

13 development phases completed in ~3 weeks, from setup to publishing

Details

Additional Information

Languages

Spanish + English

Themes

Dark + unlockables

Puzzles

6,000 unique

Modes

5 (Classic, Purist, Daily, Duels, Adventure)

Database

Schema global

User profiles, prepared for multiple future games.

Schema sudoku

Catalog, completions, stats, friends, duels, events, adventure.

Future Vision

The architecture is prepared to evolve into a multi-game platform with shared global profile, cross-game challenges, global leaderboards, timed events, and tournaments. The global schema already supports multiple connected applications.

Download Sudoku Play

Available for free on Google Play and App Store.