WhatsApp
Tecifo Solutions logo: orange hexagon cube with blue hexagon dotsTecifo.Book a call
← All work
Web Developmentprivate client

Pasa Slots

Browser-based slot machine platform with real-time reel animation, multiple themed machines, bonus rounds and free spins — built as a virtual-currency product with responsible-play limits in the core loop.

Sector
Gaming / virtual currency
Engagement
Build — full client application
Timeline
May 2023 → Nov 2023
Team
2 frontend engineers
01 — The problem

A slot game lives or dies on feel, and feel is the hardest thing to retrofit.

The client had a working prototype in which the reels were animated first and the result was read off wherever they happened to stop. It looked fine until it did not: a dropped frame or a backgrounded tab changed the outcome, two players on the same spin could see different symbols, and a near-miss could not be designed deliberately because nothing knew in advance what the spin was going to be. Every new bonus feature made the timing more fragile.

The second problem was breadth. Each themed machine had been built as its own screen with its own copy of the paytable, spin loop and bonus logic, so adding a theme meant duplicating the game and adding a fifth place for a bug to hide. The brief was to make a new theme a content decision rather than an engineering project, and to keep the whole thing playable on a phone.

02 — How we solved it

What we built, and why in that order

01
Outcome first, animation second
The spin resolves to a full result — stops, lines, wins, triggered features — before a reel moves. Animation is a presentation of that result, so a slow device, a resized window or a backgrounded tab changes the show and never the payout, and near-misses become a deliberate reel-strip design rather than an accident.
02
One machine, many themes
A typed machine definition carries reel strips, paytable, symbol roles and feature rules; a theme supplies art, sound and copy against that contract. New machines ship as data, and every theme inherits the same tested spin loop, autoplay and win evaluation.
03
Redux as the game ledger
Balance, bet level, spin state, free-spin counters and bonus progress live in a single Redux store with typed actions. Every balance change is one reducer path, which made the wallet auditable, the game resumable after a refresh, and responsible-play limits enforceable in state rather than in UI checks.
04
Built for the phone it is played on
Mantine for application surfaces — lobby, wallet, history, settings — and Tailwind for the game canvas layout, with reels driven by compositor-only transforms. The whole loop holds 60fps on mid-range mobile hardware, which is where the sessions actually happen.
StackNext.jsReactReduxTypeScriptMantineTailwind CSS
Outcome
60fps
Spin loop on mid-range mobile
1 → many
Themes from a single machine engine
2 days
To ship a new themed machine
0
Outcomes decided by animation timing
Separating the result from the animation sounded like an internal detail. It turned out to be the reason the game feels the same on every device.
Product owner, gaming client
03 — Where they are now

The engine is the product; the themes are content on top of it.

Our role: Frontend product engineering

The client releases new machines on a regular cadence without engineering involvement in the game loop — reel strips, paytables and feature rules are authored against the typed definition and reviewed like content. Because outcome and presentation are separate, feature work such as a new bonus round is written once and appears correctly in every theme.

Responsible-play controls — session length, spend ceilings and reality-check prompts — sit in the same store as the wallet, so they cannot be bypassed by the interface and were straightforward to tighten when the client's policy changed. Our involvement ended at handover with the engine, theme authoring guide and test suite in the client's hands.

Next case studyCleverseedAI/ProductSimilar problem?Start a projectinfo@tecifo.com

Have something that needs to ship?

Scope agreed in writing, architecture first, weekly increments you can review. Start with a 30-minute call or send the brief.