Rally Racket Sports
Built by Players, for Players
Free · Designed for iPad. Not verified for macOS.
Rally is built by players, for players, to keep racquet sports seasons organized without the chaos. Skip the group texts and spreadsheets. Rally gives players, captains, teams, and clubs one place to manage schedules, availability, lineups, scores, stats, and scouting, all designed around how leagues actually run week to week.
With Rally you can:
• See player stats and team performance
• Scout opponents and review past results
• Track match and practice availability
• Set lineups and respond to team polls
• Review match scores and standings
• View rosters, teams, and league standings
• Stay connected to your team without spreadsheets
Rally supports platform tennis, tennis, and pickleball leagues. Whether you’re a player, captain, or club, Rally keeps your entire season organized so you can focus on playing.
Hi App Review team,
This build adds one to many team chat to Rally, a private app for paddle and tennis league players. Every account is tied to a verified player on a real, named club team; chat is strictly within a single team's roster (no DMs, no global chat, no random matchmaking, no anonymous accounts). Text-only — no media.
Demo credentials are in the confidential field. Tap the Chat tab to enter a populated demo channel.
Filtering objectionable material. Three layers on every message. (1) On-device wordlist runs before send and rejects slurs, threats, and sexual content. The matcher is obfuscation-resistant — it normalizes Unicode confusables, leet substitutions, repeated letters, and inter-letter punctuation, so "n!gger", "n.i.g.g.e.r", "níggér", and "k1ll y0urself" all match while names like "Fagan" and "Nigeria" don't false-positive. (2) Backend re-runs the same matcher on Stream's `message.new` webhook and soft-deletes anything that slips through, before push fanout. (3) Stream's own AI moderation runs in the Stream dashboard as a backstop. The same filter also runs on user-typed poll questions/choices and activity-feed comments.
Reporting offensive content. Every other user's message has an inline Report action with a reason picker. The instant the reporter submits, the offending message disappears from their view (persisted on-device). Reports persist server-side and SMS the on-call moderator. We commit to acting within 24 hours. When the moderator takes action, the reporter receives a push confirming their report was acted on.
Blocking abusive users. Every message has an inline Block action. After blocking: their existing messages disappear immediately; history endpoint excludes them on pagination; realtime messages are dropped client-side; push fanout skips a blocker. Settings → Privacy & Legal → Blocked users lets users review and unblock.
Deleting your own messages. Long-press a message you sent → Delete. Server enforces owner-only; deletion fans out to all teammates in realtime; audit row written.
Suspending/banning. When an admin marks an account suspended or banned, their Stream session token is revoked (any open mobile app loses its websocket); the next call to `/api/stream/token` returns 403; the chat webhook drops in-flight messages from them server-side. No long-lived bypass.
Published contact info. Settings → Support opens an in-app contact form. Same Get support link on the sign-in screen. support@lovetorally.com (also at lovetorally.com).
Terms + age at signup. Two explicit checkboxes required: "I confirm I am at least 13 years old" and "I agree to Rally's Terms of Use and Privacy Policy." Both links open live web pages; submit stays disabled until both are checked. Acceptance time, Terms version, and age attestation are persisted on the user. Our Terms (lovetorally.com/terms) include a Community Standards section expressly prohibiting hate speech, slurs, threats, harassment, doxxing, sexual content, and other objectionable content; reserves the right to remove content and permanently terminate offending accounts; and commits to a 24-hour review window.
Verification (under 2 minutes). From Chat: tap Report on a teammate's message — it disappears from your view immediately. Tap Block on the same teammate — their previous messages disappear too. Type "k1ll y0urself" → send — rejected client-side. Long-press your own message → Delete — disappears immediately. Sign out → Sign Up; leave either checkbox unchecked — submit disabled.
Defense-in-depth. Stream webhook is HMAC-SHA256 signature-verified (invalid → 401). Every moderation action writes an immutable audit row. Reports and sends are rate-limited.
Follow-ups: ross@lovetorally.com. Thanks for the review.
— The Rally team
The developer, Rally LLC (IL), indicated that the app’s privacy practices may include handling of data as described below. For more information, see the developer’s privacy policy .
Data Linked to You
The following data may be collected and linked to your identity:
- Contact Info
Data Not Linked to You
The following data may be collected but it is not linked to your identity:
- User Content
Accessibility
The developer has not yet indicated which accessibility features this app supports. Learn More
Information
- Seller
- Rally LLC (IL)
- Size
- 38.5 MB
- Category
- Sports
- Compatibility
Requires iOS 15.1 or later.
- iPhone
Requires iOS 15.1 or later. - iPad
Requires iPadOS 15.1 or later. - iPod touch
Requires iOS 15.1 or later. - Mac
Requires macOS 12.0 or later and a Mac with Apple M1 chip or later.
- iPhone
- Languages
- English
- Age Rating
4+
- 4+
- Copyright
- © Rally LLC
