An open source web application for building, managing, and playtesting Magic: the Gathering cubes.
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
- Advanced card search with filters and syntax
- Visual cube layout and organization
- Version control and change tracking
- Import/export support for various formats
- Solo drafting with intelligent AI bots
- Multiplayer drafting with friends
- Various draft formats (8-person, Grid, Custom, etc.)
- Draft analysis and statistics
- Card popularity and pick order statistics
- Cube balance analysis
- Power level assessments
- Meta trend tracking
- Public cube browser with search and filtering
- User profiles and cube collections
- Feed and comments system
- Featured cube rotations
- Node.js with Express 4 framework
- DynamoDB for data persistence
- S3 for file storage and static assets
- TypeScript for type safety
- React with TypeScript
- TailwindCSS for styling
- Webpack for bundling
- AWS for production deployment
- LocalStack for local development
- Docker for containerization
- CDK for infrastructure as code
- ESLint and Prettier for code quality
- Jest for testing
- GitHub Actions for CI/CD
- Nearley for card filter parsing
Choose your preferred setup method:
The fastest way to get CubeCobra running locally with all dependencies containerized.
Alternative setup for developers who prefer working directly with Node.js.
Before starting either setup, review the required tools and accounts.
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
- 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
- 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
We welcome contributions from the community! Whether you're fixing bugs, adding features, or improving documentation, your help makes CubeCobra better for everyone.
β Complete Contributing Guide
- 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 - 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!
Our developers are happy to help get new folks started with the project - don't hesitate to ask questions in Discord!
- 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
- 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
- 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
- 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
Our development team is friendly and welcoming - we're always happy to help new contributors get started!
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.