Inspiration We kept hearing about "bus factor" in CS classes — the idea that if one person on a team gets hit by a bus, the whole project dies. Then we looked at real open source projects and internship teams and realized... this actually happens constantly, and nobody has a tool to see it coming. We wanted to build something that makes invisible organizational risk visible, using the graph theory we were learning in class.
What it does Sybil pulls data from GitHub, Slack, Jira, and Notion and turns your team into a mathematical graph. It runs algorithms like Betweenness Centrality and PageRank to score every person's "fragility" — basically, how badly things break if they disappear. The coolest part: you can right-click anyone on the graph and simulate removing them. It instantly shows you which projects collapse, who gets orphaned, and which repos lose their only reviewer.
How we built it We went a bit overboard honestly. Three packages:
TypeScript/Express backend with 5 data connectors and Neo4j for the graph database Python/FastAPI for the heavy graph math (NetworkX, Louvain community detection) React + Sigma.js for the frontend — force-directed graph visualization with a Bloomberg Terminal vibe We also built a mock data generator so the demo works without needing real company credentials.
Challenges we ran into Betweenness Centrality is O(VE). On 1000 nodes it's genuinely slow. Had to implement Brandes' algorithm and neighborhood sampling to keep the What-If simulation under 200ms Same person, 5 different usernames. marcus.webb on GitHub, U04KXYZ on Slack, mwebb@company.com on Jira. Building the identity resolver across platforms was way harder than expected Making the demo not suck. Random data tells no story. We hand-engineered 5 specific SPOF scenarios that are mathematically guaranteed to score critically every run.
Accomplishments that we're proud of Honestly just that it works. We had a graph of 1,000 nodes running real algorithms in a browser within 48 hours. The fragility formula we derived actually produces the scores we predicted. And we did it with zero AI/LLM — every single insight is pure graph math, which felt important to us.
What we learned Graph theory hits different when you're applying it to real problems instead of homework. We also learned Neo4j is incredibly powerful but has a steep learning curve, Python and Node.js can talk to the same database just fine, and identity resolution across platforms is genuinely one of the hardest problems in data engineering.
What's next for Project Sybil Real-time Slack alerts when someone's fragility score spikes "Succession planning" view — who should document what before they leave Actually pitch this to a company and see if the math holds on real data
Built With
- css
- fastapi
- forceatlas2
- graphology
- jira
- neo4j
- networkx
- notion
- python
- sigmajs
- typescript
- zustand
Log in or sign up for Devpost to join the conversation.