AI-Powered Developer Intelligence Platform
DevPulse
Connects to your GitHub, turns your commit/PR history into insights, and — via its flagship OS Finder — ranks open-source repos by how friendly they are to new contributors. A three-service Dockerized monorepo with real-time sync and three distinct AI features.
The problem
GitHub knows everything about how you code but tells you almost nothing useful about it, and finding a realistic open-source project to contribute to is mostly guesswork. DevPulse closes both gaps: it mines your own activity for patterns and surfaces perfectly-matched repos scored on real contributor-friendliness signals — not just star counts.
Architecture & approach
A monorepo of three independent services orchestrated via Docker Compose: a Next.js 14 frontend, a NestJS 11 backend, and a Python/Flask analytics microservice, over PostgreSQL 15 and Redis 7.
GitHub OAuth 2.0 through Passport.js issues short-lived JWT access tokens (15m) plus refresh tokens (7d) with silent refresh; each user's GitHub token is stored encrypted with crypto-js.
A sync engine pulls repos, commits and PRs from the GitHub REST API on a node-cron schedule (every 6h), while Socket.IO streams live sync progress to the dashboard; the Flask service computes commit patterns and language distribution behind the heatmaps and streak charts.
OpenRouter (GPT-4o-mini) powers three AI features: weekly markdown activity digests, automatic 1–10 PR quality scoring on every synced PR, and OS Finder's natural-language → structured-filter query builder — which falls back to regex keyword matching on a 15s timeout.
OS Finder, the flagship, ranks GitHub search results by a custom NCF (New Contributor Friendliness) score out of 10 — weighing good-first-issues, maintainer response time, CONTRIBUTING.md, PR merge rate and more — alongside repo-health flags (archived, stale, fork-heavy), with per-language parallel search and Redis-cached results.
Persistence is PostgreSQL via TypeORM with migrations run on startup; the watchlist stores each repo's full NCF breakdown as jsonb, and search history is retained for reuse.
Stack
- NestJS
- Next.js
- TypeScript
- PostgreSQL
- TypeORM
- Redis
- Socket.IO
- Passport.js
- JWT
- OpenRouter
- node-cron
- Python
- Flask
- Docker