← Back to projects
DevAtlas

DevAtlas

Open-source directory of developer profiles: sign in with GitHub, share one link

ShippedNext.jsReactTypeScriptFastAPIPostgreSQLSQLModelAlembic
View Source

DevAtlas

An open-source directory of developer profiles. Sign in with GitHub, add your stack, games, interests and writing, and share a single link.

DevAtlas started from a simple gap: stat-card generators for GitHub and LeetCode already exist, but none of them make the profile itself the product, and none of them let you browse other developers.

The goal was to combine live GitHub activity and a personal profile into one shareable page, then put those pages in a searchable directory.

It is live in production with 12 registered users.

The idea

The frontend and API are separate deployments. Server-side calls and browser calls take different paths into the API, and the API trusts neither blindly.

What it does

Engineering decisions

Privacy is enforced on the server. Hidden sections are stripped in the API response, not hidden in the UI. Every public surface that shows user content has to respect visibility and suspensions, and there is a checklist in the code for adding new ones.

Rate limiting behind a proxy. Server-rendered traffic from Vercel all arrived at the API from the same IP, so a per-IP limit would have throttled everyone together. The Next.js server now forwards each visitor's real IP with an HMAC-SHA256 signature the API verifies, giving 30 requests per minute per visitor with no spoofable headers.

Directory performance. Directory pages went from 38 queries to 6 by batching lookups and replacing in-memory counting with SQL COUNT.

Staff access. The moderation panel needs a GitHub sign-in plus a TOTP MFA step. It has recovery codes, replay protection, lockout after 5 failed attempts, and 30-minute elevated sessions that are re-checked against the database on every request.

Tokens and deletion. GitHub tokens are Fernet-encrypted at rest. Account deletion cascades all user data and revokes the OAuth grant, and any new foreign key to a user must declare its ondelete behavior.

Local-first, production-grade checks

GitHub Actions CI
       │
       ├── Frontend: lint, typecheck, build
       │
       └── Backend: migrations applied to an empty Postgres

What I learned

DevAtlas was my first project with real users, which changed how I thought about it.

The main things I learned were:

The biggest lesson was that privacy and abuse handling are far cheaper to design in from the start than to retrofit once people are using the product.

Current status

Shipped

DevAtlas is live and stable. It is in maintenance mode: bug fixes and contributor pull requests are welcome, with new features by issue first.

Repository

GitHub — DevAtlas Live — DevAtlas