GitHub Star Growth Tracker β Track star counts, detect milestones, analyze growth trends, and get notifications. Zero dependencies.
Every open-source maintainer wants to know: "How's my repo growing?" StarPulse gives you:
- π Growth analytics β Track daily/weekly/monthly star growth rates
- π― Milestone detection β Get notified when you hit 100, 1K, 10K stars
- π Star predictions β Forecast future star counts using linear regression
- π Discord & webhook notifications β Celebrate milestones in real-time
- π Reports β Generate text or JSON growth reports
- π€ CSV/JSON export β Export data for further analysis
- πͺΆ Zero dependencies β Uses only Node.js built-in modules
# Install globally
npm install -g starpulse
# Or use with npx (no install needed)
npx starpulse add facebook/react
# Start tracking a repo
starpulse add facebook/react
# β
Now tracking facebook/react
# β 224,000 stars | π΄ 46,000 forks
# Fetch latest data
starpulse track facebook/react
# β facebook/react: 224,100 stars (β+100)
# Track all your repos at once
starpulse track-all
# View growth report
starpulse report facebook/reactβββββββββββββββββββββββββββββββββββββββ
β StarPulse Report: facebook/react
βββββββββββββββββββββββββββββββββββββββ
Current Stars: 224,100
Growth: β +100 (+0.04%)
Daily Rate: 3.5 stars/day
Total Growth: +500 (+0.22%)
Period: 14d 6h
βββ Trend βββ
2025-01-10: 223500 β 223700 (+200) ββββ
2025-01-11: 223700 β 223800 (+100) ββ
2025-01-12: 223800 β 223900 (+100) ββ
2025-01-13: 223900 β 223950 (+50) β
2025-01-14: 223950 β 224050 (+100) ββ
2025-01-15: 224050 β 224100 (+50) β
βββ Prediction βββ
In 30 days: ~224,205 stars
Daily growth rate: 3.5 stars/day
Confidence: Good
βββββββββββββββββββββββββββββββββββββββ
| Command | Description |
|---|---|
starpulse add <owner/repo> |
Start tracking a repository |
starpulse remove <owner/repo> |
Stop tracking a repository |
starpulse track <owner/repo> |
Fetch latest data for a repo |
starpulse track-all |
Fetch latest data for all tracked repos |
starpulse list |
List all tracked repositories |
starpulse report <owner/repo> [text|json] |
Show growth report |
starpulse export <owner/repo> [csv|json] |
Export tracking data |
starpulse config [key] [value] |
Get/set configuration |
starpulse rate-limit |
Check GitHub API rate limit |
Without a token, you're limited to 60 API requests/hour. With a token: 5,000/hour.
# Set via CLI
starpulse config token ghp_your_token_here
# Or via environment variable
export GITHUB_TOKEN=ghp_your_token_here# Discord webhook
starpulse config notifications.discord https://discord.com/api/webhooks/...
# Generic webhook
starpulse config notifications.webhook https://your-server.com/webhookEdit ~/.starpulse/config.json:
{
"milestones": [50, 100, 250, 500, 1000, 2500, 5000, 10000, 50000, 100000]
}const { StarTracker } = require('starpulse');
const tracker = new StarTracker({
token: 'ghp_your_token', // Optional GitHub token
discordWebhook: 'https://...', // Optional Discord webhook
dataDir: '/custom/path' // Optional custom data directory
});
// Add a repo
const info = await tracker.addRepo('facebook', 'react');
console.log(`${info.stars} stars`);
// Track (fetch latest + check milestones)
const result = await tracker.track('facebook', 'react');
if (result.milestone) {
console.log(`π Hit ${result.milestone} stars!`);
}
// Get growth report
const report = tracker.getReport('facebook', 'react', 'text');
console.log(report);
// Export data
const csv = tracker.export('facebook', 'react', 'csv');
// List tracked repos
const repos = tracker.list();
repos.forEach(r => console.log(`${r.repo}: ${r.stars} stars`));Set up automatic tracking every hour:
# Add to crontab (crontab -e)
0 * * * * /usr/local/bin/starpulse track-all >> ~/.starpulse/cron.log 2>&1Or use with GitHub Actions:
name: Star Tracker
on:
schedule:
- cron: '0 */6 * * *' # Every 6 hours
jobs:
track:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm install -g starpulse
- run: starpulse config token ${{ secrets.GITHUB_TOKEN }}
- run: starpulse add owner/repo
- run: starpulse track-all
- run: starpulse report owner/repo json >> reports/$(date +%Y%m%d).jsonStarPulse is free and open-source with a clear upgrade path:
- β Track up to 10 repos
- β Basic growth reports
- β CSV/JSON export
- β Discord webhook notifications
- π Unlimited repos
- π§ Email notifications (milestones, daily/weekly digests)
- π Advanced analytics (comparison, benchmarks vs similar repos)
- π€ Auto-tracking via cloud service (no cron needed)
- π¨ Custom dashboards (web UI)
- π± Slack & Microsoft Teams notifications
- π₯ Team sharing & org-level tracking
- π Portfolio analytics (track all org repos)
- π API access for integrations
- π Scheduled PDF reports
- π·οΈ White-label options
| Scenario | Users | Pro Conversion | Monthly Revenue |
|---|---|---|---|
| Conservative | 500 | 5% | $125 |
| Moderate | 2,000 | 8% | $800 |
| Optimistic | 10,000 | 10% | $5,000 |
- Real pain point β No simple, focused star tracking tool exists
- Developer audience β Willing to pay for dev tools ($5/mo is nothing)
- Viral potential β Open source users share with other maintainers
- Sticky product β Historical data makes switching costly
- Natural upgrade path β Free users hit limits and upgrade
# Run tests
npm test
# Run CLI locally
node bin/starpulse.js add facebook/reactstarpulse/
βββ src/
β βββ index.js # Main exports
β βββ tracker.js # Core tracker orchestrator
β βββ github.js # GitHub API client (native https)
β βββ storage.js # Local JSON storage
β βββ notifier.js # Discord/webhook notifications
β βββ reporter.js # Analytics & report generation
β βββ cli.js # CLI interface
βββ bin/
β βββ starpulse.js # CLI entry point
βββ test/
β βββ test.js # Test suite (14 tests)
βββ package.json
βββ README.md
βββ LICENSE
MIT Β© Mike Wang