Skip to content

Repository files navigation

JazzGraph

JazzGraph is a web application for discovering music recorded by jazz musicians, presented as a graph: artists are nodes, and edges represent collaboration (artists who appear on the same recordings). It queries a MusicBrainz ws/2 API directly from the browser — primarily a private MusicBrainz instance, with the public MusicBrainz API available as a settings-toggle fallback.

Core use cases:

  1. Search for a musician to see their recordings.
  2. List a musician's collaborators to see the recordings they made together.

Stack

  • Client: Vanilla TypeScript + Vite, Cytoscape.js for graph rendering, IndexedDB for caching MusicBrainz responses.
  • Server (server/, optional): Go backend over the MusicBrainz PostgreSQL database, used for queries that are impractical over ws/2 (e.g. collaborator-to-collaborator adjacency). The app runs without it; only server-backed features degrade.

See doc/architecture.md for the full architecture and doc/implementation.md for task status.

Running

Client

npm install
npm run dev     # start the Vite dev server
npm test        # run tests

Server (optional)

The server is only needed for features that depend on it, and requires a MusicBrainz PostgreSQL database. See server/README.md for endpoints, configuration, and prerequisites.

cd server
go run ./cmd/server
go test ./...

Copyright

Copyright © Radu Popescu 2026.

About

Navigate the graph of collaborations between jazz musicians and discover new music

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages