Voice & Tone — Courtex

This document guides how we communicate with users through copy, messaging, and microcopy. Use this when writing buttons, error messages, onboarding flows, or any user-facing text.

Core Principles

1. Keep it Simple

Avoid unnecessary words. Say what you mean, clearly and concisely. Users should understand instantly without guessing or re-reading.

Principle: Clarity over cleverness

Examples

Good - "Session full" - "Book a spot" - "You're climbing the rankings" - "Last updated 2 hours ago"

Bad - "Unfortunately, the maximum capacity for this particular session has been reached" - "Proceed with reservation" - "Your competitive standing is improving" - "Last modified in a temporal window of approximately 120 minutes"

Rules

  • Remove filler words (unfortunately, very, quite, actually, basically)
  • Use short sentences (aim for <15 words per sentence)
  • Avoid jargon unless it's badminton-specific (and even then, explain it)
  • Use active voice ("Join a social" not "You are able to join a social")
  • Be specific ("You played 5 games" not "You've been active")

2. No Bullshit

We don't exaggerate, and we don't stretch the meaning of words. Be honest. If something is broken, say it. If we're working on it, say that too. Never oversell features or benefits.

Principle: Honesty over hype

Examples

Good - "We're having issues right now. We're working to fix it. Try again in a few minutes." - "Courtex is where you find your next game" (direct, not oversold) - "You've played 1 game" (not "You've begun your competitive journey") - "We messed up. Here's what happened and how we're fixing it."

Bad - "We're currently experiencing unprecedented server scaling optimisations" - "Courtex is revolutionizing badminton forever through AI-powered matchmaking" (we don't do this) - "You've commenced your athletic excellence expedition" - "We're unable to provide the service you expected at this juncture" (blame-shifting)

Rules

  • Don't use marketing language in the product
  • If a feature isn't ready, say so
  • If we made a mistake, own it
  • Don't describe simple features as complex solutions
  • Avoid superlatives ("best", "greatest", "ultimate") unless they're literally true
  • Be specific about timelines ("We're working on this" is vague; "We'll have it ready in March" is honest)

3. Respect

We don't put other people down in order to lift ourselves up. Celebrate skill mastery without shaming lower ranks. Celebrate community without exclusion. Treat all users as worthy of respect.

Principle: Lift others up, don't tear them down

Examples

Good - "You're climbing the rankings! Keep at it." (celebrates progress without shame) - "Play anywhere, anytime" (inclusive, not gatekeeping) - "Find your level" (welcoming to all skill levels) - "New player? No problem. Jump in." (inviting) - "1st place: Alex Chen — 2150 MMR" (facts, no trash talk)

Bad - "You're finally getting better" (implies they were bad before) - "Unlike casual players, serious athletes choose Courtex" (exclusionary) - "Climb out of the beginner tier" (shames lower ranks) - "For real badminton players" (gatekeeping) - "Destroy your opponents" (aggressive, not aligned with community)

Rules

  • Celebrate achievement, not superiority
  • Never shame lower ranks or skill levels
  • Use neutral language about competition ("play against", not "destroy" or "crush")
  • Include all skill levels in messaging
  • Acknowledge that skill-building takes time
  • Never compare players negatively against each other

Audience-Specific Messaging

For Organisers

Primary Message: "Courtex handles the admin so you can focus on growing your social."

Tone

  • Helpful and efficient
  • Problem-solver (not problem-creator)
  • Understands their pain points
  • Practical, not flashy

Key Messages

  1. "Admin is sorted" — We handle the tedious stuff
  2. "Grow your social" — Focus on community, not logistics
  3. "Your players, your way" — You stay in control
  4. "From WhatsApp to Courtex" — Easy migration path

Example Copy

  • ✅ "Create a session in 2 minutes"
  • ✅ "We'll handle roster changes while you focus on the game"
  • ✅ "Your regular players stay in the loop"
  • ❌ "Revolutionize your session management"
  • ❌ "Leverage cutting-edge technology"

Common Scenarios

Onboarding - "Connect with Courtex. Manage your sessions, grow your social." - "Your players are already on Courtex. Bring your sessions here."

Feature Explanation - "Automated attendance tracking saves you 15 minutes per session" - "Send one message, reach all your players"

Call-to-Action - "Create your first session" - "Add your regular players"


For Players

Primary Message: "Courtex is where you find your next game."

Tone

  • Welcoming and encouraging
  • Community-focused
  • Empowering (you're in control of your game)
  • Fun but not over-the-top

Key Messages

  1. "Find your next game" — Exploration, discovery
  2. "Build your badminton identity" — Long-term engagement
  3. "Play everywhere" — Access to all socials
  4. "Level up together" — Community growth

Example Copy

  • ✅ "Find a social near you"
  • ✅ "Play against new opponents"
  • ✅ "Track your wins, see your progress"
  • ❌ "Become a badminton legend"
  • ❌ "Dominate the leaderboards"

Common Scenarios

Onboarding - "Tell us what you're looking for" (skill level, days, locations) - "Socials near you, when you're free"

Feature Explanation - "Your stats show you're improving. Keep it up." - "See where you rank locally"

Call-to-Action - "Find a social" - "Book a spot"


Tone in Different Contexts

When Things Go Right ✅

Tone: Encouraging, celebratory (but elegant, not over-the-top)

Examples

  • "You're all booked! Get ready for a ripper of a match." (playful, Australian)
  • "Session created. Your players will see it in their feed." (confident)
  • "You've improved 50 MMR points this month. Well done." (specific, celebratory)
  • "Welcome back. 5 socials on this week." (warm, informative)

When Things Go Wrong ❌

Tone: Honest, helpful, take responsibility

Examples

  • "That didn't work. Our team's on it. Try again in a sec, yeah?" (owning it, casual)
  • "Something went wrong on our end. Refresh and try again." (clear, no excuses)
  • "We messed up—you were charged twice. We've refunded the extra. Sorry about that." (direct, action-oriented)
  • "Session is fully booked, but here are 3 others nearby." (helpful alternative)

Errors & Warnings ⚠️

Tone: Helpful, not alarmist

Examples

  • "Your session is tomorrow at 8pm. Just confirming you're coming?" (friendly reminder)
  • "You haven't played in 30 days. Missing the game?" (check-in, not guilt-tripping)
  • "Internet might be slow—videos could take longer to upload" (helpful heads-up)
  • "This session is for intermediate players. You might find a better fit here." (respectful redirection)

Language Guidelines

Vocabulary & Jargon

Use: - Plain English words (use → utilise ❌) - Badminton-specific terms (rally, smash, court, social, MMR) - Australianisms when appropriate ("ripper", "no drama", "yeah")

Avoid: - Corporate jargon ("leverage", "synergise", "optimise") - Tech jargon unless explaining it ("algorithm" needs context) - Unnecessarily complex words ("facilitate" → "help") - Gendered language ("guys" → "folks", "players")

Contractions

Use contractions — they're friendlier and more natural - "You're" instead of "You are" - "We've" instead of "We have" - "Can't" instead of "Cannot"

Exclamation Points

Use sparingly. One exclamation point per message, maximum.

✅ "You're all booked!" ❌ "You're all booked! Get ready! See you there!"

Second Person

Address users directly — use "you" and "your"

✅ "Your next game is tomorrow" ❌ "The user's next game is tomorrow"


Common Microcopy

Buttons

Context ✅ Good ❌ Bad
Main CTA "Find a Social" "Search Sessions"
Secondary "Learn More" "Get More Info"
Confirm "Book Spot" "Proceed"
Create "Create Session" "Add New Event"
Cancel "Cancel" "Abort"
Delete "Delete" "Remove Permanently"

Form Labels

Field ✅ Good ❌ Bad
Date "When?" "Session Date/Time"
Level "Your level?" "Player Skill Classification"
Players "How many?" "Participant Count"

Empty States

✅ "No socials this week yet. Check back soon or create one." ❌ "There are currently no scheduled sessions available."

Loading States

✅ "Finding socials near you…" ❌ "Processing request…"

Success Messages

✅ "You're booked for Tuesday at 8pm" ❌ "Operation completed successfully"


Australian Personality

When to Use Australianisms

  • Error messages and feedback
  • Celebratory moments
  • Casual user communication

Examples of Australian Tone

  • "That's a ripper of a win" (celebrating)
  • "No drama, we've sorted it" (casual assurance)
  • "Yeah, keen?" (playful invitation)
  • "She'll be right" (reassurance)
  • "Good on ya" (encouragement)

When NOT to Use

  • Technical documentation
  • Legal terms
  • Serious error messages (like misconduct)

Anti-Patterns

Things We Never Say

❌ "We're the best badminton app in the world" - Why: Exaggeration, not credible

❌ "Click here" - Why: Poor UX copy; use action words instead

❌ "Unexpected error" - Why: Not helpful; be specific

❌ "You must be registered to continue" - Why: Sounds like a demand; use "Create an account to get started"

❌ "For serious players only" - Why: Gatekeeping; contradicts accessibility value

❌ "Destroy your opponents" - Why: Disrespectful; we celebrate community

❌ "Unlike other apps, we actually work" - Why: Puts others down; arrogant


Checklist for Any Copy

Before you ship it, ask:

  • [ ] Is it simple? Can someone understand it in 5 seconds?
  • [ ] Is it honest? Are we exaggerating or stretching the truth?
  • [ ] Is it respectful? Would we be proud saying this to a badminton player?
  • [ ] Is it Australian? Does it sound like us (70% playful, 30% earnest)?
  • [ ] Does it use active voice? "Book a spot" not "A spot can be booked"
  • [ ] Does it avoid jargon? Are all terms either plain English or explained?
  • [ ] Is it concise? Can we remove any words without losing meaning?

If you can answer "yes" to all, you're ready to ship.


Resources

  • Design System: See design-system.md for component copy (buttons, error states)
  • Brand Guide: See brand-guide.html for full visual context
  • Copilot Instructions: See copilot-instructions.md for strategic context