Skip to main content

Support & Contributing

We welcome contributions and are here to help you succeed with expo-iap!

Getting Help

Documentation

Community Support

Before Asking for Help

  1. Search existing issues - Your question might already be answered
  2. Check the troubleshooting guide - Many common issues are covered
  3. Provide a minimal reproduction - This helps us help you faster
  4. Include relevant details - Platform, versions, error messages, etc.

Issue Reporting

When reporting a bug, please include:

Environment Information

- expo-iap version: x.x.x
- Platform: iOS/Android/Both
- OS version: iOS 16.1 / Android 13
- Device: iPhone 14 / Pixel 7
- Development environment: Expo Go / Development Build / Bare workflow

Reproduction Steps

  1. Clear steps to reproduce the issue
  2. Expected behavior
  3. Actual behavior
  4. Minimal code example (if applicable)

Logs and Screenshots

  • Relevant error messages
  • Console logs
  • Screenshots (if UI-related)

Contributing

We welcome contributions of all kinds! Here's how you can help:

Ways to Contribute

  1. Bug Reports: Help us identify and fix issues
  2. Feature Requests: Suggest new features or improvements
  3. Documentation: Improve docs, add examples, fix typos
  4. Code: Submit bug fixes or new features
  5. Testing: Test new releases and provide feedback
  6. Community: Help others in discussions and issues

Development Setup

  1. Fork the repository

    git clone https://github.com/your-username/expo-iap.git
    cd expo-iap
  2. Install dependencies

    npm install
    # or
    yarn install
    # or
    bun install
  3. Run the example project

    cd example
    npm install
    npx expo run:ios # or run:android

Development Guidelines

Code Style

  • Use TypeScript for all new code
  • Follow the existing code style
  • Run linters before submitting: npm run lint
  • Ensure all tests pass: npm test

Commit Messages

Use conventional commit format:

feat: add subscription management feature
fix: resolve Android billing client crash
docs: update installation guide
test: add unit tests for purchase flow

Pull Request Process

  1. Create a feature branch

    git checkout -b feature/your-feature-name
  2. Make your changes

    • Write clear, maintainable code
    • Add tests for new features
    • Update documentation as needed
  3. Test your changes

    npm test
    npm run lint
    npm run type-check
  4. Submit a Pull Request

    • Provide a clear description of changes
    • Link any related issues
    • Include screenshots for UI changes
    • Ensure CI passes

Testing

Running Tests

# Unit tests
npm test

# Type checking
npm run type-check

# Linting
npm run lint

# All checks
npm run validate

Test Coverage

  • Write unit tests for new features
  • Test on both iOS and Android
  • Include edge cases and error scenarios
  • Verify with real devices when possible

Documentation Contributions

Documentation improvements are always welcome:

Types of Documentation Contributions

  • Fix typos and grammar
  • Improve clarity and completeness
  • Add missing examples
  • Update outdated information
  • Translate to other languages

Documentation Setup

cd docs
npm install
npm start

This starts the documentation development server at http://localhost:3000.

Writing Guidelines

  • Use clear, concise language
  • Include code examples
  • Test all code snippets
  • Follow the existing structure
  • Consider different skill levels

Community Guidelines

Code of Conduct

We follow the Contributor Covenant Code of Conduct. Please read it before participating.

Be Respectful

  • Be patient with newcomers
  • Provide constructive feedback
  • Avoid inflammatory language
  • Help maintain a welcoming environment

Best Practices

  • Search before posting
  • Use descriptive titles
  • Stay on topic
  • Follow up on your issues
  • Thank contributors

Recognition

Contributors are recognized in:

  • GitHub contributors list
  • Release notes (for significant contributions)
  • Documentation credits
  • Community highlights

Project Roadmap

Current Priorities

  1. Enhanced error handling and debugging
  2. Performance optimizations
  3. Better TypeScript definitions
  4. Improved testing coverage
  5. Documentation improvements

Future Plans

  • Additional platform support
  • Advanced analytics integration
  • Enhanced subscription management
  • Developer tools and debugging aids

Sponsorship

If expo-iap helps your business, consider sponsoring the project:

Your support helps maintain and improve the project for everyone.

Contact

Maintainers

Channels

  • GitHub: Primary communication channel
  • Email: For security issues or private matters
  • Social: Follow updates on social media

License

expo-iap is licensed under the MIT License.

Contributing License Agreement

By contributing, you agree that your contributions will be licensed under the same MIT License.


Thank you for using and contributing to expo-iap! Together, we're building the best in-app purchase solution for the Expo and React Native ecosystem. 🚀