Thank you for your interest in contributing to SnapAI! 🎉
- Node.js 18+
- pnpm (recommended) or npm
- OpenAI API key for testing
# Clone the repository
git clone https://github.com/betomoedano/snapai.git
cd snapai
# Install dependencies
pnpm install
# Build the project
pnpm run build
# Test the CLI
./bin/dev.js --help# Start TypeScript compiler in watch mode
pnpm run dev
# In another terminal, test your changes
./bin/dev.js config --openai-api-key sk-your-test-key
./bin/dev.js icon --prompt "test icon"src/
├── commands/ # CLI commands
│ ├── icon.ts # Icon generation command
│ └── config.ts # Configuration command
├── services/ # Core services
│ ├── openai.ts # OpenAI API integration
│ └── config.ts # Configuration management
├── utils/ # Utility functions
│ ├── prompts.ts # Prompt templates
│ └── validation.ts # Input validation
├── types.ts # TypeScript definitions
└── index.ts # CLI entry point
- Use the GitHub issue tracker
- Include clear reproduction steps
- Provide error messages and logs
- Check existing issues first
- Describe the use case clearly
- Explain why it would be valuable
- Fix typos, improve documentation
- Submit a pull request directly
- Open an issue first to discuss
- Get feedback before implementing
- Keep changes focused and atomic
- Use TypeScript
- Follow existing code patterns
- Add JSDoc comments for public APIs
- Use meaningful variable names
# Run linting
pnpm run lint
# Build to check for errors
pnpm run build
# Test CLI functionality
./bin/dev.js --help- Use conventional commits format
- Examples:
feat: add Android icon supportfix: handle API rate limitingdocs: update installation guide
- 🤖 Better prompt engineering
- 📱 Android adaptive icon support
- 🎨 Additional icon sizes/formats
- 📚 Better documentation
- 🐛 Bug fixes and improvements
- 🚀 Performance optimizations
- 🎨 Splash screen generation
- 🔧 Better error handling
- ✨ CLI UX improvements
- 🌟 New creative features
- 🔌 Integration with design tools
- 📊 Usage analytics (privacy-focused)
- 🎯 Platform-specific optimizations
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Test thoroughly
- Commit with clear messages
- Push to your branch
- Open a pull request
- Code builds without errors
- Changes are tested manually
- Documentation updated if needed
- Commit messages are clear
- PR description explains the changes
- Be respectful and inclusive
- Focus on constructive feedback
- Help newcomers feel welcome
- Celebrate diverse perspectives
- 💬 GitHub Discussions: Ask questions, share ideas
- 🐛 GitHub Issues: Report bugs, request features
- 📧 Email: Contact maintainers for sensitive topics
Contributors will be:
- Added to the contributors list
- Mentioned in release notes
- Credited in documentation
Thank you for helping make SnapAI better! 🚀