{"id":49407681,"url":"https://github.com/o2sa/devimpact","last_synced_at":"2026-04-28T22:04:37.347Z","repository":{"id":350124068,"uuid":"1191090509","full_name":"O2sa/DevImpact","owner":"O2sa","description":"A smart platform to compare developers by real impact in open-source — not just stars and followers","archived":false,"fork":false,"pushed_at":"2026-04-24T18:11:09.000Z","size":288,"stargazers_count":12,"open_issues_count":7,"forks_count":12,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-24T20:17:02.478Z","etag":null,"topics":["analytics","comparison","dashboard","data-visualization","developer-tools","github","github-api","graphql","nextjs","nodejs","octokit","react","scoring-system","typescript"],"latest_commit_sha":null,"homepage":"https://dev-impact-mocha.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/O2sa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-24T22:59:42.000Z","updated_at":"2026-04-24T18:16:25.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/O2sa/DevImpact","commit_stats":null,"previous_names":["o2sa/devimpact"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/O2sa/DevImpact","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/O2sa%2FDevImpact","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/O2sa%2FDevImpact/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/O2sa%2FDevImpact/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/O2sa%2FDevImpact/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/O2sa","download_url":"https://codeload.github.com/O2sa/DevImpact/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/O2sa%2FDevImpact/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32400914,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-28T19:38:08.556Z","status":"ssl_error","status_checked_at":"2026-04-28T19:37:55.688Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["analytics","comparison","dashboard","data-visualization","developer-tools","github","github-api","graphql","nextjs","nodejs","octokit","react","scoring-system","typescript"],"created_at":"2026-04-28T22:04:35.592Z","updated_at":"2026-04-28T22:04:37.337Z","avatar_url":"https://github.com/O2sa.png","language":"TypeScript","readme":"# 🚀 DevImpact\n\n![License](https://img.shields.io/github/license/o2sa/devimpact)\n![Stars](https://img.shields.io/github/stars/o2sa/devimpact)\n![Forks](https://img.shields.io/github/forks/o2sa/devimpact)\n![Issues](https://img.shields.io/github/issues/o2sa/devimpact)\n![Pull Requests](https://img.shields.io/github/issues-pr/o2sa/devimpact)\n![Last Commit](https://img.shields.io/github/last-commit/o2sa/devimpact)\n\n![Next.js](https://img.shields.io/badge/Next.js-16+-black?logo=next.js)\n![TypeScript](https://img.shields.io/badge/TypeScript-blue?logo=typescript)\n![Node.js](https://img.shields.io/badge/Node.js-green?logo=node.js)\n![GraphQL](https://img.shields.io/badge/GraphQL-pink?logo=graphql)\n\n## Preview\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./public/screenshots/screenshot.png\" alt=\"DevImpact comparison tables and analytics chart\" width=\"900\"\u003e\n\u003c/p\u003e\n\n**DevImpact** is an open-source platform that compares software developers based on their real impact in the open-source ecosystem — not just raw numbers.\n\nIt evaluates developers using a smart scoring system that considers:\n\n- Repository quality 📦\n- Pull request impact 🔀\n- Community contributions 💬\n\n---\n\n## 🌟 Why DevImpact?\n\nTraditional metrics (followers, stars, commit counts) are often misleading.\n\nDevImpact focuses on:\n\n- ✅ Quality over quantity\n- ✅ Real contributions to valuable projects\n- ✅ Fair comparison between developers\n\n---\n\n## 🧠 Scoring System Overview\n\nEach developer is evaluated using three main scores:\n\n### 📦 Repo Score (Builder Impact)\n\nMeasures the quality and impact of repositories owned by the user.\n\nFactors include:\n\n- Stars ⭐\n- Forks 🍴\n- Watchers\n\n---\n\n### 🔀 PR Score (Contribution Impact)\n\nMeasures contributions to **other developers' repositories**.\n\n✔ Only merged PRs are counted\n✔ PRs to the user's own repositories are excluded\n\nFactors include:\n\n- Target repository quality\n- PR size (additions/deletions)\n- Repository popularity\n- Contribution diversity\n\n---\n\n### 💬 Contribution Score (Community Impact)\n\nMeasures community engagement.\n\nIncludes:\n\n- Issues opened in external repositories\n- Discussions participation\n\n⚠️ Does NOT include commits or PRs (to avoid duplication)\n\n---\n\n### 🏆 Final Score\n\nThe final score is a weighted combination:\n\n```\nFinal Score =\n0.45 × Repo Score +\n0.45 × PR Score +\n0.10 × Contribution Score\n```\n\n👉 The ContributionScore is capped to prevent abuse.\n\n---\n\n## ⚖️ Key Design Principles\n\n- ❌ No self-inflation (own PRs excluded)\n- 📉 Diminishing returns to prevent spam\n- 🎯 External impact is prioritized\n- ⚖️ Balanced scoring between builders and contributors\n\n---\n\n## 🖥️ Features\n\n- 🔍 Compare two GitHub users side-by-side\n- 📊 Visual score breakdown (charts \u0026 insights)\n- 🧠 Smart ranking system\n- 🌍 Localization support (EN / AR)\n- ⚡ Fast API powered by GitHub GraphQL\n- 🧩 Extensible scoring system\n\n---\n\n\n## 🛠️ Tech Stack\n\n### Frontend\n\n- Next.js (App Router)\n- TypeScript\n- Tailwind CSS\n- Recharts\n\n### API\n\n- Node.js + Express\n- GitHub GraphQL API\n- Octokit\n\n---\n\n## 🚀 Getting Started\n\n### 1. Clone the repo\n\n```bash\ngit clone https://github.com/O2sa/DevImpact.git\ncd DevImpact\n```\n\n---\n\n### 2. Install dependencies\n\n```bash\npnpm install\n```\n\n---\n\n### 3. Set up environment variables\n\nCreate a `.env` file:\n\n```\nGITHUB_TOKEN=your_github_token\n```\n\n---\n\n### 4. Run the app\n\n```bash\npnpm run dev\n```\n\n---\n\n---\n\n## 📡 API Example\n\nThe compare endpoint accepts one or more `username` query parameters.\n\n### Example request\n\n```bash\ncurl \"api/compare?username=devimpact\u0026username=octocat\"\n```\n\n### Example response\n\n```json\n{\n  \"success\": true,\n  \"users\": [\n    {\n      \"username\": \"octocat\",\n      \"name\": \"The Octocat\",\n      \"avatarUrl\": \"https://avatars.githubusercontent.com/u/583231?v=4\",\n      \"repoScore\": 87,\n      \"prScore\": 64,\n      \"contributionScore\": 42,\n      \"finalScore\": 73,\n      \"topRepos\": [],\n      \"topPullRequests\": []\n    }\n  ]\n}\n```\n\n## 🌍 Localization\n\n- Supported languages: English 🇺🇸, Arabic 🇸🇦\n- Automatically detects user language\n- Allows manual switching\n- Easy to add new languages via `/locales`\n\n---\n\n## 🤝 Contributing\n\nContributions are welcome!\n\n### How to contribute:\n\n1. Fork the repository\n2. Create a feature branch\n3. Commit your changes\n4. Open a pull request\n\n---\n\n### Contribution ideas:\n\n- Improve scoring algorithm\n- Add new metrics\n- Enhance UI/UX\n- Add new languages 🌍\n\n---\n\n## ⚠️ Limitations\n\n- GitHub API rate limits\n- Some private contributions are not accessible\n- Scoring system is heuristic (not perfect)\n\n---\n\n## 💡 Inspiration\n\nDevImpact was created to answer a simple question:\n\n\u003e “Who really has more impact in open-source?”\n\n---\n\n## ⭐ Support\n\nIf you like this project:\n\n- ⭐ Star the repo\n- 🐛 Report issues\n- 💡 Suggest features\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fo2sa%2Fdevimpact","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fo2sa%2Fdevimpact","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fo2sa%2Fdevimpact/lists"}