99 Francs
sales@99francs.agency

HQ Paphos, Cyprus · worldwide

Case study · Game design and development

CryptoCrush: from an idea to a match-three game on iOS, Android and Telegram.

Johannes, a founder in Cape Town, found us on Dribbble with an idea for a match-three game where the tiles are crypto coins. We did the wireframes and the whole game design, built it for iOS and Android to prove the mechanics on real phones, then rebuilt it as a Telegram Mini App with a real server, leaderboard, ads and an admin panel.

CryptoCrush launch card for the Telegram bot — the game's logo, floating islands and a phone showing a level 3 board of crypto coins
ClientJohannes, founderSouth Africa
IndustryMobile game
BuildsiOS, Android, Telegram Mini App
Found us viaDribbble
TimelineAbout 8 weeks
Direct answer

One idea, one game design, three builds — ending in a Telegram Mini App.

We designed CryptoCrush from scratch, built it natively for iOS and Android to test the match-three mechanics on real phones, then rewrote it in TypeScript as a Telegram Mini App with a server-backed leaderboard, Adsgram ads, a bot and an admin panel. All 25 levels play on every build, and the client accepted the Mini App about eight weeks after the first commit.

Challenge

An idea, and nothing else yet.

There was no design, no prototype and no code — only a wish for a match-three game built around crypto coins. Everything had to be made, and the game had to feel right in the hand before it went anywhere near players.

Design before code

Johannes came to us through Dribbble with an idea and nothing else. We started with wireframes, then designed the whole game in Figma — coins, board, level map, leaderboard, profile and the first-run walkthrough.

Prove the feel on real phones

Before anything went to players, we built the game for iOS and for Android to test the match-three mechanics on real devices. Johannes reviewed the iOS build on his own phone.

Native, on purpose

One web build for every platform was considered and turned down: the client wanted native feel, and in a match-three the feel is the product. Android became the commercial target, since it is well over 80% of the Cape Town market.

How it was built

Six steps, from wireframes to an admin panel.

Each build is a rewrite, not a port. What carries across is the design, every asset, the sound set, the game rules and the level curve — none of the code.

01

Wireframes

The screens and the flow between them, from the first launch to a cleared level.

02

Game design

The full visual design in Figma: crypto-coin tiles, the board, a painted level map, leaderboard, profile and onboarding.

03

iOS build

A SwiftUI app with a SpriteKit board, verified on a physical iPhone.

04

Android build

Kotlin and Jetpack Compose, with a Canvas board. Its engine was checked against the iOS level curve, so both play the same game.

05

Telegram Mini App

A TypeScript rewrite with a Canvas 2D board, a real server, a leaderboard, ads and a bot — running on the client's own bot and Cloudflare account.

06

Admin panel

A separate page for whoever runs the game: players, weekly results, prizes and request timings.

Game design · iOS and Android

The mechanics, proven on real phones first.

Screens from the iOS build: a SwiftUI shell around a SpriteKit board, verified on a physical iPhone. The Android build — Kotlin and Jetpack Compose — plays the same 25 levels, with a weekly and all-time leaderboard, a rank ladder, a profile, a music picker and an onboarding walkthrough.

CryptoCrush iOS splash screen — the Bitcoin app icon and the Play · Match · Win line over floating islands
CryptoCrush iOS walkthrough — Match & play, swap the top crypto coins to line up 3 or more
CryptoCrush iOS game board on level 3 — moves, score and best, a collect goal and a grid of crypto coins
CryptoCrush iOS Level cleared card — stars, score and Next level, Replay and Back to map buttons
CryptoCrush iOS level map — a winding trail of level nodes between painted floating islands
CryptoCrush iOS leaderboard — this week and all time tabs, a podium for the top three and the rankings below
Level design

Difficulty was tuned with a level simulator, not by feel: goal tiles per move rise from 2.6 at level 5 to 4.35 at level 25.

Telegram Mini App

Then the client asked for Telegram.

We rebuilt the game in TypeScript with a Canvas 2D board, and gave it what the native builds never had: a server, real players on the leaderboard and real ads. It runs inside Telegram on the client’s own bot and Cloudflare account.

Real leaderboard

Scores go to a Cloudflare D1 database through Pages Functions that verify Telegram's initData signature on every request. Weekly and all-time boards, with the week reset on the Africa/Johannesburg calendar.

Real ads

Adsgram serves an interstitial between rounds and a rewarded ad for extra moves, on a pacing the client chose.

A bot that answers

The bot replies to every message with a Play button — Adsgram requires a responsive bot before it approves a platform.

Same game, new code

No code is shared with the native builds. The design, assets, rules and level curve are, and the Mini App's 816 passing tests check the engine against the iOS curve.

CryptoCrush Telegram Mini App level map — a Play button on level 1, locked levels up the trail and a treasure chest at the top
CryptoCrush Telegram Mini App level 1 — 30 moves, a goal to collect 30 Bitcoin and the coin board
CryptoCrush Telegram Mini App leaderboard — this week and all time, the weekly reset countdown and a podium
CryptoCrush Telegram Mini App weekly prizes sheet — podium for the top three and an Allow messages button
CryptoCrush Telegram Mini App profile — this week's levels, XP and stars, settings, music and legal links
CryptoCrush Telegram Mini App walkthrough — Match & play with a sample row of three matched coins

Captured from the Mini App running outside Telegram, so the board shows the game’s stand-in rivals rather than real players.

Admin panel

One page for whoever runs the game.

Players overview, weekly results, prizes for the weekly winners and request timings. Each admin signs in with their own password, and everything fails closed: with no secrets set, the server answers 503 and shows nothing.

CryptoCrush admin panel, Players tab, with demo data — counts of players, weekly activity and reachable players above a sortable player table
CryptoCrush admin panel, Weekly results tab, with demo data — each closed week with its places, scores and whether the bot may message the player

Shown with demo data: the names and numbers are invented, not real players.

Outcome

Delivered and accepted.

The Telegram Mini App was delivered to the client and accepted on 29 September 2026. The game is live in Telegram through the client’s bot.

3

builds of one game

iOS, Android and a Telegram Mini App, all from one game design and one set of rules.

25

levels, playable on every build

Difficulty was tuned with a level simulator: goal tiles per move rise from 2.6 at level 5 to 4.35 at level 25.

~8

weeks to an accepted Mini App

From the first commit on 3 August 2026 to the Mini App being delivered to and accepted by the client on 29 September 2026.

Client review · 5.0 on Dribbble
“He is absolutely the best in his work. I'm really pleased with everything.”
Johannes · CryptoCrush founder, Cape Town · via Dribbble
Client review · 5.0 on Dribbble
“Very good service. I would recommend him to anyone. He went the extra mile for me it's really much appreciated.”
Johannes · CryptoCrush founder, Cape Town · via Dribbble
How the project started

Johannes found us on Dribbble, and the whole project ran through Dribbble too. Both reviews he left there are above, word for word.

Guides

Further reading

Idea → design → build

Have a game or an app idea, and nothing built yet?

Tell us the idea. We design it, build it on the platforms that matter to your players and hand over something they can use.

Game design · iOS · Android · Telegram Mini App
Everything, starting from an idea. 99 Francs made the wireframes and the full game design, built the match-three game for iOS and Android to test the mechanics on real phones, then rebuilt it as a Telegram Mini App in TypeScript with a real server, a weekly and all-time leaderboard, Adsgram ads, a bot and an admin panel.
To prove the game on real phones first. A match-three lives or dies on how it feels, so the mechanics were tested in native builds — the client reviewed the iOS build on his own device. The Telegram Mini App came at the end, when the client asked for it.
No. It is a TypeScript rewrite. What carries over is the design, the assets, the sound set, the game rules and the level curve; the Mini App's tests check its engine against the curve measured on iOS.
Scores are stored in a Cloudflare D1 database through Pages Functions that verify Telegram's initData signature, and the week resets on the Africa/Johannesburg calendar. Ads come from Adsgram: an interstitial between rounds and a rewarded ad for extra moves.
The client. The Mini App runs on his own Telegram bot and his own Cloudflare account, and the admin panel signs in with a separate password for each admin. Without its secrets the server refuses requests instead of opening up.

Yes. CryptoCrush started as an idea with no design and no code. We did the wireframes, the design and the builds, and the client accepted the Mini App about eight weeks after the first commit. That is the kind of work we take on through MVP development and mobile app design and development.