What's New
The latest features and improvements shipped to Picklebeast.
April 2026
Apr 24, 2026
Mobile App
Mobile Playoff Manager — Run Playoff Day From Your Phone
A tournament director's complete toolkit, now on mobile. Three-tab shell (Now / Divisions / Courts), native score entry, court assignment, per-division designation, and a podium reveal at completion — with ActionCable real-time sync across every connected admin device.
- Three-tab shell: Now (live + ready + pending queues), Divisions (per-division detail), Courts (venue-wide grid)
- Native bottom-sheet score entry with dynamic game rows, auto-winner detection, tie rejection, haptic feedback
- Per-match court picker that honors the division's designated court subset
- Per-division court designation modal with cross-division conflict detection and real-time claim-map sync
- Auto-Assign button with diagnostic toast (assigned count · ready · waiting · already on courts)
- Podium card auto-renders when a division's final match completes — gold / silver / bronze with seeds
- ActionCable `LeaguePlayoffChannel` pushes match_scored / court_assigned / division_completed / court_designation_changed / venue_updated / match_ready / court_freed events to every admin device
- Four new admin-only push types: match_ready_overdue (20+ min waiting), division_completed, event_wrapping, score_entered (opt-in)
- Hourly PlayoffReadyMatchScanJob using a partial index on ready_since_at to flag stuck matches
- AsyncStorage cache survives airplane-mode transitions; offline banner surfaces cached state
- JWT auth flows through the existing web mutation endpoints transparently — no shim, no duplicate logic
- Rolled out behind FeatureDefinition flag `mobile_playoff_manager_v1` with a per-user beta allowlist
Apr 21, 2026
Leagues
Per-Round Rung Ladder — Live Rung Shuffling on League Night
A Mexicano-style variant of the rung ladder format where players reshuffle between rungs after every round on the same night, instead of once per week. Toggle on the league setup form.
- New 'Rung Movement Mode' setting: Weekly (classic) or Per Round (Mexicano)
- After every round completes, top half of each rung moves up one rung and bottom half moves down one
- Next round auto-generates with the new rung composition — no admin action needed
- Rung positions persist across sessions — end night 1 on Rung 2, start night 2 on Rung 2
- Optional reset-each-session toggle if the organizer prefers re-seeding every week
- Partner rotation within a rung avoids consecutive-round repeat pairings
- Tiebreakers within a round: wins then point differential then head-to-head then prior rung rank
- Push notification to every affected player when they move up or down
- Live rung state API endpoint powers mobile live rung ladder screen
- Bye handling for rungs with fewer than 4 confirmed players that round
- Backward-compatible: every existing rung ladder defaults to weekly mode, no behavior change
Apr 21, 2026
Platform
Structured Membership Tiers — Every Perk Hits Stripe as Real Dollars
Every membership tier perk now flows through a server-authoritative pricing pipeline that actually reduces the Stripe charge. Nine surfaces, five discount types, five cadences, age + time-of-day eligibility gates, one-time initiation fees, audit-logged grandfathering.
- Nine billable surfaces covered: court reservations, open play, leagues, tournaments, clinics, coaching lessons, ball machine, guest passes, initiation fees
- Five discount types: percentage off, fixed off, free, allowance (first N per cadence), free with cap
- Five cadences: daily, weekly, monthly, quarterly, annually — anchored to the club's clock
- Eligibility gates enforced server-side: age (COPPA-floored at 13), hours, days of week, locations
- One-time initiation fees via Stripe Connect — waivable, with configurable reapplication window
- JSONB schema validator rejects tampered blobs: negative percents, out-of-range values, allowance on non-allowance surfaces, unknown keys
- Immutable audit log on every tier edit — actor, IP, user agent, full before/after JSON
- Grandfathering: existing active members keep their original terms until explicit 'Apply to existing members' action
- Per-club shadow-compare flag runs both legacy and new paths in parallel and logs divergence before flipping
- Backfill rake task translates legacy fields (court_rate_discount_percent, event_pricing JSONB, free_*_per_month) into structured data — Snovalley skipped by default
- New league and tournament resolvers route through ClubPricing for the first time — their discounts now actually apply
- Deterministic perks formatter: structured inputs generate the human-readable perk bullet list
Apr 21, 2026
Platform
Structured Membership Tiers — Every Perk Hits Stripe as Real Dollars
Every membership tier perk now flows through a server-authoritative pricing pipeline that actually reduces the Stripe charge. Nine surfaces, five discount types, five cadences, age + time-of-day eligibility gates, one-time initiation fees, audit-logged grandfathering.
- Nine billable surfaces covered: court reservations, open play, leagues, tournaments, clinics, coaching lessons, ball machine, guest passes, initiation fees
- Five discount types: percentage off, fixed off, free, allowance (first N per cadence), free with cap
- Five cadences: daily, weekly, monthly, quarterly, annually — anchored to the club's clock
- Eligibility gates enforced server-side: age (COPPA-floored at 13), hours, days of week, locations
- One-time initiation fees via Stripe Connect — waivable, with configurable reapplication window
- JSONB schema validator rejects tampered blobs: negative percents, out-of-range values, allowance on non-allowance surfaces, unknown keys
- Immutable audit log on every tier edit — actor, IP, user agent, full before/after JSON
- Grandfathering: existing active members keep their original terms until explicit 'Apply to existing members' action
- Per-club shadow-compare flag runs both legacy and new paths in parallel and logs divergence before flipping
- Backfill rake task translates legacy fields (court_rate_discount_percent, event_pricing JSONB, free_*_per_month) into structured data — Snovalley skipped by default
- New league and tournament resolvers route through ClubPricing for the first time — their discounts now actually apply
- Deterministic perks formatter: structured inputs generate the human-readable perk bullet list
Apr 21, 2026
Platform
Structured Membership Tiers — Every Perk Hits Stripe as Real Dollars
Every membership tier perk now flows through a server-authoritative pricing pipeline that actually reduces the Stripe charge. Nine surfaces, five discount types, five cadences, age + time-of-day eligibility gates, one-time initiation fees, audit-logged grandfathering.
- Nine billable surfaces covered: court reservations, open play, leagues, tournaments, clinics, coaching lessons, ball machine, guest passes, initiation fees
- Five discount types: percentage off, fixed off, free, allowance (first N per cadence), free with cap
- Five cadences: daily, weekly, monthly, quarterly, annually — anchored to the club's clock
- Eligibility gates enforced server-side: age (COPPA-floored at 13), hours, days of week, locations
- One-time initiation fees via Stripe Connect — waivable, with configurable reapplication window
- JSONB schema validator rejects tampered blobs: negative percents, out-of-range values, allowance on non-allowance surfaces, unknown keys
- Immutable audit log on every tier edit — actor, IP, user agent, full before/after JSON
- Grandfathering: existing active members keep their original terms until explicit 'Apply to existing members' action
- Per-club shadow-compare flag runs both legacy and new paths in parallel and logs divergence before flipping
- Backfill rake task translates legacy fields (court_rate_discount_percent, event_pricing JSONB, free_*_per_month) into structured data — Snovalley skipped by default
- New league and tournament resolvers route through ClubPricing for the first time — their discounts now actually apply
- Deterministic perks formatter: structured inputs generate the human-readable perk bullet list
Apr 21, 2026
Platform
Structured Membership Tiers — Every Perk Hits Stripe as Real Dollars
Every membership tier perk now flows through a server-authoritative pricing pipeline that actually reduces the Stripe charge. Nine surfaces, five discount types, five cadences, age + time-of-day eligibility gates, one-time initiation fees, audit-logged grandfathering.
- Nine billable surfaces covered: court reservations, open play, leagues, tournaments, clinics, coaching lessons, ball machine, guest passes, initiation fees
- Five discount types: percentage off, fixed off, free, allowance (first N per cadence), free with cap
- Five cadences: daily, weekly, monthly, quarterly, annually — anchored to the club's clock
- Eligibility gates enforced server-side: age (COPPA-floored at 13), hours, days of week, locations
- One-time initiation fees via Stripe Connect — waivable, with configurable reapplication window
- JSONB schema validator rejects tampered blobs: negative percents, out-of-range values, allowance on non-allowance surfaces, unknown keys
- Immutable audit log on every tier edit — actor, IP, user agent, full before/after JSON
- Grandfathering: existing active members keep their original terms until explicit 'Apply to existing members' action
- Per-club shadow-compare flag runs both legacy and new paths in parallel and logs divergence before flipping
- Backfill rake task translates legacy fields (court_rate_discount_percent, event_pricing JSONB, free_*_per_month) into structured data — Snovalley skipped by default
- New league and tournament resolvers route through ClubPricing for the first time — their discounts now actually apply
- Deterministic perks formatter: structured inputs generate the human-readable perk bullet list
Apr 18, 2026
Mobile App
Public Games Discovery — Find Open Games Near You
A new Discover tab in the Games section shows public games near you that match your skill level — no invite lists, no group texts. Hosts reach every eligible nearby player automatically, and organizers stay in control with one-tap remove.
- Discover segmented view inside the Games tab with list and map modes
- Filter by distance, skill range (DUPR / self / either), time window, and visibility (any eligible / friends of friends)
- Map view with pins, 'Search this area' on pan, recenter button, and tap-to-join callouts
- Suggested Matchups row surfaces high-signal games with mutual friends, shared venues, or prior co-players
- One-tap 'Open to public' nudge prompts organizers to convert private games with open spots 48 hours out
- Host-side reach estimate: 'X eligible players can see this' + coaching hints when reach is low
- Rating gate enforced at every join path — share links can't bypass the skill band
- Organizer can remove any player at any time; removed player sees the state and gets a push
- Post-game attendance prompts build a reliability score visible to hosts
- Optional nearby-games alerts: at most one push per day, skill-matched, quiet hours respected
- 18+ to host and join, matching industry precedent (Meetup, GoodRec, Bumble BFF)
- Safety acknowledgment on first host/join; report button for harassment, no-shows, or unsafe conduct
- Main app only — white-label apps keep their club-scoped open-play flow
Apr 14, 2026
Mobile App
Make It Interesting — Friendly Wagers Between Friends
A social bet ledger for friends. Wager a coffee, donuts, or drinks after the match. Picklebeast tracks the trash talk without ever touching money. Currently in closed beta.
- Three bet types: head-to-head, over/under on a stat, open prop bets
- Friends-only rule with a content filter that rejects money, gift cards, and cash equivalents
- Double-or-nothing chains (up to 32x) with winner acceptance
- Feed cards with likes, comments, @mentions, and rivalries
- Auto-resolution from league/tournament scores; manual attestation for casual games
- 24-hour dispute window, winner-only waive, and 90-day stale bet nudges
- Beta-gated at launch — non-beta users see nothing
Apr 12, 2026
Club Admin
Unified Billing — One Place for Everything You Owe
A single billing page shows your subscription, league and tournament fees, and one-off charges in one place. Pay any invoice with the card on file. Clear warnings before access is ever affected.
- Unified 'Amount Due' summary + invoice history table combining all sources
- 'Pay with card on file' button on any open invoice — no re-entering details
- Platform-owner manual invoice creation for custom charges and contract upfronts
- 3-day warning banner before access is ever restricted, with a direct 'Pay now' CTA
- Platform-owner access override for contract clubs and special arrangements
Apr 5, 2026
Platform
Organizer Accounts — Run Events for Free
Three-tier account system: casual players get free private events, organizers unlock unlimited public events with payment collection, and clubs get full facility management.
- Player accounts: up to 2 free private events with 16 participants, basic formats
- Organizer accounts: free upgrade, unlimited events, public listings, payment collection, advanced formats
- Contextual upgrade nudges in creation wizard when casual limits are hit
- Server-driven upgrade modal with benefits list and one-tap account creation
- Participant cap enforcement (16 players) across all registration paths
- Division limit (1 per event) with upgrade prompt for multiple skill groups
- Platform owner per-user waiver override for beta testers and partners
- Fee schedule context filtering (clubs vs organizers vs casual)
- Full security audit: 14 bypass vectors identified and fixed