PROJECT FILE 04 / Mobile & interaction / Prototype
Zen Mahjong
A small game. A considered system.
A calm Mahjong Solitaire prototype with a separate game engine and local progress. Built to explore how a thoughtful interface supports real domain logic.

Rules. Touch. Local progress.
Prototype gameplay · Expo web QAThe problem
A game needs more than attractive tiles. Rules, selectable states, saved progress, and touch feedback must agree.
What I built
- Structured an Expo and React Native prototype around reusable interface and design foundations.
- Separated Mahjong rules from the presentation layer in a framework-independent game engine.
- Implemented local persistence contracts and an MMKV adapter for offline progress.
Inside the engineering
Offline progress as a first-class concern
Persistence contracts separate saved-game data from the storage adapter and mobile screens.
Reusable presentation foundations
Shared design tokens and UI packages organize consistent tile, board, and navigation presentation.
What this demonstrates
Demonstrates mobile product architecture, domain modeling, offline state, and interaction design.
- React Native
- Expo
- TypeScript
- MMKV
Prototype, not a released app. The capture is from Expo web QA on October 11, 2026; physical-device and release sign-off remain separate work.
SOURCE REVIEWED / 2026-11-07