- Prerequisites
- System Requirements
- Initial Setup
- Install Dependencies
- Available Commands
- Development Commands
- Best Practices
- Documentation
- Extending the Application
- External Resources
- Node.js: Version 14 or higher
- Package Manager: npm
- Operating System: macOS, Linux, or Windows
- Memory: 1GB RAM minimum
- Disk Space: 100MB for application and dependencies
- Active Stack Overflow account
- Development/test account recommended for testing
- Credentials configured in the application
- Basic understanding of command line/terminal
- Familiarity with Node.js and npm
- Understanding of web automation concepts (helpful but not required)
-
Clone the repository:
git clone https://github.com/orassayag/stackoverbot.git cd stackoverbot -
Configure the application:
- Set up your Stack Overflow credentials
- Configure target tags for voting
- Adjust rate limiting and delay settings
Install all required dependencies:
npm install- Open the project in your IDE (VSCode recommended)
- Install dependencies:
npm install
- Configure the project (see Configuration section below)
- Run the application:
npm start
Create a configuration file (or update existing settings) with the following parameters:
- Development Account: Use a dedicated Stack Overflow account for testing
- Authentication: Configure Stack Overflow credentials securely (environment variables recommended)
- Session Management: Handle cookies and session persistence
- Vote Count: Number of random votes per run (default: 20)
- Target Tags: Specific Stack Overflow tags to target for voting
- Edit Count: Number of posts to edit per run
- Rate Limiting: Delays between operations to avoid detection
Configure patterns to detect spelling mistakes:
- Lowercase first letter in questions (outside code blocks)
- Common spelling mistakes
- Score calculation thresholds for multi-mistake posts
Crawls Stack Overflow and casts votes on random questions with specific tags:
npm run voteWhat it does:
- Authenticates with Stack Overflow
- Finds questions matching configured tags
- Randomly selects questions
- Casts upvotes/downvotes based on configuration
- Logs all actions
Finds and fixes spelling mistakes on Stack Overflow posts:
npm run fixWhat it does:
- Scans posts for spelling patterns
- Identifies mistakes outside code snippets
- Calculates score for multiple mistakes
- Suggests or applies edits
- Logs corrections made
Combines voting and editing in a single daily run:
npm run dailyWhat it does:
- Performs configured number of votes (default: 20)
- Edits configured number of posts
- Respects rate limits
- Generates daily report
Before running on production:
- Create a development Stack Overflow account
- Run the bot for 2-3 weeks on the test account
- Verify no captcha challenges appear
- Monitor for any blocks or warnings
- Adjust rate limiting and delays as needed
- Enable verbose logging in configuration
- Check browser console for errors
- Review Puppeteer screenshots on failures
- Monitor network requests
- This bot should only be used ethically and in compliance with Stack Overflow's terms of service
- Always test on development accounts first
- Implement proper rate limiting
- Respect captcha challenges
- Do not spam or abuse the platform
- Add delays between operations (recommended: 5-10 seconds)
- Limit daily operations to reasonable numbers
- Monitor for rate limit errors
- Implement exponential backoff on failures
- If captcha appears, stop automation
- Log captcha occurrences
- Adjust rate limiting parameters
- Consider longer delays between operations
Always create a backup before making changes:
npm run backupWhen making changes:
- Perform backup
- Test changes on development account
- Update documentation if needed
- Commit and push to Git repository
- Update backups to external storage
Authentication Failures:
- Verify credentials are correct
- Check if cookies have expired
- Re-authenticate manually and capture new session
Captcha Challenges:
- Reduce operation frequency
- Increase delays between actions
- Consider human-like randomization
Element Not Found:
- Stack Overflow UI may have changed
- Update selectors in configuration
- Review page structure with browser dev tools
Rate Limiting:
- Reduce operations per run
- Increase delays
- Check Stack Overflow API limits
Main Application:
# Start the application
npm startAutomation Scripts:
# Run vote script
npm run vote
# Run fix script
npm run fix
# Run daily automation script
npm run daily
# Create backup
npm run backupCode Quality:
# Lint code
npm run lint
# Format code (if configured)
npm run format- Test First: Always test on a development account for 2-3 weeks
- Rate Limiting: Implement generous delays between operations
- Captcha Respect: Stop automation if captcha appears
- Quality Edits: Only make edits that genuinely improve content
- No Spam: Avoid repetitive or low-quality actions
- Transparency: Consider disclosing bot usage where appropriate
-
Regular Maintenance:
- Review logs periodically
- Update dependencies regularly
- Backup configuration before changes
-
Monitoring:
- Check for any warnings and errors
- Monitor bot activity
- Verify changes made
-
Security:
- Never commit credentials
- Use environment variables for secrets
- Keep dependencies updated
- README.md - Project overview and features
- CONTRIBUTING.md - Development guidelines
- CHANGELOG.md - Version history
- CODE_OF_CONDUCT.md - Code of conduct
- SECURITY.md - Security policy
- Create a new script file in
src/scripts/ - Export the script function
- Add a script entry in
package.json - Update documentation in
INSTRUCTIONS.mdandREADME.md
Example:
// src/scripts/my-script.js
export async function myScript() {
// Implementation
}- Or Assayag - Initial work - orassayag
- Or Assayag orassayag@gmail.com
- GitHub: https://github.com/orassayag
- StackOverflow: https://stackoverflow.com/users/4442606/or-assayag?tab=profile
- LinkedIn: https://linkedin.com/in/orassayag
Last Updated: June 2026 Version: 1.0.0