Support & Contributing
We welcome contributions and are here to help you succeed with expo-iap!
Getting Help
Documentation
- Check our comprehensive documentation
- Review the FAQ for common questions
- Browse examples for implementation patterns
Community Support
- GitHub Issues: Report bugs or request features
- Discussions: Ask questions and share ideas
- Stack Overflow: Tag your questions with
expo-iap
Before Asking for Help
- Search existing issues - Your question might already be answered
- Check the troubleshooting guide - Many common issues are covered
- Provide a minimal reproduction - This helps us help you faster
- 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
- Clear steps to reproduce the issue
- Expected behavior
- Actual behavior
- 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
- Bug Reports: Help us identify and fix issues
- Feature Requests: Suggest new features or improvements
- Documentation: Improve docs, add examples, fix typos
- Code: Submit bug fixes or new features
- Testing: Test new releases and provide feedback
- Community: Help others in discussions and issues
Development Setup
-
Fork the repository
git clone https://github.com/your-username/expo-iap.git
cd expo-iap -
Install dependencies
npm install
# or
yarn install
# or
bun install -
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
-
Create a feature branch
git checkout -b feature/your-feature-name
-
Make your changes
- Write clear, maintainable code
- Add tests for new features
- Update documentation as needed
-
Test your changes
npm test
npm run lint
npm run type-check -
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
- Enhanced error handling and debugging
- Performance optimizations
- Better TypeScript definitions
- Improved testing coverage
- 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:
- GitHub Sponsors
- One-time donations
- Corporate sponsorship
Your support helps maintain and improve the project for everyone.
Contact
Maintainers
- Primary Maintainer: @hyochan
- Core Team: See contributors
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. 🚀