Skip to content
IC Reactor

Contributing

Thanks for your interest in contributing to IC Reactor! This guide covers the development workflow, coding standards, and how to submit your changes.

  1. Fork the repository and clone it:

    Terminal window
    git clone https://github.com/<your-username>/ic-reactor.git
    cd ic-reactor
    git remote add upstream https://github.com/B3Pay/ic-reactor.git
  2. Install dependencies:

    Terminal window
    pnpm install
  3. Build and test:

    Terminal window
    pnpm build
    pnpm test
    pnpm typecheck # runs each packages/* typecheck script, tests included
    pnpm format:check
    pnpm check:ai-context

We use Prettier for formatting. Format locally with:

Terminal window
pnpm format

You can check formatting without modifying files:

Terminal window
pnpm format:check

Husky + lint-staged will format staged files automatically on commit.

Terminal window
# Unit tests
pnpm test
# End-to-end tests
pnpm test-e2e

If you are adding a feature, include tests and documentation where applicable.

CI also builds and type-checks every example app. Run pnpm typecheck:examples and pnpm build:examples locally if you touched anything under packages/ or examples/ — the examples are now built in CI, not merely type-checked, so a change that compiles against the workspace can still fail there.

  • Use clear, descriptive commit messages.
  • Prefer small, focused PRs.
  • Include tests where applicable.
  • Add or update documentation for public API changes.

AI-assisted contributions are welcome, but contributors are responsible for correctness before opening a PR.

  • Prefer existing IC Reactor patterns over introducing new abstractions.
  • For React integrations, prefer createActorHooks(...) or query/mutation factories (createQuery, createMutation, etc.).
  • Validate generated or AI-written code with tests and examples whenever possible.
  • Update docs and examples when public API usage changes.