The original open-source Mahjong Solitaire game powering many Mahjong experiences on the web.

Completely free, no ads.

If you like it, please consider to rate it, thanks :) 

Have fun!


📖 About

The goal is to remove all tiles in open pairs from the game board. 

Open: A tile is open if there are no tiles to its left, right or above it. 

Pair: Two tiles with identical front. 

Within the flowers and seasons, any two tiles from the same group can be matched.

Select two matching tiles to remove them. 

Because there are more than two tiles for each potential pairing, strategy is involved.


✨Features

🧩 84 built-in boards - from classic layouts like Turtle and Dragon to unique custom designs

🌱 Random seed based board generator  - enter or generate a custom seed to share or replay a specific randomly generated board for endless replayability

🎨 13 tile image sets - switch between beautiful tile designs in light and dark styles

🖼️ Massive visual customization - 8 image backgrounds, 375 pattern backgrounds, light/dark mode, 14 color themes

🏆 3 difficulty levels - from relaxed casual play to expert-level challenge 

📅 Daily challenge - one board and one rule set per day, the same for everyone, with streaks, a result calendar and a best score per challenge type

🧘 Zen mode - hide the UI  for a clean, distraction-free playing experience

🔍 Pan, zoom and rotate - move and pinch-zoom the board, and optionally rotate it in portrait to fit wide layouts on a phone

⌨️ Playable by keyboard - tab and arrow key navigation everywhere, shortcuts for every game action, visible focus and screen reader announcements

⏱️ Optional game timer - show or hide the game clock to suit your play style

🎉 Victory confetti - optional celebratory confetti burst when you clear the board

💾 Auto-save - your game state and best times are saved locally in your browser, never to the cloud

📱 Cross-platform - runs in the browser, on desktop (macOS, Windows, Linux), and on Android

🌍 37 languages, including right-to-left - English, العربية, বাংলা, Català, Čeština, Dansk, Deutsch, Ελληνικά, Español, Euskara, فارسی, Suomi, Filipino, Français, हिन्दी, Magyar, Bahasa Indonesia, Italiano, 日本語, 한국어, Bahasa Melayu, Nederlands, Norsk, Polski, Português, Română, Русский, Svenska, Kiswahili, தமிழ், తెలుగు, ไทย, Türkçe, Українська, اردو, Tiếng Việt, 中文 


📅 Daily Challenge

One board and one rule set per day, the same for everyone. A new challenge unlocks at midnight, your local time. Your streak, your best streak, a won/played count and a calendar of past results are kept locally, and each challenge type keeps its own best score.

Midas Match
Find and match the gold-marked tile. Hints and undo are allowed.
Sparkstone
Clear the board before time runs out. Matching the sparkstone adds time and marks a new one.
Match Rush
Make the target number of matches before time runs out. The board does not have to be cleared.
Fortune Hunt
Reach the target score before time runs out. Fast matches in a row build a multiplier.
Running Sand
You start with little time. Every match adds time, but only up to a limit. Clear the board in time.
The Purge
Remove every tile of the marked suit before time runs out.
Blackout
Only free tiles show their face, covered tiles stay blank. Hints are allowed, undo is not.


⌨️ Hotkeys

T - Show possible moves 

U - Undo last move

N - Start a new game

P - Continue/Pause game

I - Tiles Information 


🔗 Resources

Source code available at https://github.com/ffalt/mah

Download the latest release at https://github.com/ffalt/mah/releases

Play the latest version at https://ffalt.github.io/mah/


🏛️ Explore More Boards

Mahjong Solitaire Layout Museum

Browse a curated archive of custom board layouts created by the Kyodai Mahjongg community.

Development log