Mahjic Mahjong Desktop
Organize Leagues & Score Games
Only for Mac
Free · In‑App Purchases
The command center for running your mahjong club — built natively for Mac.
Mahjic Mahjong Desktop puts your entire club operation on your desktop: events, leagues, scoring, member management, and analytics. Native macOS performance with a beautiful SwiftUI interface.
——— POWERFUL ADMIN TOOLS ———
◆ Events & Registration
Create events, series, and punch card packages. Track registrations, waitlists, and capacity in real time.
◆ League Management
Build leagues with rotation patterns. Enter scores round by round. Automatic standings calculation.
◆ Table Assignments
Drag-and-drop table seating. Manage player assignments across rounds.
◆ Member Directory
Full contact management with CSV import, SMS invitations, and email communications.
◆ Templates & Graphics
Create reusable event templates. Upload custom graphics for your club brand.
◆ Analytics Dashboard
Attendance trends, revenue tracking, and growth metrics at a glance.
◆ AI Assistant
Built-in chat assistant for quick admin questions and help.
——— FOR PLAYERS ———
◆ Browse and register for events
◆ View game history and league standings
◆ Track your rating across clubs
◆ Purchase series passes and punch cards
——— GET STARTED ———
Create your free club at bamgoodtime.com, then sign in here.
Free to download. Club plans from $19/month.
——— LEGAL ———
Terms of Use: https://bamgoodtime.com/terms
Privacy Policy: https://mahjic.org/privacy
Standard Apple EULA: https://www.apple.com/legal/internet-services/itunes/dev/stdeula/
more See who is playing: open any Scramble challenge to view its full participant roster, right from the challenge card.
Notification reliability improvements.
1.1.6 3d ago
Series events get more flexible: when creating a series, you can now choose whether buyers are enrolled in every session automatically, series pricing shows on series-only sessions, and "Can't Attend" no longer appears on opt-in series.
Also in this release:
• Venue mode: table cards show who's seated, walk-in seats are priced correctly, and Mark Paid matches the web app
• Leagues: standings recalculate after every completed league event
• Punch cards & passes: repurchase a depleted punch card; expired monthly passes no longer offer a rebuy
• Chat: member names display correctly, and you can add members when creating a channel
• Club switcher: always clickable, with a quick exit back to your club hub
• Leads: people who are already members no longer appear as leads
• Free plan now includes 5 events per month
1.1.5 4d ago
Tournament brackets are here! Run single- and double-elimination tournaments with a visual bracket board — seed players, advance winners, and enter scores right from the bracket. Made a mistake? Admins can revert results and the bracket updates automatically.
Also in this release:
• Fixed a bug where toggling a member's membership status didn't save
• Bug fixes and performance improvements
1.1.4 4d ago
Bug fixes and improvements for club admins:
- The Pending Payments screen now also shows package purchases awaiting Venmo or cash payment, with a Mark Paid button for each.
- Marking a season package paid enrolls the player in all season events automatically.
1.1.3 Jul 12
Tournament scoring fixes and new club management tools.
• Tournament scoring: tables without entered scores no longer record as zeros, and round score submissions are more reliable
• Tournament Control Center: action buttons stay visible and reachable
• Leagues: add a description to your league so players know what to expect
• League scoring: score values can now be negative
• Event series: schedule two events on the same day, each with its own start time
• Packages: set purchase limits and choose a billing start date
• Venues: per-table schedules and pass redemption
• Add-ons: mark items as taxable
• Contacts: phone numbers stay in sync across your club
• Plus stability improvements and bug fixes
1.1.2 Jul 11
This release focuses on Channel Chat correctness and adds Spotlight to your hub.
• Spotlight. Your hub now surfaces a featured card so you can see what is happening at a glance.
• Chat. Your own messages and reactions are now recognized as yours, so reactions toggle correctly and you are no longer offered as a mention candidate for yourself.
• Moderation. Remove and Mute controls now appear only for club admins and channel moderators, matching what the server actually permits. Helpers no longer see buttons whose actions would be refused.
• Seating. The "you are not at a table" banner no longer appears when you are, in fact, seated.
1.1.1 Jul 10
Club chat comes to players. Members can now open their club's chat channels from the sidebar, see unread badges, and get notified about new messages according to their notification preferences. Admins can message an event host directly.
Event tables: remove a single table from an event, with a warning first if that table already has scores.
Fixes: private club events now appear in the member event list. Check-in from an event page is more reliable. Email All opens the in-app composer instead of handing off to Mail, and the contacts email preview shows the real branded message. The Tables toolbar no longer clips on narrow windows.
1.1.0 Jul 9
Package purchases now collect required signup questions before checkout.
Monthly pass fixes: passes are matched to the events they actually cover, and bookings into a billing period after a scheduled cancellation are blocked.
Dark mode: the chat compose field and accent surfaces are readable again.
Table cards show full player names on their own line instead of truncating.
1.0.32 Jul 7
This update rolls up a wide set of fixes and improvements:
• Faster, smoother in-app chat
• Leagues & The Scramble: scoring, standings, and roster fixes
• Guest passes, gift cards, and event registration polish
• CSV contact import improvements
• Various bug fixes and stability improvements
Thanks for using Mahjic!
1.0.31 Jul 4
This update improves score entry for club and league admins:
- Save and finalize scores anytime. We removed an old rule that blocked saving until a table's points balanced to zero, which does not fit cumulative league scoring.
- An event can now be finalized even when a player finishes with a score of zero.
Thank you for the feedback that helped us fix these.
1.0.30 Jul 1
Venue table holds: hold tables for arriving members, then release them or convert them to registrations right from the day grid, with held slots clearly marked.
A new player Settings screen to manage email preferences, verify a phone number, replay the welcome tour, and manage your account.
Monthly-pass session details now reflect your current billing period, plus reliability improvements throughout.
1.0.29 Jun 28
What's new in this release:
- Pending package and series signups now appear on the event check-in screen.
- Abandoned checkouts no longer clutter the Pending Signups card.
- You'll get a heads up when you schedule an event that overlaps another at the same venue.
- You can now add package add-ons during checkout.
- Fixed oversized member photos that could overflow the table seating cards.
- Save and Next buttons now stay pinned at the bottom of sheets so they are always reachable.
- Stability and polish updates.
1.0.28 Jun 25
What's new in this release:
- Reserve seats for guests at venue tables, and admins can hold tables for arriving guests.
- Venue tables now show member vs drop-in tags at a glance.
- Add your birthday in Edit Profile, and admins can see member birthdays in the member sheet.
- Clubs can now hide registration counts on event cards and detail pages.
- Standings show your first name and last initial for a bit more privacy.
- Card payment now appears as an option on honor-mode series and package purchases.
- Admins can set a per-club manual sales tax rate.
- Complete Profile now prefills from the info we already have on file.
- Fix: editing a venue setup no longer moves existing reservations off their tables.
- Stability and polish updates.
1.0.27 Jun 22
What's new in this release:
- New privacy controls: pick a screen name or hide your identity in club leaderboards and standings.
- Admins can set a club-wide privacy default and toggle public standings per league.
- Punch-card payment option when adding registrations, plus manual punch adjustment in package admin.
- Per-event NMJL reminder toggle and a sales-tax toggle for clubs that collect it.
- New 36 and 40 player league size options.
- Honor-payment flow improvements: cleaner error surfaces and safer cancels for checked-in members.
- Avatar fix so profile photos render at the right size everywhere.
- Auto-refresh in the admin Tables view.
- Stability: crash fixes in series scheduling and signup questions, plus small polish updates.
1.0.26 Jun 16
Guest passes for paid members are now available on Mac.
• See your monthly guest-pass allowance and tap "Invite a Guest" to mint a new code on the spot.
• Codes your club admin assigns to you show up under "Assigned passes" with one-tap copy and share.
Reply to Order Up emails directly inside the app. Tap the link, write your reply, send.
Reliability fix for player photo uploads.
1.0.25 Jun 12
Bug fixes and improvements.
1.0.22 May 31
What's new in 1.0.21:
Features
• Signup questions for event registration. Admins can build custom questions on any event. Players answer at signup, responses appear in the registrants view, and the seating wizard auto-fills tile bringers from the answers.
• Recently Deleted members with restore. Accidentally removed someone? Bring them back from the Recently Deleted view in your member directory.
• Phone column in the member directory. Tap to call or text a member directly from the list.
• Marketing consent toggle in App Settings. Manage your marketing email preference globally from the app.
• Edit profile photo from inside the app. Update your photo directly from your profile screen.
• Sender avatars in chat. See who said what at a glance in club channels.
• Cancel pending package purchases from the admin package view.
• English (Canada) App Store listing.
Improvements
• Clearer OTP sign in error messages.
• AM/PM time pickers in event templates and recurring series.
• Waitlist promotes automatically when a recurring series capacity is bumped.
• Member directory search now matches legal first names.
• More reliable graphics uploads with clearer session errors.
• Faster app launch with smarter telemetry handling.
• Plus stability fixes and performance improvements.
1.0.21 May 29
Better error messages when you reach your plan's events limit. Improvements to the private event share sheet, venue wizard, and email previews. Tap feedback to let us know when something feels off.
1.0.18 May 13
• Custom table labels, per-table prices, and reservations open date in venue setup
• Add players to tournaments during the Registration phase
• Photo picker on Report a Problem
• Series packages now sort by upcoming dates
• Polish and stability fixes
Keep the suggestions coming.
1.0.17 May 11
This release smooths daily club work:
• Compose drafts now persist across email and the event wizard
• Stability fix in the Add Person picker
• "Undo All" plus a confirm step on bulk check-in
• Tier limits gate event creation early with clearer messaging
• Email Buyers composer on package detail pages
• "Report a Problem" reachable from many more screens
• Chat images auto-downsize for faster sending
• Connectivity banner only appears when something is actually wrong
• Dark-mode readability and reliability polish across the app
Keep the suggestions coming.
1.0.16 May 5
A round of polish for club admins:
• Stripe Connect and subscription buttons now open the right Settings page (was hitting a 404)
• Logo upload behavior now matches the web admin
• Event tables show skill-level dots, relationship indicators, and a waitlist reminder
• Add-Table copy harmonized across platforms, with a heads-up that Add Table does not promote the waitlist
• Pre-flight check on event registration when a club has not finished Stripe setup
• Series & Passes hides finished series, and the events list collapses recurrence series into one card per series
• Declined registrations no longer count toward attendance
• Friendlier signed-out message in Report a Problem
1.0.15 Apr 29
Monthly Pass: join your club's membership for unlimited monthly play. Plus tournament player flow, faster scoring with paste-from-spreadsheet, accessibility improvements (VoiceOver, larger tap targets), and stability fixes.
1.0.14 Apr 27
• PDF attachments in email composer — attach receipts, flyers, and schedules directly from club files
• Membership pass support with cancellation policy
• Bug fixes and performance improvements
1.0.13 Apr 19
• Verification codes from email now auto-fill and auto-submit — sign in faster
• Bug fixes and performance improvements
1.0.12 Apr 15
• Verification codes from email now auto-fill and auto-submit — sign in faster
• Bug fixes and performance improvements
1.0.11 Apr 14
See who is playing: open any Scramble challenge to view its full participant roster, right from the challenge card.
Notification reliability improvements.
more Version 1.1.6 3d ago
Data Linked to You The following data may be collected and linked to your identity: