About this project
DevDNA is a web application that turns your public GitHub activity into an analysis report and a developer profile badge. It works exclusively via GitHub OAuth, meaning only you can analyze your own account—there is no anonymous lookup or ranking of other developers.
## What DevDNA provides
- **Developer classification**: Ten distinct profile types based on commit patterns, repositories used, and collaboration behavior
- **Evidence badge**: An SVG image generated at `devdna-production-1d53.up.railway.app/api/badge/{username}.svg`, designed for inclusion in GitHub READMEs or profile pages
- **Shareable report card**: A standalone page at `https://devdna.catchmeif404.com/dev/{username}` containing a deterministic summary of your coding habits, stack preferences, and developer type
- **Language support**: Interface and sharing text available in English and Korean
- **Privacy design**: Raw repository and commit data are not persisted; only the final analyzed results are stored
## How to add the badge
Paste this Markdown into any GitHub README:
```markdown
[](https://devdna.catchmeif404.com/dev/YOUR_USERNAME)
```
If the backend has not yet run an analysis for the account, the endpoint returns a placeholder `AWAITING EVIDENCE` badge instead of a broken image.
## Technology stack
| Area | Technology |
|---|---|
| Frontend | Next.js, TypeScript, Tailwind CSS, Cloudflare Workers |
| Backend | Spring Boot (Java 21), Flyway migrations, Railway deployment |
| Database | PostgreSQL |
| Authentication | GitHub OAuth |
## Running locally
```bash
cp .env.example .env
docker compose up -d
```
- Frontend: http://localhost:3010
- Backend API: http://localhost:8090
Create a GitHub OAuth App and set `GITHUB_CLIENT_ID` and `GITHUB_CLIENT_SECRET`. The local callback URL must be configured as `http://localhost:8090/api/auth/github/callback`.
## Known limitations
- Summaries are produced by rule-based templates rather than probabilistic models; commit-type classification optionally calls Claude API when configured
- Only final analysis results persist—raw GitHub data is streamed and discarded
- In-flight analyses do not automatically resume if the backend restarts
- Result ownership may not fully normalize after a GitHub username change
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.