xyflow

From public sources

xyflow (React Flow and Svelte Flow) is an open-source MIT library for building interactive node-based UIs, flowcharts and graph editors in React or Svelte.

LibraryCategory: Libraries & SDKs · UI & editorsOpen sourcedata checked Oct 15, 2026

Overview

Building node-based interfaces such as flowcharts, diagrams, workflow editors and graph tools from scratch means handling dragging, zooming, panning, connections and rendering yourself. xyflow solves this with two open-source libraries: React Flow (@xyflow/react) for React and Svelte Flow (@xyflow/svelte) for Svelte, both released under the MIT License. The libraries ship ready to use, with components for nodes, edges, a minimap, controls and a background grid, and they can be customized with custom nodes and edges. Installation is a single npm command, and the basic setup takes only a few lines of code. They suit developers who want to add visual, node-based editing to their web applications. Because the project also has an active community and a maintaining team, it is a practical starting point for both prototypes and production tools.
  • design
  • flowchart
  • graph
  • javascript
  • node-based-ui
  • react
  • react-flow
  • svelte
  • svelte-flow
  • typescript
  • typescript-library
  • workflow

Installation

Commands are shown, never run by the marketplace. Check them against the official documentation.
  • Official websiteFrom public sourcesfrom catalog metadata
    xyflow.com/ ↗
  • Build from sourceFrom public sourcesfrom catalog metadata

    Build from source: no validated build recipe — follow the repository instructions.

    github.com/xyflow/xyflow ↗

Compatibility

Unknown means no evidence was found — not that the product is incompatible.
PlatformStatusArchitectureEvidenceConfidence
Node.jsUnknown———
PythonUnknown———
JVMUnknown———
.NETUnknown———
WebAssemblyUnknown———
Web browserCompatible—Declared on the card—

Releases

checked Oct 29, 2026
v12.12.0LatestSep 24, 2026Official source ↗

Files in 12.12.0

This release has no attached files.

Release history

Quality profile

algorithm quality-v1.0 · assessed Oct 15, 2026
Quality Score100
Risk Score0
Confidence 1.00
Quality Score and Risk Score are different measures. A high score does not guarantee safety.

Score components

Maintenance · 2020
last activity 0 days ago
Documentation · 1515
README 5264 chars, description present
Ready to use · 1515
install instructions: yes; releases: yes
Metadata · 1010
4/4 of description, homepage, license, topics
Releases · 1010
10 release(s), latest 21 days ago
Category confidence · 1010
classifier confidence 1
Adoption · 1010
38682 stars (log-dampened, 10k = max)
License clarity · 55
SPDX MIT
Community · 55
issues enabled, 2552 forks

License

MIT
Known licensefrom the repository host

This is the catalog policy status, not legal advice.

Sources

github.com/xyflow/xyflowPrimary★ 38,682 starslast activity Oct 15, 2026Primary repository · Confidence 1.00

Reviews

Sign in to write a review

No reviews yet.

Alternatives

README

From xyflow/xyflow · license MIT · fetched Oct 29, 2026

[xyflow-header] [xyflow-header-dark]

[GitHub License MIT] [npm downloads] [npm downloads]

Powerful open source libraries for building node-based UIs with React or Svelte. Ready out-of-the-box and infinitely customizable.

React Flow · Svelte Flow · React Flow Pro · Discord


The xyflow mono repo

The xyflow repository is the home of four packages:

Commercial usage

Are you using React Flow or Svelte Flow for a personal project? Great! No sponsorship needed, you can support us by reporting any bugs you find, sending us screenshots of your projects, and starring us on Github 🌟

Are you using React Flow or Svelte Flow at your organization and making money from it? Awesome! We rely on your support to keep our libraries developed and maintained under an MIT License, just how we like it. For React Flow you can do that on the React Flow Pro website and for both of our libraries you can do it through Github Sponsors.

Getting started

The best way to get started is to check out the React Flow or Svelte Flow learn section. However if you want to get a sneak peek of how to install and use the libraries you can see it here:

Installation

npm install @xyflow/react

Basic usage

import { useCallback } from 'react';
import {
ReactFlow,
MiniMap,
Controls,
Background,
useNodesState,
useEdgesState,
addEdge,
} from '@xyflow/react';

import '@xyflow/react/dist/style.css';

const initialNodes = [
{ id: '1', position: { x: 0, y: 0 }, data: { label: '1' } },
{ id: '2', position: { x: 0, y: 100 }, data: { label: '2' } },
];

const initialEdges = [{ id: 'e1-2', source: '1', target: '2' }];

function Flow() {
const [nodes, setNodes, onNodesChange] = useNodesState(initialNodes);
const [edges, setEdges, onEdgesChange] = useEdgesState(initialEdges);

const onConnect = useCallback((params) => setEdges((eds) => addEdge(params, eds)), [setEdges]);

return (
  <ReactFlow
    nodes={nodes}
    edges={edges}
    onNodesChange={onNodesChange}
    onEdgesChange={onEdgesChange}
    onConnect={onConnect}
  >
    <MiniMap />
    <Controls />
    <Background />
  </ReactFlow>
);
}

export default Flow;

Installation

npm install @xyflow/svelte

Basic usage

<script lang="ts">
import { writable } from 'svelte/store';
import {
  SvelteFlow,
  Controls,
  Background,
  BackgroundVariant,
  MiniMap,
} from '@xyflow/svelte';

import '@xyflow/svelte/dist/style.css'

const nodes = writable([
  {
    id: '1',
    type: 'input',
    data: { label: 'Input Node' },
    position: { x: 0, y: 0 }
  },
  {
    id: '2',
    type: 'custom',
    data: { label: 'Node' },
    position: { x: 0, y: 150 }
  }
]);

const edges = writable([
  {
    id: '1-2',
    type: 'default',
    source: '1',
    target: '2',
    label: 'Edge Text'
  }
]);
</script>

<SvelteFlow
{nodes}
{edges}
fitView
on:nodeclick={(event) => console.log('on node click', event)}
>
<Controls />
<Background variant={BackgroundVariant.Dots} />
<MiniMap />
</SvelteFlow>

Releases

For releasing packages we are using changesets in combination with the changeset Github action. The rough idea is:

  1. create PRs for new features, updates and fixes (with a changeset if relevant for changelog)
  2. merge into main
  3. changeset creates a PR that bumps all packages based on the changesets
  4. merge changeset PR if you want to release to Github and npm

Built by xyflow

React Flow and Svelte Flow are maintained by the xyflow team. If you need help or want to talk to us about a collaboration, reach out through our contact form or by joining our Discord Server.

License

React Flow and Svelte Flow are MIT licensed.

Open the repository ↗