Thank you for your interest in contributing to SocialCrabs! This document provides guidelines and information for contributors.
By participating in this project, you agree to abide by our Code of Conduct: be respectful, inclusive, and constructive.
- Check existing issues to avoid duplicates
- Use the bug report template
- Include:
- Clear description
- Steps to reproduce
- Expected vs actual behavior
- Environment details (OS, Node version, browser)
- Relevant logs/screenshots
- Check existing issues/discussions
- Open a feature request with:
- Clear use case
- Proposed solution
- Alternatives considered
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes
- Run tests:
npm test - Run linting:
npm run lint - Commit with descriptive message
- Push and open a Pull Request
# Clone your fork
git clone https://github.com/YOUR_USERNAME/socialcrabs.git
cd socialcrabs
# Install dependencies
npm install
# Install Playwright browsers
npx playwright install chromium
# Copy environment file
cp .env.example .env
# Run in development mode
npm run dev- TypeScript strict mode
- ESLint configuration
- Prettier for formatting
- Meaningful variable/function names
- JSDoc comments for public APIs
- Write tests for new features
- Ensure existing tests pass
- Test against multiple platforms when possible
Follow conventional commits:
feat: add Instagram story support
fix: handle rate limit errors gracefully
docs: update README with new examples
chore: update dependencies
When updating platform selectors:
- Test thoroughly on the live platform
- Use stable selectors (data-testid, aria-labels preferred)
- Document selector purpose
- Add fallback selectors when possible
- Never commit credentials or API keys
- Report security vulnerabilities privately
- Follow secure coding practices
Open a discussion or reach out to maintainers.
Thank you for contributing! 🦞