Rhystic_Buddy

Rhystic Buddy Logo

Rhystic Buddy

A life counter & game utility app for Magic: The Gathering's Commander (EDH) format, built with React Native.

Version License PRs Welcome


Rhystic Buddy is an app designed to be a simple, but feature-rich companion for your Commander games. It features life tracking & offers a suite of tools to manage board states & streamline gameplay, all wrapped in a clean, gesture-driven interface.

✨ Key Features

πŸ› οΈ Tech Stack

πŸ“‚ Project Structure

The project uses a feature-sliced architecture to keep the codebase modular, scalable, & easy to navigate.

src/
β”œβ”€β”€ consts/         # Application-wide constants (colors, layout values)
β”œβ”€β”€ features/       # Self-contained feature modules
β”‚   β”œβ”€β”€ central-menu/
β”‚   β”œβ”€β”€ commander-damage/
β”‚   β”œβ”€β”€ counters-menu/
β”‚   └── player-panel/
β”œβ”€β”€ helpers/        # Utility functions (e.g., API helpers)
β”œβ”€β”€ hooks/          # Shared custom React Hooks
β”œβ”€β”€ lib/            # Core libraries & managers (e.g., queryClient)
β”œβ”€β”€ styles/         # Global styles & design tokens
└── types/          # Shared TypeScript type definitions

πŸš€ Getting Started

Prerequisites

Installation & Running

  1. Clone the repository:

    git clone git@github.com:BrodyHughes/Rhystic_Buddy.git
    cd Rhystic_Buddy
    
  2. Install all dependencies: This command handles Yarn packages, Ruby gems, & CocoaPods in one go.

    yarn install-all
    
  3. Start the Metro server:

    yarn start
    
  4. Run on a simulator or device: Keep the Metro server running in a separate terminal.

    • For iOS:
      yarn ios
      
    • For Android (still in development):
      yarn android
      

πŸ“œ Available Scripts

Command Description
yarn start Starts the Metro bundler.
yarn ios Builds & runs the app on the iOS Simulator.
yarn android Builds & runs the app on an Android emulator or device.
yarn install-all Installs all JS, Ruby, & CocoaPods dependencies.
yarn lint Lints the codebase with ESLint.
yarn lint:fix Lints & automatically fixes issues.
yarn typecheck Runs the TypeScript compiler to check for type errors.
yarn format Formats code with Prettier.
yarn clean Removes all generated files & caches.

🀝 Contributing

Contributions are welcome! Whether it’s a bug report, a new feature, or a suggestion, please feel free to open an issue or submit a pull request.

  1. Fork the repository & create your feature branch: git checkout -b <your-username>/<short-description>
  2. Make your changes.
  3. Ensure your code passes local checks before pushing:
    yarn lint:fix && yarn typecheck
    
  4. Push your branch & open a Pull Request against the main branch.

πŸ“„ License

This project is licensed under the Apache License 2.0. See the LICENSE file for details.

πŸ™ Acknowledgements

βš–οΈ Disclaimer

Rhystic Buddy is unofficial Fan Content permitted under the Wizards of the Coast Fan Content Policy. Not approved/endorsed by Wizards. Portions of the materials used are property of Wizards of the Coast. Β©Wizards of the Coast LLC.

This application uses data from the Scryfall API, but is not produced by, endorsed by, supported by, or affiliated with Scryfall.