Bookings · POS with stock + auto payment tracking · Memberships with automated subscriptions · Coaching with auto court booking · Tournaments with bracket + result tracking · Duty Roster with swaps + reminders · Per-minute prepaid court lighting · Access control with automated member gating · Live club website (builder or templated, always in sync) · Club purchases with financial tracking · Automated WhatsApp campaigns with live polls + payment links.
Plus Ace, an AI assistant that actually helps. The whole club platform, priced for South African clubs.
One platform for the app your members open and the back office your committee runs.
Mzansi Court Q is the software that runs your tennis club — the app members open on their phone, and the back office that keeps the lights on, the bar stocked, and the duty roster fair.
Most South African clubs run on a familiar patchwork: a WhatsApp group for chat, a spreadsheet for members, a booking app that half the club never opens, a card machine at the bar, and one long-suffering volunteer with a clipboard for the duty roster. It works — right until the treasurer's laptop dies or the WhatsApp group hits its member cap.
This platform pulls all of that into one place. Members get a proper app for bookings, payments, match stats, and lesson requests. The committee gets a wide-screen portal for memberships, duty rosters, court lighting, POS, coaching, and everything in between. Ace — the club chatbot — lives inside your existing WhatsApp group; nothing new to install.
Built by a committee member for volunteer-run clubs. Weekend committees, not IT departments. If you can post in a WhatsApp group, you can run this.
Below is every module in one place — grouped so you can find what your club needs. See the platform tour
Members book courts up to two weeks in advance in a slick mobile UI — pinch-drag to pick a 30-minute range, add playing partners, invite a guest and settle the guest fee via Yoco right on checkout. Every court shows floodlight availability, existing bookings and Notify-Me waitlists on any taken slot, so a cancellation snaps straight to the first person who wanted it. Move a booking to a different court or time in three taps with the full audit trail preserved.
Set up a Junior Squad every Wednesday or an Adult Squad every Tuesday morning, and Mzansi rolls the court reservation forward for weeks ahead automatically. Skip a public holiday, swap in a replacement date, add or drop weeks — the rolling top-up handles it in the background. Social bookings that clash with a paid program are gently rescheduled with an audit note; real member and pickup bookings are always respected.
Send a game request from the dashboard — the target member gets an in-app message and a WhatsApp ping. When they respond with their preferred day, you see a Book The Slot button pre-filled with both of your preferred time windows. One tap finds the first free court, creates the booking and fires standard confirmations to both of you. If no court is free, the app takes you to the bookings page with your partner already selected.
The committee sets recurring court reservations — Every Saturday for Social, Last Friday of the month for League — with a preview of every date before commit. Punch a hole in the series to skip a specific date without deleting the rule; cancel with one tap and every future slot is freed. Bookings feed straight into WhatsApp so members see them announced automatically.
The dashboard shows a Court Conditions strip with today's play forecast in four bands, powered by a per-club cached weather feed. Flick between today, tomorrow and a six-day window with a smooth chevron animation. Every upcoming booking on the dashboard, bookings page and lesson card also carries an inline weather chip for its exact SAST hour — no more guessing before you drive out.
The My Bookings section shows the next three upcoming court reservations with court letter, date, time range and an inline weather chip pulled at the exact SAST hour. Cancelled or moved bookings drop off automatically. Tap through to the full bookings module to manage, cancel or move a slot in seconds.
Tap the suggestion button and the app cycles through three quality-filtered options — same-sex, mixed, or badge-focused (helps you unlock Social Butterfly by pairing you with someone new). A Power Score blends 90-day results, opponent strength and today's form to build the most competitive foursome possible. Same-sex requests never fall back to mixed by accident, and vice versa — you always get the game shape you asked for.
Once four players are on court, the Balanced button computes the fairest pairing based on each player's rolling Power Score. Mixed courts respect one man plus one woman per team; same-sex or uneven courts try three pairings and pick the smallest strength gap. A 60-second countdown lets players confirm or override before the match starts.
Members get a big-tile picker showing all five scoring modes with clear infographics and estimated match length before every social game. Fast Play adapts to the club's first-to-N configuration (4, 6 or 8 games). Sudden Death removes deuce; 3 Match Tiebreaks is a 25-minute best-of-three format for quick turnaround days. If the wrong mode was played, a duty admin can PIN-override at score entry without losing any points already keyed in.
When a game starts, text-to-speech announces the court number, teams and scoring mode over the club's audio system with a warm Lekker Speel sign-off. Every scoring mode has its own natural cue — Sudden Death Deuce for No-Ad, best of three match tiebreaks for the fast format. Perfect on busy Saturdays when people miss visual pings.
Members earn badges as they play — win streaks, total matches, win rate tiers, court time, partnerships, social play (played with everyone in your club), court royalty (most wins per court), consistency (weeks in a row) and annual specials like Year Champion and Comeback Kid. Once earned, badges are never lost even if stats dip. The dashboard shows next-badge progress with rarity percentages so members always know what to chase.
Convert a WhatsApp chat into a Pickup Group and Mzansi handles the rest — court booked ahead of time, availability poll sent, reserve promoted when someone drops out, chained substitute searches, day-before reminder posted. Fair rotation keeps play-counts balanced so nobody hogs court time. A one-hour safety net auto-cancels the session if the group hasn't hit quorum, so you never turn up to a two-person game.
Every pickup group can run a food poll ahead of the session — pick items, choose quantities, done. The poll closes with the game reminder and whoever is cooking gets a clean order summary with names, quantities and prices. No more scrolling back through WhatsApp to see who ordered what.
Ace Tennyson is a warm SA-flavoured assistant that lives inside your member portal. Ask him for your wallet balance, your longest win streak, your next duty date, this weekend's league match or whether the coach has a slot on Thursday — he pulls the answer from your club's live data, never made up. He remembers context inside a chat, warns before doing anything that moves money, and drops the odd Eskom joke.
Older members and anyone who prefers WhatsApp over apps can just message Ace, the club's AI assistant. He runs a natural, multi-turn conversation that books, cancels, moves or re-books your court — always confirming before anything moves. Ace also handles wallet top-ups and switching your court lights on, all through the same chat. Massive for members who never quite got the hang of the PWA — just tennis in their favourite chat window.
In-app chat with sent, delivered and read ticks, typing indicators, group chats with multi-admin support, and push notifications that deep-link straight to the conversation. Auto-successor promotion means groups never end up orphaned when the admin leaves. Pickup groups get their own chat where the dropout and reserve buttons live inline.
Community polls, pickup availability and event RSVPs run on the same rails as WhatsApp polls. Voting via the app OR via WhatsApp writes to the same tally — the committee sees one clean count regardless of channel. Older members who prefer WhatsApp are never left behind; younger members who prefer the app get the same result. Tallies edit themselves in-place in the WA group as votes arrive.
One committee tool replaces every ad-hoc broadcast: pick WhatsApp groups AND email audiences (by membership type, dynamic group, or WA-group bridge), attach 14 kinds of link previews (events, coaching programs, tournaments, external URLs), AI-write both message bodies from one prompt, add polls and Yoco payment links (routed to club, academy or coach), then Preview to yourself before sending or scheduling for SAST business hours. Live delivery dashboard tracks sent, failed, paid and voted in real time.
Instead of blasting a generic "you still owe us" template, the composer resolves every recipient's live outstanding at fanout time and writes a tab-itemised body with one or two live Yoco links per person. Merged tabs get per-source subtotals with a Grand Total. Members who've paid since the campaign started are silently skipped. Reminders collapse onto the parent campaign tile so the history stays tidy — no reminder-noise on your dashboard.
Duty swaps live inside the app, not on a WhatsApp poll thread. A member taps Request Swap on one of their upcoming duties and picks someone to trade with; the other person opens the request in-app, selects which of their own duty days they'd swap in return, and the requester confirms the final date. The roster updates instantly for both members and every downstream reminder re-targets the new person. Committee admins can also swap any two members directly from the roster admin view — one tap, no back-and-forth needed. A full audit trail keeps the history intact.
Connect Gmail via OAuth once and every automated email goes out from the club's own address, in the club's branded dark-theme layout, with the club's logo. Nine template types cover every situation from receipt to renewal reminder to lost-and-found alert. A three-layer sender ensures verification and share emails always land, even when your Workspace is offline.
Coaches publish recurring programs — Junior Wednesdays, Adult Squad, Beach Tennis — with schedule, capacity, price and audience filters. Members register in-app in three taps or the public gets an entry via a deep-linked share page; Yoco checkout collects the fee straight into the coach's or academy's own wallet. Every session gets its court reserved automatically for weeks ahead, and paid or unpaid status flows into the coach's per-year financial workbook.
Every coach at your club has a rich profile page — photo, bio, specialties, pricing bundles, gallery. Members tap Request a Lesson, pick preferred days and skill level, and the coach gets a notification to accept, propose an alternative or decline. Once accepted the booking goes in, membership caps are respected, and rained-out lessons get a one-tap reschedule with the court freed instantly.
The member portal picks up an Academy hub for active coaches and academy admins — my bookings, students list, live calendar, lesson-request queue with count badges. Coaches self-book lesson courts from a day-grid picker with recurring batches (repeat this Thursday's slot for eight weeks with per-week skip checkboxes) — courts locked atomically or the whole batch rolls back on conflict.
Academies live above individual clubs as top-level tenants — an academy can operate at three clubs with one login, one Yoco wallet and one branded portal. Referral codes link new clubs and unlock platform-fee waivers for months. Academy admins see cross-club calendars, lesson requests, students and per-tenant financials; coaches under the academy get automatic Coach memberships at every linked club.
Academies and stringers list their service catalogue with prices and add-ons; members tap Order, add optional racket notes, pay via Yoco and land in the queue. Coaches see paid but not-yet-completed orders in a live queue; mark-complete stamps the ledger. Adverts run automatically to the community feed and via WhatsApp campaigns to saved groups.
Members add children (name, DOB, medical, allergies) or adult family members as sub-profiles under their own account. Each dependent gets an auto-created account and membership record linked to the parent. Fictitious mzansi.app emails let children under 16 be members without their own email address; password resets route safely to the parent. Cheapest-first slot logic makes bundle pricing feel fair — no maths for the treasurer.
Your club e-wallet holds a real ZAR balance topped up through a Yoco Checkout link. Spend from it instantly on lighting minutes, guest booking fees, POS bar and food tabs, ball tube purchases, coaching programs or event entries — no card swipe required. Every transaction is logged to an immutable ledger visible in your history view, filterable by month, year or category. Refunds go straight back to the wallet.
Every top-up flows through Yoco Checkout — the same secure hosted page you'd use anywhere else. Cards are never stored in the club system. A cron-based safety net polls Yoco every 5 minutes and settles any payment that made it to the bank but missed the webhook, so a payment never gets "lost". Members are never asked to pay twice because of a network hiccup.
Assign a member on annual or monthly cadence; monthly members are debited on their chosen day via PayFast recurring billing at the type's live monthly rate. Bump the type price from R140 to R150 and every current member's statement recalculates for the remaining months — historic paid months stay at what they paid. Grandfathered rates are supported via per-member overrides.
Runs on any tablet at your bar or kitchen counter. Three-column tablet layout (categories · items · ticket) collapses to a phone layout under 700px. Accept cash, wallet, Yoco device, Yoco payment link, split-payment (wallet hold plus card remainder), open account or comp. A Custom category lets committee ring "broken glass R50" or "tournament entry R120" on a member's tab without a catalogue item. Every paid sale fires an emailed receipt in the club's warm branded voice and writes to per-club Google Sheets automatically.
The Member My Account page aggregates every financial thing your club has done with you — POS sales, lighting sessions, wallet top-ups, ball purchases, coaching programs, membership fees. Filter by 1D, 7D, 30D, 12M, YTD or Custom. Tap any line for the receipt. Toggle auto-renew for your membership, set your reminder-channel preferences, resend receipts and pay open tabs yourself via Yoco.
Every open POS tab is visible on your My Account page with a Pay Now button. Complete Yoco checkout and the receipt lands in your inbox and on WhatsApp. Missed the webhook? A background reconciler polls Yoco every 5 minutes and settles automatically — you'll never be told "pay again" because the network hiccuped.
Wherever you tap Register — event, coaching program, club champs, tournament, match-day food — the same in-place popup handles identity, eligibility, day and partner picks, add-ons and payment. Split payments route each recipient (club, academy, coach) to their own Yoco account, POS tab or e-wallet — the money always lands in the right books. Signed-in members skip identity; brand-new visitors get a lightweight three-field registration that creates their account and Basic membership in one go.
Committee members sell tennis balls for cash, Yoco device, in-app Yoco (member confirms then pays) or against a wallet balance. Stock decrements atomically, the Google Sheet ledger records every movement with stock-before/after audit, and a persistent handover banner surfaces on every committee screen until the buyer collects. Members can be re-notified via Ace when their in-app purchase is ready.
Choose one duty day a week or several — Wed and Sat, Fri only, Tue plus Thu plus Sat, whatever the club runs. Add holiday exclusion windows so nobody gets rostered on Christmas week, April school break or the club-champs weekend. Press Generate: a two-phase algorithm assigns whole-week blocks fairly through the main body of the year, then equalises the tail day-by-day so nobody ends up with two extra shifts. Import an existing rotation from Excel and it extends seamlessly, keeping the same order. Preview as a draft, tweak individual assignments, confirm — every member's share stays even.
Each club configures its own arrival and departure task list (unlock cloakrooms, amp on, lights, count till). On every PIN unlock a sticky banner appears with the next task and a Done button. Petty-cash-linked tasks open the count modal inline with all 11 SA denominations. Amp Aux vs Amp Optical live in a mutex group so ticking one auto-unticks the other. Every tick is date-stamped, logged with the on-duty person and written to the club's Google Sheet.
Count the drawer at close-down: enter the quantity per denomination (10c through R200), get a live variance chip against the expected balance. Every committee purchase paid petty-cash automatically deducts from the float. Exports as Excel with balance-brought-forward, PDF summary, or auto-syncs to Google Sheets. Duty-gated — no one on shift, no count.
When a chat message is flagged, it lands on every committee member's approvals tile. An explicit "I'm on this" claim button plus auto-claim on reply plus a 20-minute stale-timeout prevents two admins responding to the same conversation. The Approvers panel grants three toggle switches per committee member — Approvals (unlocks exec tiles), Super Admin (cross-club reads), Developer (dev console) — so a Bar Manager can settle petty cash and approve wallet transfers without full super-admin power. Server-side revoke bites immediately.
The committee dashboard has a sticky window picker (1D, 7D, 14D, 30D, 12M, YTD or Custom) that reflows a 6-tile KPI strip and four charts — court bookings stacked by type, coaching activity by coach, membership joiners vs churn, revenue by source. Deltas vs the same-length prior window make trends visible at a glance. Every metric ties back to the underlying table so numbers reconcile with the money trail.
The Subscriptions console is a member-management workspace: a filterable member list on the left, six detail sections on the right (profile, Google Contact diff, communications, subscription, money trail, household). Bulk-email up to 300 members from a Drive-stored template. PayFast cancellation refunds pro-rata to the wallet, writes both ledgers, resends the setup link — every action leaves an audit row. One bulk Mark-Paid catches every selected membership up to today, respecting each member's monthly, quarterly or annual cadence.
The committee "Connect Google Workspace" button requests four scopes in one OAuth grant — contacts, gmail.send, drive.file and calendar.events. Every downstream feature that touches Google (branded emails, contacts sync, purchase-slip Drive uploads, duty roster Calendar events) auto-lights up. A per-service tick/cross strip on the committee page shows exactly what's enabled at a glance.
One connect click and Mzansi Court Q creates a per-year workbook with 13+ tabs — Wallet Top-ups, Lighting Ledger, Ball Sales, Court Fees, Membership Income, Member Roster, POS Sales and more — with headers, colours, date formats and conditional formatting already applied. Every transaction fires a fire-and-forget row so the treasurer's books are always live. If a write fails it's logged to a failures table and a banner nudges the admin — no lost audit trail. Purchase slips upload to Google Drive under the club's own account.
Every club member syncs into your Google Contacts one-way, with ordered custom fields (membership type, status, payment status, member number, join date, age category, activities). Active members' birthdays get celebrated automatically; lapsed members drop out of birthday pings. Junior privacy rules keep parents' details off children's contact cards. Includes rate-limit-aware queueing, daily reconciliation, orphan cleanup and a dead-letter inbox for anything Google rejects.
The lock button in the portal header opens every gate the member is allowed through, with a live thumbs-up / thumbs-down feedback loop so the system knows when the gate actually opened. Parents of junior programme kids can open the gate three hours either side of their child's session automatically. Membership tiers gate access to different doors on different days; visitors get 24-hour codes after paying online.
When a member books a court the system generates a 6-digit PIN for parking, pedestrian gate and toilet all day plus the specific court between the booking hours — pushed to TTLock keypads and delivered via WhatsApp. Domestic workers and contractors get recurring cyclic PINs (Mon/Wed/Fri, 08:00–14:00) that expire on renewal. Committee can rotate any code in one tap and see every entry attempt in the audit log.
The club's floodlights are wired straight into the app via Shelly Cloud. Top up your prepaid balance via Yoco, then tap a court to turn its lights on. Set a personal auto-off timer so you never leave them burning, and a system safety-net switches everything off at 11pm regardless. Every session is logged, every minute deducted transparently, and coaches get free lighting automatically so they never break stride mid-lesson.
For members who prefer paying in person, committee can sell prepaid lighting via the physical Yoco card machine. The same LT reference flows through the payment device, the Google Sheet ledger and the member's balance — no reconciliation gap. Old paper tokens can be redeemed at the counter too (one token equals 60 minutes) and the audit trail matches the app-based top-ups perfectly.
Committee generates or uploads a batch of WiFi voucher keys, tags each item with data or duration, and sells them at the POS like any other product. The key is delivered instantly by WhatsApp and email with the iPhone Private-Wi-Fi-Address tip baked in. Every 15 minutes a three-window monitor flags any voucher used across multiple MACs — one gentle Ace nudge to the committee inbox, never a spam of alerts. Committee can politely warn the buyer, disable the voucher, or dismiss the flag with a note.
Members buy WiFi vouchers from their portal — pay now via Yoco link, or add to an open tab (active memberships only). Request a free replacement key once every 7 days if it stops working. My Active Vouchers shows device count and data used per voucher, so members see the transparency behind their code.
Every member lands on a live dashboard that pulls their wallet balance, prepaid lights, next three court bookings with weather chips, latest badges, pending polls, unread notifications and rotating Events/News/Sponsors cards. Key values in every notification (times, courts, dates, rands) auto-bold so the eye finds them without effort. The badge row auto-pans left-and-right so achievements are always in view, and a compact membership card shows exactly when the next renewal is due.
The header avatar (initials or photo) opens a scrollable editor for every profile field: name, email, gender, date of birth, skill level, preferred hand, preferred days of the week, preferred time window and next-of-kin contact for emergencies. Phone changes trigger an OTP re-verify to keep WhatsApp routing accurate. Profile photo is client-side compressed before upload so even a fat SLR JPEG lands as a small blob.
Every member gets a preferences modal that toggles game-history privacy, leaderboard privacy, achievement privacy and WhatsApp opt-out. Opt out and your name is blurred everywhere it renders — no exceptions, no leaks. Committee still gets emergency and duty messages through, but sales pitches stop. Emergency contact details are stripped from every members-facing endpoint and only surface to committee via a dedicated authenticated call.
Members log in with their email (or legacy username) and either their password or a temporary password requested via the login page. First-time users get a provisional session that walks them through setting their own password. Committee can reset any member's password from the admin panel with a 4-digit PIN.
Each member sees a colour-coded membership card with type, status, member number and Valid Until date. If a payment is pending and their e-wallet covers it, one tap pays. Lapsed or pending statuses show an amber dormant banner with a Contact Club button. Family members appear as sub-profiles they can add, edit or remove.
A searchable, filterable roster of every active member. Chip filters cover gender (M / F) and age brackets (U18, 18-30, 31-45, 46-60, 60+) with instant client-side filtering. Tap any card to open a read-only profile with stats, recent games and badges — privacy preferences let each member choose exactly which slices are visible to others.
The community feed is your club's Instagram plus WhatsApp bulletin board — event cards with cover images, hero date badges, subtitle ribbons; news articles with rich sections; sponsor showcases; a members' marketplace for kit for sale. Committee builds posts with an AI Write button that drafts title, subtitle and sections in one go. RSVP polls (Yes/No/Maybe), food orders and singles/doubles/mixed event sign-ups with a partner search happen in-line, and the live tally edits itself in-place in the WhatsApp group.
Members and committee alike can report a found item (racket, jacket, kids' shoes) with a client-resized photo, choose whether it's in the Lost & Found box or kept by the reporter, and every active member gets a push notification and Ace chat message. When the rightful owner taps Claim, the original reporter is notified via Ace. Every item and claim is logged in the club's Google Sheet for a permanent audit trail.
Three quick buttons — Panic, Fire, Medical — plus seven member-specific alerts (Minor Injury, Serious Injury, Missing Person, Theft, Unattended Child, Other) fire simultaneously via in-app Ace DM, WhatsApp to the committee group, and WhatsApp to the affected member's emergency contact. Every committee member gets a live dashboard banner with member details, phone numbers, next-of-kin and reporter identity. Committee can add live notes as the situation unfolds and mark it resolved — all parties are notified and the whole event is logged for compliance.
Every member can report a maintenance issue, a payment problem or a rule infringement from the portal side menu. Rule infringements are truly anonymous — your identity is never stored, never written to the sheet, never shown. Three reports of the same sub-type about the same member fire a friendly Ace nudge; five automatically create a committee task for a follow-up. Reports can even be about non-members (like a smoking visitor).
Every club gets a public site on its own subdomain, styled to its palette, with sections the committee drags in — Hero, Live Stats, Memberships pricing, Events feed, News, Coaching, Gallery marquee, Facilities carousel, Contact & Map with Street View, FAQ. Members log in on the same page, join or add family members from a checkout drawer, and hit a moon toggle for full night-mode theming. Committee tweaks colours, section order and visibility with no code, and the AI Write button drafts copy.
Committee build unlimited membership types (Junior, Social Adult, Full Adult, Veteran, Coach, Complimentary…) with per-type colour, icon, target group, annual + monthly price, requires-approval flag, and a nine-toggle feature matrix that gates each portal section (Bookings, Chat, Wallet, Directory, Stats, Lost & Found, Reports, Tournaments). Pro-rata billing auto-calculates joining fees so new members pay only for the months they'll use. Family bundles support up to four sub-profiles with cheapest-first discount slots.
The club FAQ page has an inline drag-and-drop editor with AI Write and Refine buttons. Answers can carry tokens like {{full_adult_annual}} or {{club_hours}} that auto-resolve to the current DB value — change one setting and every FAQ that references it refreshes overnight. Drop a walkthrough token and it renders as a collapsible animated mock with numbered steps, phone-nav frames and tap pulses so members see exactly which button to press. Every answer feeds Ace's knowledge bank so members asking on WhatsApp get the same information.
Beyond the standard sections, committee can add fully custom pages (Club Guide, Junior Handbook, Constitution) via a paste-HTML editor with a live preview. Attach a hand-designed PDF and every "Save as PDF" call-to-action on the page auto-swaps to "Download PDF" serving the uploaded file instead of triggering browser print.
Every day at 04:00 SAST Mzansi packs the entire database — memberships, bookings, badges, chat, coaching, wallet, POS, everything — into a compressed JSON file and uploads it to the club's Google Shared Drive with 30-day retention. Restore any snapshot with one script; the safety net that lets clubs sleep at night.
The registration wizard takes 60 seconds: Step 1 club name plus optional city and courts, Step 2 admin name, email and password. On submit, the club is live immediately (no "pending review" hold), four default membership types are seeded, and the admin gets a 7-day session. Referral codes are captured with live validation as the operator types them.
Every club, academy and coach has a 6-character referral code. Share it via the Refer a Club burger-menu modal — the new club that signs up with it gets a 3-month 50%-off waiver on their Mzansi Court Q subscription. The wizard validates codes live as they're typed, and the referral is captured to the audit trail on signup.
Visit mzansicourtq.co.za without logging in and Social Day boots in Guest Mode with 4 fake courts, empty rosters and a persistent "nothing is saved" banner. Add guests, run the queue, try suggestions, see the flow — decide if it's for you before committing. Every unsafe action is stubbed; every dangerous button is hidden.
Cast a Chrome tab to any Android TV behind the bar and Mzansi paints a rotating welcome — the duty person's photo carousel, live checked-in count from Social Day, weather bands for today, and a scrolling ticker of bar specials + community ads. When the operator opens a POS tab, the TV auto-switches to a live line-by-line order view; when the sale settles, it holds for 12 seconds then reverts. Bar specials with active_from/active_to windows scroll automatically alongside community adverts.
Full bracket engine covering single-elim, double-elim with Grand Final Reset, round-robin and backdraw draws — seeded automatically from your leaderboard + last year's standings. Registration collects entry fees via Yoco, brackets render live, and once the tournament ends, prize payouts run against a per-club Yoco payout wallet with receipt emails to every winner. Everything visible to members on their own Club Champs page throughout the event.
Once your draws are locked, one tap runs the scheduler across every division at once — it walks the bracket in the right order (round 1 before quarters), respects real court availability (including social bookings, coaching and maintenance blocks), packs matches across your chosen play window, and emits a printable draw sheet. Every match gets a court + a time, and the committee sees a preview before commit so nothing surprises anyone on match day.
The moment a result is entered, the scheduler re-checks every downstream match. If a semi-final now clashes with a re-scheduled quarter, both matches surface on a Conflicts tab with a proposed resolution (move the QF to court B at 15:30, keep the SF where it is). Retirements, weather cancellations, timing overruns and player double-bookings all raise the same alert — one click to accept the proposed fix, or drag the match to a slot you prefer. Every change fires a WA nudge to the affected players.
The registration form asks each entrant to mark their unavailable dates + preferred play windows for the tournament period (e.g. "any weekday evening", "not Saturday morning"). The auto-scheduler treats those as hard constraints on the first pass and soft preferences on tighter days — so nobody's first match lands on the one afternoon they said they couldn't be there. Missing responses trigger a WA nudge before the draw locks.
Once the club champs finish, seeds are provisional for two weeks — any member ranked below can post a Seed Challenge against the person one place above them. Challenges resolve in best-of-three fixture windows the committee announces; the winner takes the seed. Feeds directly into next year's tournament seeding and the interclub leaderboard.
Register a league team with its captain + roster (players from any Mzansi Court Q club welcome), the fixtures generator lays out weekly matches across the season, and a live standings table updates the moment scores are captured. Each league gets its own WhatsApp group linked to Ace, so team announcements, availability polls and match reminders happen in the same thread the players already use. Home + away tracking, walkover handling, tiebreak rules and finals qualification all built in.
The player app has a Score screen for every match they're playing in — set-by-set entry with a tap, both players confirm the result, and the bracket / league table updates instantly. No paper draw sheets, no committee volunteer typing scores at the end of the day. Disputes route to the tournament referee for adjudication with the full audit history preserved.
Each entrant gets a Food Order popup after registration — pre-order breakfast, lunch or snacks for their match times. The kitchen sees quantities the day before, so nothing is over-ordered or under-stocked. Members collect at the counter, tabs settle to their wallet, and cash is optional.
Open the tournament TV surface in a Chrome tab on the club's central device and cast to any Android TV in the room. Rotates through Overview stats (registrants / divisions / matches played / % complete), per-division bracket with top-8 leaderboard, and today's schedule + division standings. Refreshes over WebSocket so the room sees results the moment they're entered.
The committee's competitions hub — every tournament, league season and club-champs event past + upcoming, with WA-group links, registration counts, scheduler status and prize-payout state on one page. Link a WA group to a competition and it appears in the Campaign Composer's target picker automatically, so a "Round 3 reminder" blast is one click. Public share pages at /share/tournament/:id, /share/league-team/:id and /share/clubchamps/:id let non-members follow along too.
Register a visiting player at the door in 15 seconds — their home club is auto-detected and the games they play tonight write to their permanent profile. Guest members appear in Social Day queues with a small home-club badge, so hosts know who they are and visitors leave with a night's worth of stats and any badges they earned. No manual data reconciliation between clubs.
A player's PowerScore, badge case, win streaks, court time, partnership history and coaching record follow the member across clubs. Transfer flow is one committee approval — no CSV export, no lost history, no starting from scratch. Members keep the account they've had for years; clubs get transparency into a joiner's real record instead of a self-declared rating.
The tournament engine isn't restricted to your own membership — invite players from any Mzansi Court Q club into a bracket, and their results feed the same unified profile. League teams can carry players from multiple clubs, with fixtures, live scoring, and ranking tables that all clubs can view. Perfect for interclub Wednesday leagues and regional summer socials.
Home-club games, mixers, guest play, tournaments and transfers all contribute to a single stats profile shared server-side and client-side. 42 badges across 9 categories — Total Matches, Win Streaks, Court Time, Partnerships, Social Play, Court Royalty and more. Once earned, badges never un-earn, even if your stats dip. A player at three clubs sees one leaderboard, not three.
Every club on the platform shares the same underlying data model, payment rails, notification stack and security posture — so cross-club interactions Just Work. As more clubs join, the network compounds: more mixers to attend, more tournaments to enter, more coaches available, and a growing pool of playing partners for every member — without any single club having to build the plumbing.
The core Social Day loop — add players, check members in, assign courts, run King of the Court / Singles / Doubles matches, add guests. Fully anonymous, everything stays in your browser (nothing hits our servers). Install it as a PWA on a club tablet and get a real feel for the Wednesday-night flow — before you commit to anything.
Everything you do in the sandbox lives in your browser's local storage — reset any time. No account, no email captured. Just the tool you'd be paying for, unlocked to poke at.
Duty roster generates itself and equalises shifts across the year. Renewal reminders fire on cron at 90/60/30/5-day thresholds without anyone remembering. WhatsApp announcements go through Campaign Composer with AI-drafted copy in one click. Membership signups, court bookings, coaching payments and ball sales all self-reconcile to the club Sheet. Volunteer treasurers report cutting weekly admin from 6 hours to under 90 minutes.
Replace booking apps, POS apps, roster spreadsheets, WhatsApp automation tools, e-wallet plugins, tournament software and website builders with one platform. Member-tiered pricing starts at R250/month and is capped at R1,500 even for large clubs — VAT-inclusive. Yoco + PayFast processing fees pass through at cost; we take zero transaction fee. Referral programme knocks 50% off the base fee for three months per successful referral.
Pay-to-play access codes so a guest can book, pay and let themselves in when nobody's at the club. Duty checklist prompts the on-duty committee member through arrival + departure tasks on every PIN unlock. Two-tier committee permissions so the treasurer can help without being handed the whole platform. Automatic Google Contacts sync so every committee member has the up-to-date roster on their phone. Every gotcha we've hit at a real Pretoria club is baked into a workflow.
Built and run from South Africa by a committee member of an active Pretoria club. Local Yoco + PayFast integration, WhatsApp-first communication (because that's where South Africans live), Rand pricing, VAT-inclusive invoicing, POPIA-compliant by design (§19 security measures, 24-hour breach notification, right-to-be-forgotten export) and local support you can WhatsApp — the same number your members would. Not a repackaged American SaaS pretending to speak Afrikaans.
"Wanneer die app klaar is gaan die ding vir jou vra of jy onthou het om jou hol af te vee as jy by die badkamer uitkom. Of 'n distess call log as daar nie TP in die badkamer is nie"
View Club"Dit is flippen awesome!"
View Club"Join a thriving network of clubs sharing stats, members, and hosting social mixers. Connected, competitive, and collaborative tennis management."
Get Started