← All Projects

Classic Solitaire

Our Klondike solitaire, past 100K downloads on Google Play. One Unity codebase ships two apps to phones, desktop and the web, with a cosmetics shop, daily challenges, leaderboards, online duels and live ops.

Mid-game on the purple theme with illustrated court cards and the Celestial card back, Premium badge in the header
Mid-game on a leaf background with the same court cards and Premium suits
  • 100K+

    downloads on Google Play

  • 20

    languages, every string length-checked by tests

  • 39

    feature modules in the Unity client

  • 2

    apps, Classic and Dark, from one codebase

Product
Our own game
Stores
Google Play, App Store, Microsoft Store
Platforms
Android, iOS, Windows and the web
Our part
Game, server, admin and releases

The brief.

Context

Classic Solitaire is our own game: Klondike for Android, iOS, Windows and the web, with more than 100,000 downloads on Google Play. Players dress the table with themes, card backs, court cards and suits bought with coins, play a daily challenge, climb leaderboards and take on other players in online duels. Solitaire Dark, the ad-supported edition, is built from the same code.

Challenge

Solitaire is a crowded category, and most titles earn by showing ads from the first deal. We wanted a game people keep for years and pay for by choice: cosmetics, Premium, and ads only for players who switch them on. That takes a steady flow of items, offers and news, from a team too small to ship an app update for each one.

Approach

The client is 39 independent Unity modules. A NestJS server over Firestore and Realtime Database owns prices, duels and player data. Shop catalogues, news, polls, promotions and support live in a FireCMS admin and Remote Config, so content goes out without a release. One CI pipeline builds both editions for every storefront.

A table you dress yourself.

Themes recolour the interface. Backgrounds, card backs, court-card characters, suits and win celebrations change separately, so two players rarely see the same table. Any item can be tried on a real deal before buying. Shelves open one by one, and the server prices each from a base, a step per shelf and a discount on Premium items.

  • Nine shop categories, from card backs to leaderboard panels.
  • Prices round to the nearest 100 coins.
Themes shelves: the first shelf owned, the second with themes at 0 and 15,000 coins
Shop
Preview of Premium suits worn with the purple theme, illustrated characters and Celestial back, 12,500 coins
Try-on
The default green table at the first deal
Classic
The same account after buying: purple theme, illustrated court cards, Celestial back and Premium suits
Custom

A new deal every day.

Each day has one deal, the same for every player on the same rules. Winning it puts a medal in a monthly calendar, and 10 medals, 20 medals and a full month pay 100, 200 and 300 coins. Every deal is one the game's own hint engine has already won under the player's Draw 1, Draw 3 or Vegas rules.

  • The day turns over at the player's local midnight, not at UTC.
  • Past days of the month are open to Premium players.
Daily Challenge tutorial: one medal per won day, 100, 200 and 300 coins for 10, 20 medals and the whole month
Rules
October calendar with medals on four days and the reward track at 4 of 31
Calendar
A daily deal at the first move, marked with the Daily Challenge watermark
Daily deal

Leaderboards with a panel of your own.

Leaderboards cover coins, wins, score, best time, fewest moves, daily medals, streaks and duel wins. Each tab shows the player's own place, and their panel stays pinned at the bottom of the list. Panels are cosmetics too, bought on shelves in the shop, some for Premium only. Premium players also carry a Premium badge.

  • Players pick their own nickname and country flag.
Coins leaderboard with country flags, a tab per category on the right and the player's own red panel pinned at the bottom
Leaderboard
Leaderboard panel shelves at 25,000 to 75,000 coins, Premium only
Panels
Confirmation dialog: buy this leaderboard panel for 25,000 coins
Buy

A duel against a real player.

Online Duel pairs two players on the same deal for five minutes. Each move goes to the server, which shows the opponent's foundations, moves and score beside yours, settles the result and pays coins for winning, taking part and every card placed. There are no hints, undo or shuffle, and a short pause between taps keeps it fair.

  • Both clients shuffle from one key the server stamps on the match.
  • A server scan scores every player's statistics, wallet and purchases for impossible numbers.
Online Duel rules: the same deal for both, a five-minute limit, no hints or undo, 198 players online
Rules
Opponent found, the duel starts in two seconds
Match
A live duel: the opponent's foundations on top, moves 15 vs 70 and score 30 vs 170
Live
Defeat: the opponent collected all 52 cards first, with the coins each side earned line by line
Result

Reasons to come back tomorrow.

A daily bonus grows from 10 to 150 coins over six days in a row, and free coins refill every four hours. The daily challenge, the leaderboards and the win and login streaks all reward showing up again. The profile keeps the record: games, wins, best time and score, streaks and everything collected.

  • Premium doubles the daily bonus.
  • Statistics and purchases come back on a new device through cloud restore.
Daily Bonus ladder: +10, +25, +50, +75 and +100 coins, then +150 from day six
Daily bonus
Profile overview: 549 games, 373 wins, 68% win rate, best win streak 13 and best login streak 165
Statistics
Profile collection: five items owned across fourteen categories
Collection

Premium, and a table for the season.

Premium is a subscription with eleven perks: a double daily bonus, 2,500 coins at once, Premium-only items, past daily challenges, pause in timed games, free night mode, a closed Telegram channel and more. Seasonal collections arrive from the admin. For Halloween, backgrounds, card backs and bonus effects carry a pumpkin badge in the shop, some for Premium only.

  • In Classic, ads stay off until the player switches them on in Settings.
  • Solitaire Dark, the ad-supported edition, is the same code behind one build flag.
Premium screen, active until 1 November 2026: daily rotation, free night mode, double daily bonus, Premium store items, 2,500 coins
Premium
Backgrounds shelves with Halloween items under pumpkin badges, some Premium only, from 0 to 12,500 coins
Halloween
Preview of a Premium-only Halloween background, a sea serpent by a lighthouse, behind a real deal, 2,500 coins
Try-on
Game settings with Show ads switched off, below Vegas mode, Time attack, Draw 3 and Auto hint
Ads off

Content ships without a release.

Most of what changes week to week lives in a FireCMS admin on top of the same Firestore the server uses. Remote Config switches features on per platform. Support is a chat inside the game whose threads land in the same admin.

  • Catalogue

    Items, shelves and pricing knobs, edited in the admin and live without an update.

  • Seasonal decor

    Store badges and the shop button's art, switched on for a season from the admin.

  • News and polls

    Posts and one-question polls shown inside the game.

  • Promotions

    Promo popups, last-call offers and promo codes, aimed at player segments.

  • Support chat

    Players write from the game; replies arrive in the same thread.

  • Remote Config

    Feature switches and tuning values per platform and edition.

One codebase, every storefront.

Classic and Dark, phone, desktop and web builds all come from one repository. Nothing is uploaded by hand: CI runs the tests, builds each target and sends it to its store.

  1. Tests

    EditMode and PlayMode suites, including string-length checks for all 20 languages.

  2. Android

    Signed bundles for Google Play and RuStore.

  3. iOS

    Xcode builds through Fastlane for the App Store.

  4. Windows

    Packages for the Microsoft Store through Partner Center.

  5. Web

    WebGL builds for Firebase Hosting, Yandex Games and Telegram.

What we built.

Our part

  • Game, shop and economy design
  • Unity client built from 39 feature modules
  • NestJS server: prices, duels, cheat scoring
  • FireCMS admin and live ops
  • CI/CD to every storefront
  • Player support inside the game

Stack

Game
  • Unity 6
  • C#
  • Addressables
Server
  • NestJS
  • TypeScript
  • Firestore
  • Firebase Realtime Database
Live ops
  • FireCMS
  • Firebase Remote Config
  • Google Analytics 4
Payments and ads
  • RevenueCat
  • Unity IAP
  • LevelPlay
Release
  • GitHub Actions
  • Fastlane
  • Google Play
  • App Store
  • Microsoft Store

Building a game that should last for years?
Let's build it together.

We design the economy, the server and the live-ops tools along with the game, so content keeps shipping after launch.