"Six Degrees of Separation" for competitive TF2 players
DonkedIn is a web application that visualizes the social graph between competitive Team Fortress 2 players based on shared team membership across two major leagues: RGL.gg and ETF2L.
Enter any two players and Donkedin will find the shortest path connecting them through the teams they've played on. Like LinkedIn for TF2!
- Path finding: find the shortest connection between any two players via shared team history
- Interactive graph viewer: explore connections with a force-directed Cytoscape.js graph (fCOSE / Cola layouts)
- Multi-league support: aggregates data from both RGL.gg and ETF2L
- Graph database backend: powered by Neo4j with the Graph Data Science plugin for efficient shortest-path queries
| Layer | Technology |
|---|---|
| Frontend | Nuxt 4 / Vue 3 |
| State management | Pinia |
| Graph visualization | Cytoscape.js (fCOSE, Cola) |
| Backend / API | Nuxt server routes (Nitro) |
| Graph database | Neo4j 5 + Graph Data Science plugin |
| Language | TypeScript |
| Linting / Formatting | ESLint + Prettier + Husky |
| Testing | Vitest |
- Node.js v25
- npm
- Docker & Docker Compose (for the recommended setup)
- A Steam Web API key (for fetching player avatars)
This spins up the Nuxt app and a Neo4j instance together.
Clone the repo and navigate into it:
git clone https://github.com/HumanoidSandvichDispenser/donkedin.git
cd donkedinSet your Steam API key as an environment variable, or edit .env to include
it:
export STEAM_API_KEY=your_steam_api_key_hereStart the application with Docker Compose:
docker compose up
