---
title: "Vanilla JS"
description: "Drop a FlowDrop editor into any page — no framework required."
source: https://flowdrop.io/docs/editor/frameworks/vanilla
site: FlowDrop documentation
---
# Vanilla JS
With no framework, the mount API is all you need: give FlowDrop an element and an
endpoint, and it takes over the rest.
## 1. Install
```bash npm
npm install @flowdrop/flowdrop @iconify/svelte @xyflow/svelte
```
```bash pnpm
pnpm add @flowdrop/flowdrop @iconify/svelte @xyflow/svelte
```
```bash yarn
yarn add @flowdrop/flowdrop @iconify/svelte @xyflow/svelte
```
**Your bundler needs the Svelte plugin.**
FlowDrop ships its UI as Svelte 5 components, so your bundler must compile them
(you won't write any Svelte). With Vite, add `@sveltejs/vite-plugin-svelte` and
`svelte` as dev dependencies and enable the plugin — see the **Bundler setup**
section of the [quick start](/start/quickstart) for the full config.
## 2. Mount the editor
```html
```
The returned `app` handle lets you drive the editor programmatically —
`app.save()`, `app.getWorkflow()`, `app.isDirty()`, and `app.destroy()` when you
remove it from the page.
**FlowDrop needs a backend.**
It serves nodes and stores workflows. Point `endpointConfig` at your API, or
[run a ready-made server](/start).
## Next steps
The mental model behind the editor.
Every option and method on the mount handle.