Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

⭐ StarPulse

GitHub Star Growth Tracker β€” Track star counts, detect milestones, analyze growth trends, and get notifications. Zero dependencies.

npm version License: MIT Zero Dependencies

Why StarPulse?

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

Quick Start

# 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

Report Example

═══════════════════════════════════════
  ⭐ 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

═══════════════════════════════════════

CLI Commands

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

Configuration

GitHub Token (Recommended)

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

Create a GitHub token β†’

Notifications

# Discord webhook
starpulse config notifications.discord https://discord.com/api/webhooks/...

# Generic webhook
starpulse config notifications.webhook https://your-server.com/webhook

Custom Milestones

Edit ~/.starpulse/config.json:

{
  "milestones": [50, 100, 250, 500, 1000, 2500, 5000, 10000, 50000, 100000]
}

Programmatic API

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`));

Automation with Cron

Set up automatic tracking every hour:

# Add to crontab (crontab -e)
0 * * * * /usr/local/bin/starpulse track-all >> ~/.starpulse/cron.log 2>&1

Or 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).json

πŸ’° Monetization Strategy

StarPulse is free and open-source with a clear upgrade path:

Free Tier (npm package)

  • βœ… Track up to 10 repos
  • βœ… Basic growth reports
  • βœ… CSV/JSON export
  • βœ… Discord webhook notifications

Pro Tier ($5/month or $49/year)

  • πŸ”“ 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

Business Tier ($19/month or $189/year)

  • πŸ‘₯ Team sharing & org-level tracking
  • πŸ“ˆ Portfolio analytics (track all org repos)
  • πŸ”— API access for integrations
  • πŸ“‹ Scheduled PDF reports
  • 🏷️ White-label options

Revenue Projections

Scenario Users Pro Conversion Monthly Revenue
Conservative 500 5% $125
Moderate 2,000 8% $800
Optimistic 10,000 10% $5,000

Why This Works

  1. Real pain point β€” No simple, focused star tracking tool exists
  2. Developer audience β€” Willing to pay for dev tools ($5/mo is nothing)
  3. Viral potential β€” Open source users share with other maintainers
  4. Sticky product β€” Historical data makes switching costly
  5. Natural upgrade path β€” Free users hit limits and upgrade

Development

# Run tests
npm test

# Run CLI locally
node bin/starpulse.js add facebook/react

Architecture

starpulse/
β”œβ”€β”€ 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

License

MIT Β© Mike Wang

About

Track GitHub repo star growth with notifications and analytics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages