Browser-based graph explorer for GrafeoDB — the Neo4j-Browser / Memgraph-Lab experience (query → interactive labeled graph → click to expand), built on grafeo's native HTTP REST API and speaking all six of its query languages. Plus a Qdrant bridge for vector-to-graph workflows, and two things no other graph explorer has: a Polyglot Lab that diffs the same query across languages, and Expedition Mode that turns explorations into shareable, replayable stories.
docker build -t grafeo-explorer . && \
docker run -p 8080:80 -e GRAFEO_UPSTREAM=my-grafeo-host:7474 grafeo-explorer…or for development: npm install && GRAFEO_URL=http://localhost:7474 npm run dev.
Seed the four shipped example graphs from examples/.
Full instructions: Getting started.
| Query editor | Cypher · GQL · Gremlin · SPARQL · GraphQL · SQL/PGQ, schema-aware autocomplete, snippets, history, saved queries, share links, 7 UI languages, light/dark/system themes |
| Graph canvas | WebGL at 5k+ nodes, expand/pin/hide, multi-select with client-side shortest-path stats, live search, merged parallel edges, Obsidian-style force sliders, GRASS stylesheets, colored result tables + highlighted JSON |
| Expedition Mode 🧭 | Always-on exploration journal: scrub a timeline of every step, drop camera-anchored notes and selection highlights, save, and share whole journeys as links that replay step-by-step — embeddable as auto-playing graph stories |
| Polyglot Lab ⇄ | Run the same intent in all six languages side-by-side, diff the results (a divergence is an engine bug — one click copies the reproducer), grade the server with a read-only report card, translate between dialects (rules first, optional BYO-key AI) |
| Qdrant mode | Browse collections, run vector queries, and resolve points to graph nodes on the canvas with similarity scores |
| Sharing & embedding | #q= query links, #exp= expedition replays, iframe embeds with per-part chrome control |
| Deployment | One static SPA + two proxy routes; Dockerfile and compose included |
| Polyglot Lab | Expedition Mode |
|---|---|
![]() |
![]() |
grafeo's Bolt port carries no node data for visualization, so everything
runs over REST — and this app encodes the dialect behaviors verified
against a live server: the relationship projection contract, the
gql→/query and sql-pgq→/sql endpoint mapping, silent-null
functions, UNION row corruption, and more. Run the
server report card against
your own grafeo version to see exactly where it stands —
AGENTS.md has the full verified-gotcha list.
npm test # ~250 unit/component tests, fully offline
npm run test:e2e # against a live grafeo (auto-skips when unreachable)The behavior contract lives in SPECS.functional.md
and SPECS.non-functional.md — change specs and
docs in the same commit as code. HUMANS.md explains the
tricky parts of the code and the design choices behind them — start
there before diving in. Screenshots regenerate with npm run screenshots
(needs the example DBs).


