12Coffees UFC Picks
A full-stack UFC prediction platform where users make fight picks, compete on leaderboards, challenge other players, track performance, and get AI-assisted insights. Built and operated as part of the 12Coffees media brand.
- React
- TypeScript
- AWS
- Lambda
- DynamoDB
- API Gateway
- S3
- CloudFront
- Capacitor
Overview
12Coffees UFC Picks is an interactive prediction and competition platform built around UFC events. Users can submit fight picks, compete through seasonal leaderboards, challenge other players, earn bonuses for successful underdog picks, track their prediction history and accuracy, and compare performance across the community.
The platform extends the 12Coffees podcast from a content-only brand into an interactive product, giving listeners and MMA fans a way to participate rather than simply consume content.
Problem
UFC discussion is inherently prediction-driven, but picks shared through podcasts, chats, or social media are difficult to track over time. There is no persistent record of who consistently makes good predictions, how accurate someone actually is, or how friends and community members compare.
12Coffees UFC Picks turns those informal predictions into a structured competition, maintaining historical picks, scoring results automatically, ranking players, and adding mechanics such as challenges, underdog bonuses, seasons, achievements, and performance insights.
My Role
Creator, Product Designer & Full-Stack Engineer
I conceived, designed, built, deployed, and operate the platform end-to-end. My work spans product design, frontend development, backend APIs, data modeling, cloud architecture, authentication, integrations, deployment, monitoring, and ongoing feature development.
- Designed and developed the React/TypeScript web application and responsive user experience.
- Designed the serverless AWS architecture and DynamoDB data model.
- Built APIs and business logic for picks, scoring, leaderboards, challenges, seasons, user profiles, and statistics.
- Integrated external fight and betting-odds data to support event information and underdog scoring.
- Built AI-assisted features including personalized fighter/prediction insights through the 12Coffees Corner.
- Designed and maintain the AWS deployment infrastructure, CDN, storage, DNS, certificates, and production environments.
- Extended the web platform into Android and iOS applications using Capacitor and managed their respective store release processes.
- Own the product roadmap, UI/UX decisions, testing, production support, and continued development.
Architecture
The platform uses a serverless AWS architecture designed to keep infrastructure lightweight while allowing individual capabilities to evolve independently.
The React/TypeScript client communicates with REST APIs exposed through Amazon API Gateway. AWS Lambda functions implement application and domain logic, while DynamoDB provides persistent storage for users, events, picks, results, challenges, seasons, and related application data.
Static assets and fighter media are stored in Amazon S3 and distributed through CloudFront. External services provide UFC event and betting-odds data used by the scoring and prediction systems.
The same web application is packaged with Capacitor for native Android and iOS distribution, allowing the web and mobile products to share the majority of their application code.
Technology
- React
- TypeScript
- AWS
- Lambda
- DynamoDB
- API Gateway
- S3
- CloudFront
- Capacitor
Challenges
Stateful scoring from changing real-world events
Fight predictions begin as user-generated data but eventually have to be reconciled against real-world UFC results. Scoring needs to account for completed fights, changed or cancelled bouts, betting odds, challenge rules, bonuses, and leaderboard implications without corrupting historical results.
DynamoDB modeling
The platform contains several highly related concepts, including users, events, fights, picks, challenges, seasons, statistics, and rankings, while using DynamoDB rather than a relational database. Data access patterns therefore had to be considered up front instead of relying on arbitrary joins later.
Shared web/mobile application
The product began as a web application and later expanded to Android and iOS. Capacitor allowed the existing React application to remain the core product while introducing native packaging, authentication behavior, store requirements, and platform-specific release workflows without maintaining separate applications.
Product complexity
What began as straightforward fight predictions evolved into a competition system with seasons, scoring rules, challenges, underdog bonuses, historical statistics, rankings, user profiles, favorite fighters, AI insights, and community features. New functionality has to remain understandable to users without turning the product into a collection of disconnected features.
Implementation
The application is organized around UFC events. Users select winners for upcoming fights and picks are persisted before the event begins. Once results become available, backend processing evaluates predictions and updates the statistics used throughout the application.
The scoring system goes beyond simple win/loss totals. Successful high-odds underdog selections can generate bonus points, direct user challenges introduce additional risk/reward mechanics, and seasonal scoring allows competition to reset while preserving historical performance.
User profiles aggregate prediction accuracy, ranking information, historical results, favorite fighters, and AI-generated scouting-style analysis. Dedicated leaderboard and insight views provide deeper statistical comparisons without overwhelming the primary prediction workflow.
Media assets such as fighter portraits are stored separately through S3 and CloudFront, keeping large static content away from the transactional application layer.
Results
12Coffees evolved from a podcast and media brand into a working multi-platform software product used by a growing community to make and track UFC predictions.
The project is actively deployed and maintained in production, with the same product available across the web, Android, and iOS. It has grown from basic fight predictions into a broader competition platform incorporating rankings, challenges, seasonal competition, analytics, betting-odds-based scoring, user profiles, and AI-assisted insights.
More importantly from an engineering perspective, the project has given me ownership of the complete product lifecycle, from an initial idea and architecture through implementation, cloud deployment, mobile distribution, production support, and continued iteration based on real usage.
Screenshots



