Next.js 15 Performance
- Server components for data fetching, client components only when needed for interactivity
- App router patterns for clean URL structure and efficient page organization

Team-based riddle platform for daily brain challenges and friendly competition.
A riddle-solving platform where teams tackle daily challenges together. Features one-shot answers, live leaderboards, and streak tracking to keep teams engaged and competitive.
New challenges every day, available for 24 hours. Miss one and wait for tomorrow. Keeps teams coming back with fresh content and time pressure.

Create teams, invite members, and compete together. Track collective progress while individual contributions count toward team success.

Rankings update instantly as answers come in. See where your team stands and watch the competition unfold in real-time.

Submit once per riddle - no do-overs. Creates genuine pressure and rewards careful thinking over quick guessing.

Text responses, multiple choice, numbers, or true/false. Riddle creators pick the format that best fits their puzzle.
Manage users, approve riddles, and track engagement. Clean dashboard shows what's working and what needs attention.
Getting leaderboards to update instantly across all users without lag. Used Supabase real-time features with smart client-side caching.
Managing who can see what riddles based on team membership and roles. Built flexible permission system using Clerk with database checks.
Making riddles available fairly across time zones while keeping 24-hour windows consistent. Solved with UTC storage and client-side conversion.