Challenge Minds. Build Teams.
Riddlit is a team-based riddle-solving platform that brings teams together through daily challenges, friendly competition, and collaborative problem-solving. Built for peeps looking to engage their teams in fun, intellectual challenges.
- Team Formation: Create or join teams with colleagues and friends
- Real-Time Leaderboards: Track individual and team progress with live rankings
- Streak Tracking: Maintain solving streaks for bonus points and recognition
- Time-Limited Riddles: New challenges every day, available for 24 hours
- Multiple Formats: Support for multiple choice and freeform answers
- One Shot Rule: Single submission per riddle - make it count!
- Smart Scheduling: Automated riddle delivery on custom timelines
- Progress Tracking: Detailed statistics and performance metrics
- Social Features: Team collaboration and friendly competition
- Next.js 15 - React framework with App Router
- TypeScript - Type-safe development
- Tailwind CSS - Utility-first styling
- Shadcn/ui - Beautiful, accessible components
- Framer Motion - Smooth animations
- Supabase - Postgres database and real-time features
- Drizzle ORM - Type-safe database operations
- Server Actions - Modern API patterns
- Clerk - Authentication and user management
- Vercel - Serverless deployment platform
- PostgreSQL - Production database on Supabase
riddlit/
โโโ app/ # Next.js app router
โ โโโ (auth)/ # Authentication routes
โ โโโ (landing)/ # Landing page
โ โโโ admin/ # Admin dashboard
โ โโโ dashboard/ # User dashboard
โ โโโ leaderboard/ # Rankings and statistics
โ โโโ profile/ # User profile management
โ โโโ riddles/ # Riddle browsing and solving
โ โโโ teams/ # Team management
โโโ lib/ # Shared utilities
โ โโโ actions/ # Server actions
โ โโโ components/ # React components
โ โโโ hooks/ # Custom hooks
โโโ db/ # Database schema and config
โ โโโ schema/ # Table definitions
โโโ public/ # Static assets
โโโ supabase/ # Database migrations
Get your crew together or join an existing team already solving challenges.
Each day brings a new challenge, available for 24 hours. Miss it, and you'll have to wait for the next one.
Points, streaks, and rankings create friendly competition. Track your progress on real-time leaderboards.
-
Clone the repository
git clone https://github.com/jayrichh/riddlit.git cd riddlit -
Install dependencies
npm install
-
Set up environment variables
Copy
.env.exampleto.env.localand configure:# Database DATABASE_URL=your_supabase_database_url # Authentication NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key CLERK_SECRET_KEY=your_clerk_secret_key
-
Set up the database
npm run db:push
-
Run the development server
npm run dev
Open http://localhost:3000 to see the application.
- Connect your repository to Vercel
- Configure environment variables in Vercel dashboard
- Deploy - Vercel will automatically build and deploy
- Create Supabase project
- Run migrations:
npm run db:push - Configure RLS policies for security
- Create Clerk application
- Configure OAuth providers (optional)
- Set up webhooks for user sync
- Riddle Creation: Add new challenges with rich text editor
- Team Oversight: Monitor team activities and resolve issues
- User Management: Handle user roles and permissions
- Engagement Metrics: Track participation and completion rates
- Performance Insights: Identify popular riddles and team dynamics
- Export Data: Generate reports for organizational insights
- Server Actions: All database operations use type-safe server actions
- Component Library: Consistent UI with Shadcn/ui components
- Type Safety: Full TypeScript coverage with strict mode
- Users: Authentication and profile data
- Teams: Team information and membership
- Riddles: Challenge content and metadata
- Submissions: User responses and scoring
