Case study
DigiLab
Production tournament tracking and meta analysis platform for the global Digimon TCG community.
3,000+
tournaments logged
350+
Discord members
2 yrs
in development
Problem
The Digimon TCG community is global, growing, and ran on duct tape. Tournament results lived in Discord screenshots and individual Twitter posts. Player ratings were calculated manually by a handful of dedicated organizers. Deck meta analysis required scraping ten different community sources by hand. Store information was tribal knowledge.
I started DigiLab as a side project to fix this for North Texas tournaments specifically, then watched it become the fix for the worldwide community. What started as "let me just build a Shiny dashboard for our local scene" turned into a multi-year build of real production infrastructure.
It's also a project where the constraints are unusually real for a side project: the community depends on it for tournament prep, store operators depend on it for player reach, players depend on it for accurate ratings. Uptime matters. Data accuracy matters. Ops costs matter. The kinds of things that are abstract in a coursework project are concrete here.
Approach
DigiLab evolved through two phases. First, a Shiny prototype tracking North Texas events, which validated demand and seeded the data model. Then a full rebuild as a modern web platform on Astro + Preact + Neon Postgres + Vercel, which is what runs at digilab.cards today.
The current platform is a real product, not a hobby site:
- SSR entity pages for tamers (players), stores, decks, and tournaments. Each gets a real URL, structured JSON-LD, dynamic OG images via @vercel/og, and cross-linking. Search engines index the whole catalog.
- Scene-aware leaderboards that scope to a geography (Dallas, Texas, US, global) so a player in Dallas sees the leaderboard that's relevant to their travel radius.
- Regional meta analysis with archetype breakdowns, color distribution, and format trends. The analytics layer that makes the platform useful for tournament prep, not just history lookup.
- Highcharts visualizations and Mapbox maps on every entity page where they add information.
- MDX blog for announcements, technical posts, meta deep-dives, and community spotlights.
- Public token-authenticated API so external tools and bots can build on DigiLab data; multiple community projects already do.
- Admin subdomain with full CRUD for tournament organizers to enter results, plus form-based bug/data-error reporting that fires Discord webhooks to me.
- Auth and roles via better-auth, distinguishing players, store operators, TOs, and admins.
Architecturally, the most consequential decision was SSR-first with Preact islands for interactivity. The site needed to be SEO-discoverable (every player and store profile is a landing page), needed to feel fast on tournament-day connections, and needed enough interactivity to support filtering and exploration. Astro's hybrid model fits exactly that brief. Preact handles the interactive bits without dragging React's full runtime onto every page.
AI tooling, Claude Code in particular, accelerated this dramatically. Building a real multi-entity platform in evenings and weekends would have been a much longer project pre-AI. That's a real, repeatable lesson I now apply to my CPAL work.
Side projects with real users are the best portfolio.
Outcome
DigiLab tracks 3,000+ tournaments worldwide across the major Digimon TCG formats. The associated Discord community has 350+ members contributing data, reporting issues, and shaping the roadmap. The public API powers external community projects.
But the more interesting outcomes are softer:
- It changed the conversation in the Digimon TCG community about what tournament data infrastructure can look like; competitors and adjacent communities have started building toward similar models.
- It is the project I point to when I want to show what I can build end-to-end. Building something real, with real users reporting real bugs, has been the most concentrated learning of my career.
- It is the clearest evidence I have that I can take a modern web platform from idea to production (design system, database schema, API, admin tooling, auth, deployment, ops), not just data pipelines.
Reflection
A few things I'd carry into any similar project:
- Side projects with real users are the best portfolio. Coursework, take-homes, and demos let you skip the unglamorous parts. Real users force you to do them well: auth, ops, data integrity, performance under load, support communications.
- Community-driven data has unique constraints. Volunteer contributors will not tolerate friction. Every form field, every report flow, every login gate is a tax. The data quality is a function of how easy you make contribution.
- Build the boring infrastructure. The SEO-friendly URLs, the JSON-LD, the dynamic OG images, the admin CRUD, the API tokens. None of those are glamorous, and all of them are why DigiLab is used by people I've never met.
- AI tooling changes the side-project equation. What used to be "I can't build this in evenings" becomes "I can build this in evenings if I'm thoughtful about scope." That has shaped what I take on professionally too.