Skip to main content
You’re three steps from a working workflow editor: install the package, point it at a backend, and mount it. Pick your framework below for copy‑paste setup, or follow the universal path underneath.

Choose your framework

Svelte

Use FlowDrop as a native Svelte 5 component.

React

Mount into a useEffect with a container ref.

Vue

Mount on onMounted, tear down on unmount.

Vanilla JS

Drop into any element — no framework needed.

Drupal

Install the module; the editor ships with it.

1. Install

No Svelte required in your app.FlowDrop is built with Svelte 5 internally, but you don’t need to write Svelte to use it. The mount API works in React, Vue, vanilla JS, or any framework.

2. Mount the editor

This is the universal path — it works anywhere. Drop the editor into any element and point it at your backend:
That’s the happy path — you now have a live editor wired to your backend. For framework‑idiomatic setup (Svelte components, React refs, Vue lifecycle), use the tiles above.

3. Connect a backend

FlowDrop needs a backend.As a frontend editor, it relies on a backend to serve node definitions, store workflows, and run executions. Until one is connected, the canvas loads but has no nodes to place.
You have two ways to get there:

Run a ready-made server

Skip the backend work — run a server that already speaks the FlowDrop API, like the Drupal module.

Build your own

Implement the REST contract on your own stack — the guide lists every endpoint FlowDrop calls.

Going further

The happy path above is all most apps need. Expand the sections below when you hit a specific case.
Install these alongside @flowdrop/flowdrop:
Import from the most specific entry point you need — the main entry is a slim front door, so form fields, display components, and the playground live in their own sub‑modules.
Only needed if you use the form/code or form/markdown entry points:
Multiple FlowDrop editors can run on the same page. Each mount gets its own isolated FlowDropInstance (workflow, history, playground, and panel state). When mounting more than one editor with drafts enabled, pass an instanceId so their stored drafts don’t collide. See the multiple instances guide.
FlowDrop ships its UI as Svelte 5 components, so a bundler needs the Svelte plugin to compile them — even in React, Vue, or vanilla-JS apps. You still don’t write any Svelte yourself. With Vite:
SvelteKit already configures the Svelte plugin — no extra setup needed.Still seeing Failed to resolve import? Exclude FlowDrop from Vite’s dependency pre-bundling:
Confirm the package resolved correctly:
If you see Cannot find module '@flowdrop/flowdrop', check that the install finished without errors, that your bundler supports ES modules (Vite 5+, webpack 5+), and that you aren’t importing in a server-side context.
  • Node.js v20 or later.
  • A bundler that handles ES modules (Vite, webpack, esbuild, Rollup, Next.js, Nuxt, SvelteKit, or similar).
  • Svelte 5 internally — FlowDrop uses Svelte 5 runes under the hood; your app does not need to be written in Svelte.
  • Modern browsers only — targets ES2020+ with no bundled polyfills.