---
title: "Choose a backend"
description: "FlowDrop is an editor plus a backend of your choice. Deciding which backend runs your workflows is the first decision, not the last."
source: https://flowdrop.io/docs/start
site: FlowDrop documentation
---
# Choose a backend
FlowDrop ships as two halves that are deployed separately.
The **editor** is a front-end component you mount in your own application. It
draws the canvas, renders node configuration forms, and validates connections. It
stores nothing and runs nothing.
The **backend** is whatever answers the FlowDrop REST API. It owns the node types
the editor offers, the storage workflows are saved to, and the execution that
gives a workflow meaning. FlowDrop does not supply one implicitly — you pick it,
and the editor talks to it over
[one HTTP contract](/concepts/what-is-a-workflow#the-frontend-backend-contract).
That is why this is the first page. Everything after it — mounting, theming,
custom nodes — is the same whichever backend you chose, and nothing works until
you have chosen one.
## The options
There are three of them, and they are peers: two you run yourself, one you buy.
A complete backend shipped as a contributed Drupal module, with the editor
included. Node processors, workflow storage as configuration entities,
execution modes, triggers and human-in-the-loop.
Implement the documented REST contract on the stack you already run. The
[API reference](/api) is written as a contract for exactly this.
Do not run a backend at all. Factorial.io operates `flowdrop-rs`, a Rust
server implementation of the FlowDrop API. Enterprise only, and priced by
conversation.
### Drupal — the one that is finished
The [Drupal module](/drupal) is the mature backend implementation. It is
published on Drupal.org, it implements the whole contract, and it ships the
editor with it: there is no `endpointConfig` to wire and no separate front-end
build. If you are already on Drupal, this is a one-step install.
It is also the only backend for which the editor's front-end integration is not
your problem — see [FlowDrop for Drupal](/drupal) for how the module maps onto
FlowDrop's concepts.
### Roll your own — a first-class option, not a fallback
FlowDrop is a specification with an editor attached. The
[API reference](/api) documents the endpoints **your** server implements; the
[backend implementation guide](/editor/integration/backend-implementation) walks
through them in the order you need them, and
[authentication patterns](/editor/integration/authentication-patterns) covers
attaching credentials from the editor side.
Any stack that can serve JSON over HTTP qualifies. Nothing in the editor assumes
a language, a framework or a database.
### Hosted — Factorial.io runs the backend for you
The third option is not to run one. Factorial.io operates **`flowdrop-rs`**, a
Rust server implementation of the FlowDrop API, as a hosted service. You mount
the same editor against it, and the backend is somebody else's to operate.
Two things to know before you plan around it:
- **It is an enterprise offer, and the price is a conversation.** There is no
sign-up, no self-serve tier and no published rate — pricing depends on the
deployment. [Pricing](https://flowdrop.io/pricing) sets out the offer, and
[the contact form](https://flowdrop.io/#contact) is how you start it.
- **It has no public source and no public documentation yet.** `flowdrop-rs` is
a private repository with no public release, so nothing on this site documents
the server itself. The MIT licence covers the editor, not the Rust backend.
What *is* public is the part you build against: `flowdrop-rs` implements the same
[REST contract](/api) as every other backend, so the editor-side work — mounting,
theming, custom nodes, authentication — is identical to the other two options.
{/* TODO: this section links out because there is no /docs page to link to.
flowdrop.io/pricing is committed in apps/flowdrop-website (6972027) but not
yet deployed — it currently soft-404s, while flowdrop.io/#contact is live.
Re-check the pricing link once the website deploys. Nothing beyond "hosted,
enterprise, contact Factorial.io" is sourced: no SLAs, support tiers, limits,
regions, availability dates or GA timing exist in any repository. Do not add
them here. When hosted-Rust documentation is published it becomes a peer
track under /docs — `rust/` is reserved for exactly that, see
content/RESERVED-SLUGS.md — and this section links to it instead. */}
### Develop against the example Express server first
Whichever backend you end up with, you do not need it running to start. The
[example Express server](/editor/integration/example-server-express) is a
reference implementation of the full contract with seed data and CORS already on.
It keeps everything in memory, so it is for local development only — but it means
the editor has real node types to place within a minute of `npm install`.
If you want to see how the same server is built rather than just run it, the
[Express backend recipe](/tutorials/recipes/backend-express) constructs one from
an empty directory.
## Once you have chosen
Install the package and mount an editor against your backend.
The mental model, and the contract the two halves share.