Skip to content

Project status ​

Graphora is an active preview as of September 11, 2026. It has a working, tested implementation and a deployed demonstration site, but it is not a stable or public package release. The source repository is private, package versions are 0.0.0, the packages are unpublished, and a license has not been selected.

Try the dependency explorer or browse the examples catalog.

How to read the status ​

  • Implemented preview: available in this checkout and its hosted examples; APIs can still change. The tutorials use this category.
  • Experimental: evaluation-only behavior explicitly marked by a feature's guide; it is not a promise of stability or release availability.
  • Planned / unavailable: no supported implementation to use yet. A design document or roadmap entry alone does not make a feature available.

Available now — implemented preview ​

AreaCurrent capability
Graph dataValidated raw graphs, normalized snapshots, selectors, synchronous events, mutations, atomic batches, JSON roundtrip, and record mapping
RenderingCanvas 2D nodes, edges, labels, arrows, built-in shapes, picking, viewport controls, light/dark presets, item styles, and current-viewport bitmap export
LayoutsCircular, deterministic bounded force, grid, no-overlap post-pass, hierarchical node placement, generic async transport, and bundled browser Worker force layout
InteractionHover, click, selection, node drag, background pan, wheel zoom, focus helpers, lasso helpers, context-menu and tooltip payloads, and shared keyboard primitives
ReactThin Graph component with data updates, controlled or uncontrolled selection, callbacks, viewport access, refs, and position preservation
ExplorationSearchable dependency explorer with filters, details, neighbor inspection, directed path highlighting, four layouts, and desktop/mobile Chromium coverage
Optional helpersGraphology-like input adapter, degree and connectivity analysis, traversal, shortest path, clustering, and expand/collapse derived graphs

See the generated API reference for the exact surface. A capability listed here does not imply API stability or registry availability.

Measured performance boundary ​

The maintained local browser diagnostic covers deterministic 1,000-node and 5,000-node fixtures at 1.8 and 3.0 edges per node. On the recorded Linux, Chromium, and AMD EPYC environment, median Worker force computation was about 600–642 ms for 1,000 nodes and 4.08 seconds for 5,000 nodes. Median first paint was about 44–70 ms and 345–410 ms respectively; click highlighting ranged from about 41–75 ms and 198–302 ms.

Those figures are machine-specific diagnostics from three runs per scenario. They are not frame-rate targets, size guarantees, arbitrary-large-graph claims, or cross-device benchmarks. Read the environment, fixture, and phase breakdown in local performance evidence, and measure your own graph and target devices.

Current limits ​

  • Canvas does not provide a semantic DOM tree for individual nodes and edges. Apps must add accessible companion UI. Screen readers and physical touch devices are not certified.
  • The Canvas renderer is the only concrete renderer. Custom node visuals, images, arbitrary render callbacks, independent width and height, minimap, edge bundling, and vector export are unavailable.
  • Hierarchical layout returns node positions without edge routing, ports, group layout, or label placement. applyNoOverlap uses point distance; applyMeasuredNoOverlap separates measured padded node rectangles with bounded work and reports any remaining overlap. Neither places labels.
  • Worker force layout moves computation off the main thread, while application, render, and interaction costs remain. The caller owns layout disposal.
  • The React binding does not provide first-class context-menu, tooltip, lasso, or semantic graph-item components.
  • Graph database access, remote loading, persistence, undo/redo and a general plugin/layer runtime are outside the current capability.

Composable views ​

Composable filtered views are implemented in the preview. Their current scope and limitations are documented separately; they do not imply arbitrary plugin or layer support.

Decisions still owned by maintainers ​

Maintainers must choose the license, public repository timing, package metadata, npm scope ownership, version and release mode, publishing access, provenance, support route, and security reporting route. Until those decisions are recorded, Graphora should be evaluated through the hosted demos or an authorized source checkout.