Skip to content

Conversation

@sergical
Copy link
Collaborator

Summary

This PR adds interactive bracket predictions, sharing functionality, and a leaderboard system.

Features

Bracket Predictions

  • Interactive bracket where users can pick winners for each match
  • Visual feedback with checkmark badges for selections
  • Correct/incorrect indicators after results are in
  • Predictions locked once tournament starts

Bracket Sharing

  • Share your bracket via unique URL (/bracket/:username)
  • OG image generation for social sharing
  • Enlarged avatars and improved layout for shared brackets

Leaderboard

  • Retro-styled leaderboard component
  • Database schema for tracking scores
  • Drizzle migrations for D1

Other Improvements

  • Scoreboard countdown component
  • OAuth redirect improvements
  • Login flow enhancements
  • Bracket visual polish (finalist stacking, controls styling)

Technical Changes

  • Better-auth integration with GitHub OAuth
  • D1 database with Drizzle ORM
  • API routes for predictions and locking
  • Consolidated Bracket component with isInteractive flag

🤖 Generated with Claude Code

@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Jan 26, 2026

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
mad-css ee433f5 Commit Preview URL

Branch Preview URL
Jan 29 2026, 03:20 AM

@sergical sergical force-pushed the sergical/bracket-picking branch from 524e8c7 to 92dfb46 Compare January 28, 2026 14:35
@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Jan 28, 2026

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
mad-css c5cbcdb Commit Preview URL

Branch Preview URL
Feb 01 2026, 02:01 AM

@sergical sergical force-pushed the sergical/bracket-picking branch 8 times, most recently from 46fcdfd to 4c5a42b Compare February 1, 2026 00:39
sergical and others added 4 commits January 31, 2026 19:40
Features:
- User bracket predictions with cascading pick logic
- Bracket locking with deadline enforcement
- Share bracket as image (OG image generation)
- Admin simulation panel for testing tournament progression
- Leaderboard with scoring system

Technical improvements:
- Refactor bracket node generation into modular functions (nodeGenerators.ts)
- Consolidate database migrations
- Add Zod validation to server functions
- Security fixes and input validation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Create PredictionsContext to reduce prop drilling from test.tsx
- LoginSection now consumes from context (12 props → 3 props)
- Bracket supports both context mode and props fallback for SSR routes
- Export UsePredictionsReturn type from usePredictions hook

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
When showPicks toggle is disabled, getPredictionOptions now returns
undefined instead of { pickState: "none" }, preventing unpicked styling
from being applied to Round 1 players.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@sergical sergical force-pushed the sergical/bracket-picking branch from 4c5a42b to 419bd66 Compare February 1, 2026 00:41
sergical and others added 2 commits January 31, 2026 20:20
Add "noPick" status to distinguish "no pick made" from "opponent was
picked". Remove legacy boolean props from PlayerNode and cleanup
grayscale filter.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Social media crawlers now get a valid preview image instead of 404/403
errors when sharing bracket URLs for non-existent users or unlocked
brackets. Also extracts NotFound component for reuse and adds styled
404 page.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants