Bracksy

Bracksy Documentation

Bracksy is a cloud-first tournament platform for racket sports. It helps organizers run events from mobile or desktop, track live results, and share standings in real time.

Fast setup

Create a tournament in under a minute: choose format, add players, and start live scoring immediately.

Mobile-first UX

Optimized for courtside use, including quick score entry, large tap targets, and sticky bottom navigation.

Cloud-only data

Application state is synced to Supabase to avoid local-only data loss and support multi-device continuity.

Core Features

  • Multiple tournament formats: Americano, Round Robin, Mexicano, Single Elimination, Double Elimination, League.
  • Live match scoring with automatic standings and podium generation.
  • Social profile with friends, clubs, invites and rivalry tracking.
  • Sign-in with Google OAuth and email magic links via Supabase Auth.
  • Multilingual interface: English and Polish with locale-prefixed routes.

Application Pages

/en

Home dashboard with recent tournaments and quick actions.

/en/new

Tournament creator: sport, format, score mode and players.

/en/t?id=...

Live tournament view with rounds, matches, standings and finish flow.

/en/me

User profile and social modules (friends, clubs, rivalries).

/en/sign-in

Authentication page for Google and magic-link sign in.

/en/discover

Public discover area for future listing and community tournaments.

/en/auth/callback

Authentication callback route that exchanges OAuth codes and returns users to the app.

/en/docs

Product, architecture, screen and roadmap documentation.

/en/privacy-policy

Legal information about data processing, storage and contact rights.

/en/terms

Rules for using Bracksy and acceptable-use requirements.

All Screens and UI States

This section lists every current route, major component state and user-facing view in the application.

Root redirect

The `/` entry point redirects static-export users to the default locale path.

Home hero

Explains the product value proposition and exposes primary create/quick-start calls to action.

Home empty state

Shown when a signed-in user has no tournaments synced from Supabase yet.

Tournament list

Displays user tournaments sorted by creation time with status badges and open actions.

Create step 1: Sport

Lets organizers choose padel, tennis, pickleball, squash, table tennis or generic sport.

Create step 2: Format

Presents supported tournament formats with labels, descriptions and availability state.

Create step 3: Players & rules

Captures tournament name, scoring mode and player list before saving to Supabase.

Tournament resolver empty state

Shown when the live tournament route is opened without an `id` query parameter.

Tournament not found

Shown after hydration when the requested tournament is not available for the current user.

Live tournament header

Shows tournament name, current round, format and live status badge.

Matches tab

Lists rounds and match cards with score inputs, pending/completed states and save actions.

Standings tab

Displays ranking, points, point difference and win/loss statistics.

Finished tournament

Shows podium, final standings, play-again action, new tournament action and delete option.

Signed-out auth view

Offers Google OAuth and email magic-link sign-in with Supabase configuration safety checks.

Signed-in auth view

Confirms current account and exposes sign-out from the sign-in route.

Auth callback progress

Displays signing-in progress while OAuth codes or magic-link sessions are processed.

Profile loading

Shown while cloud profile and social payload state hydrates from Supabase.

Profile stats tab

Summarizes tournament count, finished tournaments, matches played and points scored.

Profile friends tab

Manages friends, notes, invitation codes and invite acceptance.

Profile clubs tab

Creates clubs, stores city/sport metadata and manages member assignments.

Profile rivalries tab

Creates head-to-head rivalries and records winner/score history.

Discover

Placeholder for future public tournament discovery and community listings.

Documentation

Current screen containing product, architecture, API, security and roadmap descriptions.

Privacy policy

Legal page describing controller, processed data, purpose, storage, rights and contact.

Terms

Legal page describing scope, responsibilities, acceptable use, availability and updates.

Global footer

Provides product summary, legal links, documentation link and creator reference.

Cookie banner

Explains required cookies and stores accept/decline preference in a cookie.

Mobile bottom navigation

Sticky mobile navigation for home, new tournament, discover and profile.

Header authentication button

Switches between sign-in link and authenticated profile/sign-out controls.

Cloud data bootstrap

Initializes or clears Supabase-backed tournament/profile stores based on auth state.

Data & API Architecture

Bracksy uses Supabase as backend infrastructure. Main entities and services:

  • Auth: user sessions and identity through Supabase Auth.
  • Tournaments domain: tournaments, members, players, rounds and matches tables.
  • Social domain: friend_invites, friendships, rivalries, rivalry_matches.
  • Cloud profile payload in user_state for extended profile/social state.
  • Row Level Security policies ensure access only to authorized users.

Security & Privacy

Bracksy relies on Supabase RLS policies, authenticated access checks, and server-side schema constraints. Personal data processing details are described in the Privacy Policy.

Roadmap

  • Expanded bracket logic and advanced scheduling rules.
  • Public tournament pages with share-friendly URLs.
  • Push notifications and richer match event history.
  • Native iOS/Android packaging via Capacitor for store releases.