If you enjoy Wikipedia rabbit-holes and would-you-rather questions, you would probably like Elo Everything. I did, and have since wanted to apply the idea to a domain where the result would be more useful.
If BJJ practitioners chose preferred techniques, you could rank the moves and visualise in a directed acyclic graph.
Have a look:
Data acquisition
There are BJJ databases: A C++ program, an iPhone app, and some websites. None were both comprehensive and accessable to what I wanted.
Compiling techniques is time consuming. The initial dataset only covers core moves. I'll add more over time.
Tech
Cheers for your comment teatops.
Redis was suitable as a primary database initially, but has quickly racked up transactions, so I may migrate to postgres.
- Frontend:
- React, shadcn/ui, Next.js (14+ with SSR), tailwind, lucide icons
- Graph: react-force-graph (uses canvas/WebGL for rendering and d3-force-d3 for physics)
- Ranking: Elo spinner inspired by DaisyUI countdown
- Data/other: swr, react-hook-form, dynamic imports for large modules (e.g. graph)
- Backend:
- Database: Redis on Vercel KV
- APIs: Vercel serverless functions
Dm if you want more details.
Future considerations
- Expand move list
- Migrate DB to postgres