Automated GitHub profile statistics generator with beautiful SVG visualizations and AI-powered repository analysis
Live Site: https://github-stats.makeboldspark.com
π View Sample Analysis Report - See real-world output with AI-powered insights π¨ View Interactive Dashboard - Explore repositories with live visualizations
GitHubStatsSpark is a comprehensive GitHub analytics suite that transforms GitHub activity into actionable insights and stunning visualizations, combining automated SVG profile statistics with AI-powered repository analysis and an interactive mobile-first dashboard.
Live Site: https://github-stats.makeboldspark.com
Built by Mark Hazleton β Mark Hazleton, Solutions Architect GitHubStatsSpark is part of the Make Bold Spark portfolio of technical demonstrations.
Stats Spark is a comprehensive GitHub analytics suite that transforms your GitHub activity into actionable insights and stunning visualizations. It combines automated SVG generation for profile statistics with AI-powered repository analysis to give you a complete picture of your development work.
Perfect for:
- π¨βπ» Developers wanting to showcase their GitHub activity professionally
- π Teams analyzing repository health and contribution patterns
- π― Technical leaders reviewing developer productivity and technology usage
- π Open source maintainers tracking project momentum and community engagement
- Automated Weekly Updates: GitHub Actions workflow runs at midnight UTC on Sundays
- 6 Visual Categories: Overview, heatmap, languages, streaks, fun stats, and release cadence
- Unique Spark Score: 0-100 metric combining consistency, volume, and collaboration
- Theme Customization: Dark, light, and custom themes with WCAG AA accessibility
- Zero Maintenance: Set it once, updates automatically every week
- Intelligent Repository Ranking: Composite algorithm weighing popularity, activity, and health
- AI-Generated Summaries: Claude Haiku creates technical summaries with 97%+ success rate
- Developer Profiling: Technology diversity, activity patterns, contribution classification
- Comprehensive Reports: GitHub-flavored markdown with embedded visualizations
- Performance Optimized: Under 5 minutes for up to 500 repositories with smart caching
- Mobile-First Design: Touch-optimized interface with 44x44px touch targets and responsive layouts (320px-768px viewports)
- Bottom Sheet Navigation: Native mobile patterns for filters, sort controls, and detailed views
- Swipe Gestures: Touch-friendly interactions including swipe-to-delete and horizontal navigation
- Needs Attention View: Ranks repositories by combined security alerts, PR backlog, dependency drift, and staleness
- Visual Analytics: Interactive Chart.js + react-chartjs-2 visualizations optimized for mobile with touch tooltips
- Drill-Down Details: Comprehensive repository analysis with commit history, enriched dependency coverage, and rendered markdown summaries
- Export Functionality: Download filtered data as CSV or JSON
- Performance Optimized: Lighthouse CI configured targeting <2s First Contentful Paint with 0.9+ performance score
- Offline Support: IndexedDB caching with Dexie for offline access and 7-day retention
- Accessibility: WCAG 2.1 AA compliant with screen reader support and keyboard navigation
- GitHub Pages Deployment: Automatically updates with your latest statistics
- Smart Caching: Intelligent API request optimization
- Rate Limit Handling: Automatic retry with exponential backoff
- Flexible Configuration: YAML-based configuration for all options
- Local Development: Full CLI for testing before deployment
- Extensible Architecture: Modular design for easy customization
Stats Spark automatically analyzes your GitHub activity and generates stunning SVG visualizations that you can embed in your profile README. Get insights into your coding patterns, track your streaks, and showcase your Spark Score!
Generate beautiful, embeddable SVG visualizations that update automatically:
- β‘ Spark Score: Unique 0-100 metric (40% consistency, 35% volume, 25% collaboration)
- π Key Metrics: Total commits, repositories, languages, active days
- β° Activity Patterns: Identify your peak coding hours (night owl, early bird, daytime coder)
- β‘ Lightning Rating: 1-5 bolts based on your overall activity level
- π Calendar View: GitHub-style contribution calendar
- π₯ Intensity Visualization: Color-coded commit frequency
- π Pattern Recognition: Identify consistency and work rhythms
- π Technology Stack: Comprehensive language breakdown with percentages
- π Visual Distribution: Clean bar charts showing language usage
- π― Diversity Metrics: Track your polyglot programming journey
- π₯ Current Streak: Active coding streak counter
- π Longest Streak: Your personal best
- π Consistency Tracking: Visualize regular contribution patterns
8 personality-driven achievements with emoji flair:
- π¦ Coding Time Personality: Night Owl, Early Bird, or Daytime Coder
- π Commit Velocity: From "Quality over Quantity" to "Commit Machine"
- π Repository Collection: Achievement tiers from Focused to Collector
- π Language Diversity: Specialist to Polyglot Programmer
- β Community Recognition: Stars earned across all repositories
- ποΈ Account Longevity: Experience badges from newcomer to veteran
- π₯ Commit Milestones: Total commits with achievement levels
- π Pattern Personality: Custom messages based on coding style
- π Sparklines: Weekly and monthly repository diversity
- π Activity Breadth: Highlights how many unique repositories were touched in each period, not raw commit volume
- π Trend Visualization: Track activity patterns over time
Generate comprehensive markdown reports with intelligent insights:
- 30% Popularity Weight: Stars and forks from community engagement
- 45% Activity Weight: Recent commits with time-decay (90d/180d/365d windows)
- 25% Health Weight: Documentation, licensing, and maintenance signals
- Smart Algorithm: Balances established projects with active development
- Schema 2.3.0: Unified repository records now include
attention_score,attention_rank,attention_metrics,diagnostics_summary, andscreenshot_audit - Dependency Coverage:
tech_stacknow tracks known versions, registry resolution coverage, and unknown-version gaps - Maintenance Signals: Attention scoring blends PR pressure, security findings, staleness, and dependency health
- Markdown-Aware UI: AI summaries are rendered as GitHub-flavored markdown in both desktop and mobile drill-down views
- Claude Haiku Integration: Enterprise-grade AI summaries for each repository
- Three-Tier Fallback: Claude β README extraction β Basic metadata
- 97%+ Success Rate: Consistent high-quality summaries
- Technical Focus: Architecture, tech stack, use cases, and unique features
- Technology Diversity: Language usage patterns and specialization metrics
- Activity Patterns: Coding time preferences and consistency analysis
- Contribution Classification: Creator, contributor, maintainer patterns
- Observable Trends: Long-term patterns and development focus areas
- GitHub-Flavored Markdown: Perfect formatting for GitHub rendering
- Embedded Visualizations: Includes all SVG statistics inline
- Rich Metadata: Stars, forks, commits, languages, file sizes
- Quality Indicators: License and documentation status badges
- Navigation: Quick links to jump between sections
- β‘ Fast: Under 5 minutes for up to 500 repositories
- π Smart Caching: Reduces API calls by 80%+ through content-addressed cache invalidation (keyed by
pushed_attimestamp) - π§ Intelligent Refresh: Only updates repositories with new commits
- π‘οΈ Rate Limit Safe: Automatic handling and retry logic
- π Progress Tracking: Real-time feedback during generation
- βΏ Accessible: WCAG AA compliant visualizations
- π― Selective Output: Choose which statistics and reports to generate
- π₯οΈ Local CLI: Full command-line interface for testing and development
- π YAML Configuration: Centralized configuration for themes, options, and behavior
- π GitHub Actions: Pre-configured workflow for automated weekly updates
- π¨ Custom Themes: Define your own color schemes and styles
- π¦ Modular Architecture: Clean separation of concerns for easy extension
- π§ͺ Comprehensive Tests: 19+ Python test modules (target: 80%+ core module coverage)
- π Full Documentation: Detailed guides, API reference, and examples
The easiest way to run the complete 4-phase pipeline:
# Windows PowerShell
.\run-spark.ps1 -User YOUR_USERNAME -IncludeAI -Verbose
# Preserve outputs for multiple users side by side
.\run-spark.ps1 -User YOUR_USERNAME -MultiUser
# Check environment first
.\run-spark.ps1 -CheckOnlyScript handles:
- β Environment validation (virtual env, tokens, config)
- β Python package installation
- β Cache management
- β Complete 4-phase pipeline execution
- β Output verification and summary
Options:
-User- GitHub username (default: markhazleton)-IncludeAI- Generate AI summaries-MultiUser- Store outputs under per-user folders instead of overwriting shared files-ClearCache- Clear all caches before running-ForceRefresh- Force refresh all data-Screenshots- Capture repository website screenshots (requires Playwright)-MissingOnly- Only capture screenshots where PNG doesn't exist yet-Verbose- Enable detailed logging-CheckOnly- Validate environment only
For direct Python CLI usage:
# 1. Install dependencies
python -m venv .venv
source .venv/bin/activate # Unix/Mac
# .\.venv\Scripts\Activate.ps1 # Windows
pip install -r requirements.txt
pip install -e .
# 2. Set environment variables
export GITHUB_TOKEN=your_github_token_here
export ANTHROPIC_API_KEY=your_anthropic_key_here # Optional
# 3. Run unified command
spark unified --user YOUR_GITHUB_USERNAME --include-ai-summariesThis single command generates:
- β
/data/repositories.json- Complete unified dataset for frontend - β
/output/users/{username}/*.svg- All 6 visual analytics (overview, heatmap, languages, streaks, fun, release) - β
/output/users/{username}/reports/*.md- Comprehensive markdown analysis report - β AI summaries for each repository (if API key provided)
Notable unified data additions in schema 2.3.0:
- β Attention ranking fields for maintenance triage
- β Pull request and security summary payloads with explicit availability semantics
- β Enriched dependency version coverage and latest-version resolution metrics
- β Diagnostics summary and screenshot audit payloads for public-repo reputation checks
Benefits:
- π ~60% faster than separate commands
- πΎ Single API pass (fewer rate limit issues)
- π― Consistent data snapshot across all outputs
- β‘ Optimized data gathering and caching
Testing/Debugging Options:
# Test with only 2 repositories (fast cache validation)
spark unified --user YOUR_USERNAME --max-repos 2
# Force refresh all data (bypass cache)
spark unified --user YOUR_USERNAME --force-refresh
# Verbose logging for debugging
spark unified --user YOUR_USERNAME --verboseSee QUICKSTART_UNIFIED.md for detailed instructions.
Or set up automatic weekly updates:
Click the "Fork" button in the top right to create your own copy.
- Go to Settings β Actions β General
- Select "Allow all actions and reusable workflows"
- Click Save
- Navigate to Actions tab
- Select "Generate GitHub Statistics"
- Click "Run workflow" β "Run workflow"
- Wait 2-5 minutes for completion
Add to your profile README (username/username/README.md):
Replace YOUR_USERNAME with your GitHub username!
Full instructions: Getting Started Guide
Stats Spark generates 6 SVG categories for your GitHub profile:
The Fun Stats visualization now showcases 8 creative measurements with personality:
- π¦ Coding Time Personality - Night Owl, Early Bird, or Daytime Coder
- π Commit Velocity - From "Quality over Quantity" to "Commit Machine"
- π Repository Collection - Achievement tiers from Focused to Collector
- π Language Diversity - Specialist to Polyglot Programmer
- β Community Recognition - Stars earned across all repositories
- ποΈ Account Longevity - Experience badges from newcomer to veteran
- π₯ Commit Milestones - Total commits with achievement levels
- π Pattern Personality - Custom messages based on your coding style
Stats Spark's AI-powered analysis feature generates comprehensive markdown reports that showcase your complete GitHub profile:
-
Profile Overview Section
- Embedded SVG visualizations (all 5 categories)
- Quick navigation links to major sections
- Generation metadata and statistics
-
Top Repositories Listing (default: top 50)
- Ranked by composite algorithm (popularity + activity + health)
- AI-generated technical summaries for each repository
- Rich metadata: stars, forks, languages, commit activity
- Quality indicators: license and documentation badges
- Repository statistics: contributors, file size, commit velocity
-
Developer Profile Insights
- Overall technology diversity and language specialization
- Activity patterns and coding time preferences
- Contribution classification (creator vs. contributor)
- Observable trends and development focus
-
Report Metadata
- Generation timestamp and version information
- AI summary success rate and coverage statistics
- Tool attribution and data sources
The sample report demonstrates:
- β 37 repositories analyzed with AI-powered summaries
- β Detailed technical summaries for each major project
- β Complete activity visualizations and metrics
- β Professional GitHub-flavored markdown formatting
- β Easy navigation and comprehensive insights
The Spark Score is a 0-100 metric reflecting your GitHub activity:
Formula: 40% Consistency + 35% Volume + 25% Collaboration
Lightning Rating: 1-5 bolts based on your score
- β‘β‘β‘β‘β‘ (80-100): Exceptional
- β‘β‘β‘β‘ (60-79): Strong
- β‘β‘β‘ (40-59): Good
- β‘β‘ (20-39): Growing
- β‘ (0-19): Starting
- spark-dark (default): Dark theme with electric blue and gold
- spark-light: Light theme with WCAG AA colors
- custom: Define your own in
config/themes.yml
See Configuration Guide for theme customization.
Stats Spark provides a comprehensive command-line interface for local development and testing.
# Clone the repository
git clone https://github.com/YOUR_USERNAME/github-stats-spark.git
cd github-stats-spark
# Install dependencies
pip install -r requirements.txt
# Set up environment variables
export GITHUB_TOKEN=your_github_token
export ANTHROPIC_API_KEY=your_anthropic_key # Optional for AI summariesCreate beautiful visualizations for your GitHub profile:
# Generate all statistics
spark generate --user YOUR_USERNAME
# Use custom theme (via config file)
spark generate --user YOUR_USERNAME --output-dir ./my-stats
# Force refresh all data (bypass cache)
spark generate --user YOUR_USERNAME --force-refresh
# Generate dashboard JSON data
spark generate --user YOUR_USERNAME --dashboard
# Preview theme without generating
spark preview --theme spark-dark
# Validate configuration
spark config --validateCreate comprehensive markdown reports with repository analysis:
# Analyze top 50 repositories and generate full report
spark analyze --user YOUR_USERNAME
# List top repositories without generating report (dry-run)
spark analyze --user YOUR_USERNAME --list-only
# Customize analysis
spark analyze --user YOUR_USERNAME --top-n 25 --output output/reports
# Generate unified report (SVGs + analysis in one pass)
spark analyze --user YOUR_USERNAME --unified
# Also keep a dated copy alongside the unified report
spark analyze --user YOUR_USERNAME --unified --keep-dated
# Store outputs under per-user folders
spark analyze --user YOUR_USERNAME --unified
# Verbose output for debugging
spark analyze --user YOUR_USERNAME --verboseAnalysis Command Features:
- π Intelligent repository ranking with composite scoring
- π€ AI-powered technical summaries (requires ANTHROPIC_API_KEY)
- π Multi-window activity analysis (90d/180d/365d)
- π€ Developer profile generation with observable patterns
- π GitHub-flavored markdown output with embedded visualizations
- β‘ High performance with smart caching to minimize API calls
Options:
--user USERNAME: GitHub username to analyze (required)--top-n N: Number of top repositories to include (default: 50)--output DIR: Output directory for reports (default: output/reports)--list-only: List top repositories without generating report--unified: Generate unified report (SVGs + analysis) instead of dated report--keep-dated: Also generate dated report when using --unified mode--verbose: Enable detailed logging
See Analyze Command Guide for detailed documentation.
Manage cached data and perform incremental updates:
# Show cache information
spark cache --info
# Show per-repository cache status
spark cache --status --user YOUR_USERNAME
# List repositories needing cache refresh
spark cache --list-refresh-needed --user YOUR_USERNAME
# Clear all cached data
spark cache --clear
# Prune old cache entries (keep last 2 weeks)
spark cache --prune
# Smart incremental refresh (updates only changed repos)
spark refresh --user YOUR_USERNAME
# Refresh and regenerate AI summaries for changed repos
spark refresh --user YOUR_USERNAME --include-ai-summaries
# Clear AI summaries to force regeneration
spark refresh --user YOUR_USERNAME --clear-summariesComprehensive guides and references for all features:
- Getting Started Guide - Complete setup instructions for GitHub Actions
- Configuration Guide - All configuration options and customization
- Embedding Guide - How to embed SVGs in your profile README
- Analyze Command Guide - AI-powered repository analysis deep dive
- API Reference - Developer documentation for core modules
- Changelog - Version history and release notes
- Sample Analysis Report - Real-world output with AI-powered insights
- Theme Gallery - Available themes and customization options
- Issues - Report bugs or request features
- Discussions - Ask questions and share ideas
Problem: Workflow runs but doesn't complete successfully
Solutions:
- Check Actions logs in the Actions tab
- Verify GitHub Actions is enabled: Settings β Actions β General
- Ensure
GITHUB_TOKENpermissions are correct - Check if rate limits were hit (workflow handles automatically)
Problem: Embedded images show broken or don't load
Solutions:
- Verify URLs use your correct username
- Check files exist in
output/users/{username}/directory - Ensure branch name is correct (usually
main) - Try accessing the raw image URL directly
- Clear browser cache and refresh
Example correct URL:
Problem: Getting rate limit errors from GitHub API
Solutions:
- Workflow automatically handles with caching and retries
- For local development, wait for rate limit reset
- Use authenticated requests (GITHUB_TOKEN is recommended)
- Enable caching in configuration
Problem: Repository analysis runs but summaries are missing
Solutions:
- Verify
ANTHROPIC_API_KEYis set correctly - Check API key has sufficient credits/quota
- Review logs for API errors
- Try
--no-aiflag to use README extraction fallback
Problem: Commands fail or produce errors
Solutions:
- Verify Python 3.11+ is installed:
python --version - Install dependencies:
pip install -r requirements.txt - Set environment variables correctly
- Run with
--verboseflag for detailed output - Check configuration with
spark config --validate
Still stuck? We're here to help:
- π Check Getting Started Guide for detailed setup
- π Search existing issues
- π¬ Start a discussion
- π Open a new issue with details
We welcome contributions of all kinds! Stats Spark is an open-source project that thrives on community involvement.
Found an issue? Open a bug report with:
- Clear description of the problem
- Steps to reproduce
- Expected vs. actual behavior
- Environment details (Python version, OS, etc.)
Have an idea? Start a discussion or open a feature request describing:
- The problem you're trying to solve
- Proposed solution or feature
- Use cases and benefits
- Any relevant examples or mockups
Ready to code? We'd love your contributions:
- Fork the repository and create a feature branch
- Make your changes following our code style
- Add tests for new functionality
- Update documentation as needed
- Submit a PR with a clear description
Good First Issues: Look for issues labeled good first issue for beginner-friendly tasks.
- Fix typos or clarify existing docs
- Add examples or tutorials
- Improve code comments
- Create guides for common use cases
- Show how you're using Stats Spark
- Share your custom themes
- Write blog posts or tutorials
- Spread the word on social media
# Clone your fork
git clone https://github.com/YOUR_USERNAME/github-stats-spark.git
cd github-stats-spark
# Install development dependencies
pip install -r requirements-dev.txt
# Run tests
pytest
# Run tests with coverage
pytest --cov=spark --cov-report=html
# View coverage report
start htmlcov/index.html # Windows
open htmlcov/index.html # macOS
xdg-open htmlcov/index.html # Linux- β Follow PEP 8 style guidelines
- β Write descriptive commit messages
- β Add docstrings to public functions/classes
- β Include type hints where appropriate
- β Maintain or improve test coverage (target: 80%+ core modules)
- β Update relevant documentation
For contributors, see API Reference for detailed module documentation including:
- Core modules:
fetcher,calculator,visualizer,summarizer,config - Analysis modules:
ranker,report_generator,unified_report_workflow,unified_data_generator - Cache modules:
cache,cache_manager,cache_status,cache_refresh_strategy - Utilities:
logger,time_utils,screenshot - CLI:
cli,cli_argument_builders,cli_output_layout
Stats Spark maintains comprehensive test coverage to ensure reliability and quality.
# Run all tests
pytest
# Run with detailed output
pytest -v
# Run specific test file
pytest tests/unit/test_calculator.py
# Run tests matching pattern
pytest -k "test_spark_score"
# Run with coverage report
pytest --cov=spark --cov-report=html
# View coverage in browser
start htmlcov/index.html # Windows
open htmlcov/index.html # macOS| Module | Coverage | Status |
|---|---|---|
| visualizer.py | 91% | β Excellent |
| config.py | 88% | β Excellent |
| calculator.py | 87% | β Excellent |
| cache.py | 63% | πΆ Improving |
| ranker.py | 26% | |
| summarizer.py | 19% | |
| fetcher.py | 13% | |
| Overall | 34% | πΆ Improving |
Target: 80%+ coverage for all core modules. A coverage remediation suite is in progress.
tests/
βββ unit/ # Unit tests for individual modules
β βββ test_cache.py
β βββ test_cache_manager.py
β βββ test_calculator.py
β βββ test_cli.py
β βββ test_config.py
β βββ test_dashboard_generator.py
β βββ test_dependency_parser.py
β βββ test_fetcher.py
β βββ test_fetcher_api_version.py
β βββ test_profile_generator.py
β βββ test_ranker.py
β βββ test_report_generator.py
β βββ test_summarizer.py
β βββ test_unified_data_generator_enrichment.py
β βββ test_unified_report_workflow.py
β βββ test_visualizer.py
β βββ test_wcag.py
β βββ ...
βββ integration/ # Integration tests
β βββ test_dependency_analysis.py
β βββ test_unified_repository_enrichment.py
β βββ ...
βββ fixtures/ # Test data and configurations
βββ sample_config.yml
βββ sample_repositories.json
βββ ...
Note: Frontend tests (Vitest) are configured in
frontend/package.jsonbut test files have not yet been written.
MIT License - See LICENSE for details
This project is free and open-source. You can:
- β Use commercially
- β Modify and distribute
- β Use privately
- β Sublicense
Attribution appreciated but not required!
Stats Spark is built on the shoulders of giants:
- PyGithub - GitHub API wrapper for Python
- svgwrite - SVG generation library
- Anthropic Claude - AI-powered repository summaries
- Python 3.11+ - Modern Python features and performance
- GitHub's contribution graph and profile statistics
- Open source community for continuous feedback and ideas
Thank you to all contributors who have helped make Stats Spark better!
If you find Stats Spark useful, please consider giving it a star! β
It helps others discover the project and motivates continued development.
# Your Name

## Activity

## Languages

## Analysis
Check out my [detailed GitHub analysis](output/users/YOUR_USERNAME/reports/YOUR_USERNAME-analysis.md) with AI-powered insights!## Developer Activity

*Updated weekly via [Stats Spark](https://github.com/markhazleton/github-stats-spark)*Create themed sections in your profile:
<div align="center">
# β‘ GitHub Activity Dashboard




</div>Illuminate your GitHub activity with beautiful statistics and AI-powered insights
Quick Start β’ Features β’ Documentation β’ Report Issue β’ Contribute
Made with β€οΈ by developers, for developers