Color Sudoku Play
Visual Sudoku variant where numbers are replaced by 9 colors. Same logic, completely new experience. Glassmorphism design, 1v1 duels, social system, offline-first with event sourcing. Published on both stores.
6,020
Puzzles
6
Difficulties
9
Colors
17+
DB Tables
11
Screens
v1.0.3
Current version
Key Features
Color Gameplay
Color Board
Numbers 1-9 are replaced by 9 distinct colors. Same classic Sudoku logic: each row, column, and 3×3 box without repeats.
Classic & Purist Modes
Classic with lives, error feedback, and hints. Purist without aids for advanced players.
Notes System
Mini color circles in each cell to mark possible candidates. Essential for high difficulties.
Accessibility
Designed for a broad audience including people with numerical dyslexia and children. Colorblind palette prepared.
Social & Duels
Real-time 1v1 Duels
Same puzzle for both players. Bets of 0, 10, 25, 50 or 100 coins. Winner receives double. Supabase Realtime for result detection.
Friends System
6-character codes, username search, requests (send, accept, reject, block), leaderboard among friends.
Progression & Engagement
Levels & XP
Base XP + bonuses (no hints, no errors, daily). Progressive levels with coin economy.
Daily/Weekly Challenges
Daily puzzle same for all, weekly challenges with progressive objectives and XP + coin rewards.
Streaks with Shields
Daily streaks with increasing bonuses and streak shield protection.
Monetization
AdMob Integrated
Banners on Home, interstitials every 3 games (min 60s), rewarded for hints (90s cooldown) and coins (+50, max 10/day).
Premium Subscription
$0.99/mo or $9.99/yr: no ads, additional benefits. Integrated via react-native-iap v14.
Glassmorphism Design
Differentiated Aesthetic
Multi-layer gradients, translucent surfaces with glass effect, semi-transparent borders, floating circles with blur.
Cyan/Coral Palette
Own visual identity completely distinct from Sudoku Play. Result of redesign to overcome Apple Guideline 4.3(a).
Tech Stack
Frontend / Mobile
React Native 0.81.5
New Architecture enabled
Expo SDK 54
Build, distribution and OTA updates
React 19.1 + TypeScript 5.9
UI with static typing
Zustand 5
8 stores: game, user, auth, theme, premium, challenge, duel, friend
React Navigation 7
Stack navigation
Backend
Supabase
Auth, DB, Realtime, Edge Functions, RLS
Edge Functions (Deno)
validate-completion, sync-events
Supabase Realtime
postgres_changes for real-time duels
PostgreSQL
Schemas global + color_sudoku, 17+ tables
External Services
Google AdMob
Banner, interstitial, rewarded
Firebase Crashlytics
Production crash reporting
Apple Sign In + Google OAuth
Native authentication
EAS Build + Update
Cloud builds and OTA deployments
Local Storage
AsyncStorage
Offline event queue, preferences
expo-secure-store
Device ID, encrypted tokens
expo-sqlite
Puzzles and local cache
Main Libraries
Architecture Decisions
Event Sourcing for Sync
Actions as immutable events with UUID. Local queue in AsyncStorage, batch sending. Server processes idempotently and returns canonical state. 9 event types supported.
Offline-First
Puzzles in SQLite, games in AsyncStorage, local event queue. 5s debounce, min 30s between syncs, max 3 retries with progressive delays (5s, 15s, 60s).
Shared Multi-Schema
Same Supabase as Sudoku Play. Global schema for users/friendships, color_sudoku for game data. Public views with color_ prefix as abstraction layer.
Dual Anti-Cheat
Client calculates for immediate feedback, server recalculates everything. Movement history analysis, impossible time detection, suspicion scoring and shadow bans.
Zustand by Domain
8 separate stores (game, user, auth, theme, premium, challenge, duel, friend). Selective renders and clear separation of concerns.
Realtime for Duels
Supabase Realtime (postgres_changes) detects when opponent completes. Automatic coin sync on complete, decline, or expire.
HMAC Request Signing
Each sync signed with timestamp, nonce, and deviceId. Server validates signature before processing, preventing in-transit manipulation.
Technical Challenges Solved
Apple Rejection (Guideline 4.3a)
Problem: Apple rejected the app for being too similar to Sudoku Play. Changing numbers to colors wasn't enough differentiation.
Solution: Complete redesign with glassmorphism system: multi-layer gradients, translucent surfaces, floating circles, cyan/coral palette.
→ App approved on App Store. Glassmorphism became the visual identity.
Robust Offline Sync
Problem: Guarantee zero data loss without connection, including completions, purchases, and duels.
Solution: Event Sourcing with persistent queue, UUIDs for idempotency, state reconciliation, smart sync with battery level.
→ Zero data loss reported in production.
Background Crashes on Android (Samsung)
Problem: Background fetch causes critical crashes due to aggressive Samsung battery restrictions.
Solution: Platform-specific detection: disable background fetch on Android, opportunistic sync on open/complete/screen change.
→ Complete crash elimination, no perceptible impact.
Consistent Duel Economy
Problem: Guarantee correct coin handling for victory, defeat, draw, rejection, expiration, abandonment.
Solution: Server-side logic in transactional SQL functions. Atomic coins. Client only syncs resulting balance.
→ Zero balance inconsistencies. All edge cases covered.
Shared Multi-App Database
Problem: Two apps sharing users/friendships but with completely separate game data.
Solution: Multi-schema architecture: global + dedicated schemas, naming with prefixes, public views as abstraction, RLS per schema.
→ A player can be friends in both apps with a single account, independent data.
Project Status
Completed & In Production
- Complete gameplay with Classic and Purist modes
- 9-color system with differentiated palette
- Complete glassmorphism interface
- 1v1 duels with bets and Realtime
- Friends system with friend codes
- Offline sync with event sourcing
- Anti-cheat with server-side validation
- AdMob + premium subscription monetization
- Google + Apple + guest authentication
- Daily/weekly challenges
- ES/EN internationalization
- 6-slide interactive onboarding
- 9 professional SQL migrations
- Published on App Store and Google Play
Pending
- IAP subscriptions on both stores
- Supabase Realtime for duels
Key Achievements
Published on App Store and Google Play — overcame Apple rejection and complete redesign
Offline-First architecture with Event Sourcing — zero data loss in production
Server-side anti-cheat with movement analysis, impossible times, and shadow bans
1v1 duels with Supabase Realtime, coin bets, and all edge cases resolved
Multi-App shared infrastructure with Sudoku Play — same users, separate data
Glassmorphism redesign that achieved visual differentiation for Apple Guideline 4.3(a)
6,020 puzzles with 6 difficulty levels
9 professional SQL migrations with schemas, functions, triggers, RLS, and audit
Additional Information
Languages
Spanish + English
Modes
Classic + Purist
Themes
Dark + Light (2 more planned)
Puzzles
6,020 unique
Sudoku Color Palette
Coral red
Turquoise
Sky blue
Mint green
Soft yellow
Violet
Orange
Seafoam
Gold
Schema global
Users and friendships shared with Sudoku Play. One player uses a single account for both apps.
Schema color_sudoku
17+ tables: catalog, completions, stats, duels, events, challenges. Public views with color_ prefix.