CubeCobra
An open source web application for building, managing, and playtesting Magic: the Gathering cubes.
Star History
About
CubeCobra is a modern web platform that enables Magic: The Gathering players to:
- Build and Manage Cubes: Create custom draft environments with powerful card search and organization tools
- Draft and Playtest: Experience your cube through online drafting with AI opponents and real players
- Analyze and Optimize: Use analytics to understand your cube's balance and make data-driven improvements
- Share and Discover: Explore thousands of community cubes and share your own creations
Features
Cube Management
- Advanced card search with filters and syntax
- Visual cube layout and organization
- Version control and change tracking
- Import/export support for various formats
Drafting Experience
- Solo drafting with intelligent AI bots
- Multiplayer drafting with friends
- Various draft formats (8-person, Grid, Custom, etc.)
- Draft analysis and statistics
Analytics & Insights
- Card popularity and pick order statistics
- Cube balance analysis
- Power level assessments
- Meta trend tracking
Community Features
- Public cube browser with search and filtering
- User profiles and cube collections
- Feed and comments system
- Featured cube rotations
Technology Stack
Backend
- Node.js with Express 4 framework
- DynamoDB for data persistence
- S3 for file storage and static assets
- TypeScript for type safety
- Recommender Service - Dedicated ML microservice for AI recommendations
Frontend
- React with TypeScript
- TailwindCSS for styling
- Webpack for bundling
Infrastructure
- AWS for production deployment
- LocalStack for local development
- Docker for containerization
- CDK for infrastructure as code
Development Tools
- ESLint and Prettier for code quality
- Jest for testing
- GitHub Actions for CI/CD
- Nearley for card filter parsing
Getting Started
Choose your preferred setup method:
🐳 Docker Setup (Recommended)
The fastest way to get CubeCobra running locally with all dependencies containerized.
🔧 Node.js Setup
Alternative setup for developers who prefer working directly with Node.js.
📋 Prerequisites
Before starting either setup, review the required tools and accounts.
Documentation
Comprehensive documentation is available in the /packages/docs directory:
- 📚 Complete Documentation - Full documentation index
- 🛠️ Development Tools - IDE setup and development workflow
- 🧪 Testing Guide - Running and writing tests
- 🔧 Troubleshooting - Common issues and solutions
Architecture & Concepts
- Card Filters - How card filtering and search works
- Nearley Parser - Grammar files and parser generation
- Markdown Support - Available markdown features
- Card Printing - Print decision logic
Configuration & Maintenance
- Environment Variables - Complete configuration reference
- Card Definitions - Card data management and structure
- Updating Cards - Card data maintenance
- Analytics System - Analytics and exports
- Scheduled Jobs - Automated maintenance
Contributing
We welcome contributions from the community! Whether you're fixing bugs, adding features, or improving documentation, your help makes CubeCobra better for everyone.
Quick Start for Contributors
- Join our Discord - Get help and connect with the community
- Request contributor role - Message @Dekkaru in Discord to gain access to development channels
- Set up your environment - Follow our setup guides
- Download data files - Run
npm run download-data-filesfor first-time setup
- Start development servers - Run
npm run devto start all services (client, server, ML recommender) - Find something to work on - Check Discord development channels for current needs
- Make your changes - Follow our coding standards and write tests
- Submit a pull request - We'll review and help you get it merged!
Development Workflow
- Set up your development environment using our guides
- Create a feature branch for your changes
- Follow our coding standards (ESLint + Prettier)
- Write tests for new functionality
- Submit a pull request with a clear description
Areas for Contribution
- Frontend Development: React components and user interfaces
- Backend Development: API endpoints and data processing
- Analytics: Card analysis and cube insights
- Testing: Unit tests and integration tests
- Documentation: Guides, tutorials, and API docs
- Infrastructure: DevOps and deployment improvements
Community
- Discord: Join our development community for real-time discussion and support
- Bug Reports & Feature Requests: All managed through Discord development channels
- GitHub: Used for code collaboration and pull requests
Getting Help
- New Contributors: Join our Discord and message @Dekkaru for the contributor role to access development channels
- Bug Reports: Report issues in Discord development channels
- Feature Requests: Discuss new ideas in Discord development channels
- Development Support: Get help with setup and development questions in Discord
License
CubeCobra is open source software licensed under the ISC License.
_CubeCobra is not affiliated with Wizards of the Coast. Magic: The Gathering is a trademark of Wizards of the Coast LLC._