Classic Solitaire
A Klondike solitaire past 100K downloads at a 4.4 rating, built on a 40-module Unity architecture and shipped to both stores from one codebase.

The impact:
What this product is.
Classic Solitaire is the flagship title in the portfolio: a Klondike card game for iOS and Android, released with no forced advertising and grown to more than 100,000 downloads at a 4.4 store rating. Everything a player touches — the deal, the coin economy, achievements, daily bonuses, subscriptions — sits on a modular Unity architecture designed to keep shipping features years after launch.
What needed solving.
Casual card games live or die on retention, and the category is crowded with titles that monetise aggressively from the first session. The product had to feel generous enough that a player would stay for years, while still earning. On the engineering side, a single codebase had to serve two separately branded store listings, twenty languages and two app stores without the codebase forking into two.
How we approached it.
We built the game on a feature-module architecture — around forty self-contained modules resolved through a service locator — so each system can be developed, tested and released independently. Ads are opt-in only: a player can finish the game for years without seeing one, and monetization comes from RevenueCat subscriptions and coin packs instead. Localization is validated in CI against per-key length budgets, so a translation can never overflow a button, and the whole release path to Google Play and TestFlight runs from shared reusable workflows.
What's inside?
No forced ads anywhere. A player sees an ad only if they deliberately tap to watch one, and it can be switched off entirely in Settings.
Achievements, coins, daily bonus, premium, localization and the rest are separate modules on a locator-based framework, each with its own tests.
511 keys per language, validated in CI against per-key length budgets so no translation ever overflows its button.
RevenueCat subscriptions alongside Unity IAP coin packs, with promo codes and native store offers rather than duplicate SKUs.
Progress follows the player's Google Play Games account across devices, with manual transfer support between platforms.
One push produces a signed Android bundle for Google Play and a TestFlight build for iOS, with version codes owned by the repository rather than the store.
Tools change. Standards don’t.
We choose the stack around the product — not the other way around.
- Unity 6
- C#
- Firebase
- RevenueCat
- Unity IAP
- Google Analytics 4
- Remote Config
- Google Play Games
- Addressables
- GitHub Actions
- Fastlane
Unity 6, C#, Firebase, RevenueCat, Unity IAP, Google Analytics 4, Remote Config, Google Play Games, Addressables, GitHub Actions, Fastlane
What we handled.
We worked on the product development and implementation, focusing on building a polished, functional and user-friendly experience aligned with the goals of the product.



