The competitive home for NBA 2K26.
A full competitive gaming platform with AI-powered stat tracking, real-money prize pool tournaments, a live Draft Night engine, and a 40-badge build calculator. Built solo, from empty repo to production-ready in a single development cycle.

0
Automated tests
Unit, integration, and E2E
0
Pages built
Dashboard, draft, tournament views
0
Badge calculator
All 40 badges tracked per build
0
Team members
Built entirely solo
Platform overview

The Challenge
The 2K competitive community was fragmented across Discord servers, spreadsheets, and manual stat tracking. Tournaments happened in DMs. Prize money moved through Venmo. There was no infrastructure, just trust and effort.
The brief was to build everything from scratch: player profiles, stat ingestion from game screenshots, a full draft engine, tournament brackets with Stripe-backed prize pools, a 40-badge build calculator with attribute math, and a Discord bot to keep the community in the loop, all maintained by one developer.
The hardest part wasn't any single feature. It was building a coherent system where OCR outputs feed player records that feed tournament seeding that feed bracket logic that feeds Discord notifications, without any of it breaking under real usage.
The Solution
Claude Vision reads game screenshots and extracts player stats directly into the database. No manual input. Players upload a screenshot, the AI parses it, and the record updates in seconds.
A full pick-by-pick draft system with serpentine ordering, team assignment logic, and a real-time interface so commissioners can run live drafts with 12+ players simultaneously.
Entry fees collect via Stripe. Prize pools are calculated automatically. Payouts go to winners without a commissioner touching money manually. The system handles every edge case including refunds and forfeits.
A build tool that tracks all 40 in-game badges with attribute requirements, badge point math, and build validation. Players can plan entire builds before spending a single virtual currency.
Every core pathway has test coverage: stat parsing, bracket seeding, payment flows, badge calculations, and API endpoints. The test suite runs in CI and nothing ships without passing.
Match results, tournament brackets, and draft picks post automatically to Discord. The bot handles role assignments, match reminders, and result disputes without leaving the server.
Platform Features
A complete pick-by-pick draft system designed for live events. Commissioners create a draft session, set the player pool, and run the draft in real time with a live interface that all participants can watch.
Full bracket generation and management for single-elimination and double-elimination formats. Brackets are seeded from player rankings, and results flow through the bracket automatically as matches are reported.
Entry fees are collected via Stripe at tournament registration. Prize pool amounts are calculated automatically based on entry count and fee structure. Payouts route directly to winners.
A build planning tool that tracks all 40 in-game badges with their attribute requirements and badge point costs. Players can plan complete builds before spending any virtual currency in the game.
OCR Pipeline
The OCR pipeline is the core technical differentiator of Check Up. Players photograph their game screen, upload the image, and the system extracts structured stat data without any manual input. The pipeline handles image quality variance, different screen layouts, and partial captures gracefully.
Player uploads a phone screenshot of their game stat screen. The system accepts JPEG, PNG, and HEIC formats with automatic orientation correction.
The image is sent to Claude Vision with a structured prompt that identifies stat categories, values, and player metadata. The AI model parses the visual layout and returns structured JSON.
Extracted stats pass through validation rules that check for reasonable ranges, consistent totals, and format compliance. Stats that fail validation are flagged for manual review instead of silently accepted.
Validated stats are written to the player's record in the database. Historical stats are preserved for trend tracking, and the player's ranking is recalculated based on the new data.
Testing Strategy
400+
Tests against real screenshot samples to verify stat extraction accuracy. Covers edge cases like low-resolution images, partial captures, and different game screen layouts.
600+
Every bracket operation is tested: seeding, progression, bye handling, double elimination losers bracket, and finals. Edge cases include odd player counts, forfeits at every round, and concurrent match reporting.
300+
Stripe integration tests cover entry fee collection, refund scenarios, payout calculations, and webhook handling. Tests run against Stripe test mode with mocked and live API responses.
250+
Bot command handling, match result posting, role assignment, and notification delivery. Tests verify that Discord state stays consistent with database state across all event types.
350+
All 40 badges tested across every tier. Attribute threshold math, badge point budget calculations, and build validation rules are verified against known-correct game data.
500+
Route-level integration tests for authentication, authorization, input validation, response shape, and error handling. Every public endpoint has positive and negative test cases.
Platform Architecture
The 60+ pages are organized into functional groups that mirror the way players, commissioners, and administrators actually use the platform. Every page connects to shared services for authentication, data fetching, and real-time updates. The architecture ensures that a change to the bracket system does not break the draft engine, and vice versa.
Player Hub
12 pages
Profile, stats history, build planner, match history, achievements, settings
Tournament Center
10 pages
Browse, register, bracket view, match reporting, results, payout history
Draft System
8 pages
Draft lobby, live draft board, pick history, team rosters, draft results
Commissioner Tools
9 pages
Create tournament, manage brackets, dispute resolution, payout management
Badge Calculator
6 pages
Build creator, badge browser, comparison tool, community builds, import/export
Admin Dashboard
8 pages
User management, platform analytics, content moderation, system configuration
Public Pages
5 pages
Landing, leaderboards, recent results, upcoming events, community stats
Auth + Settings
4 pages
Sign in, sign up, account settings, notification preferences
System Map
Data Flow
Tech Stack
Launch-Ready Numbers
Check Up was built as a production-ready platform with 60+ pages, 3,400+ passing tests, and every major feature wired: OCR ingestion, live drafts, Stripe prize pools, badge calculator, and Discord integration. Public launch TBD.
The test coverage isn't a vanity metric. It means commissioners can run a live tournament, collect entry fees, run a draft, post brackets, and pay out winners, trusting that the system won't break mid-event in front of their community.
Built entirely solo. Zero outsourced development. The platform is a direct reflection of what one developer with the right tools and process can ship.
Whether it's a community platform, a SaaS tool, or something entirely new, book a call and I'll tell you exactly how fast it can ship.
From the blog
How I Built Check Up's OCR Pipeline
Breaking down the computer vision stack behind automatic stat extraction, from raw screenshots to structured JSON with 3,400+ passing tests.
Read articleProgressive Web Apps: Why Your Next Project Should Be a PWA
PWAs combine the reach of a website with the experience of a native app. Offline support, push notifications, installability, and sub-second loads without the App Store middleman.
Read article