---
title: "Example server (Express)"
description: "A reference Express server implementing the full FlowDrop REST API — the recommended backend to develop a client against."
source: https://flowdrop.io/docs/editor/integration/example-server-express
site: FlowDrop documentation
---
# Example server (Express)
The **example Express server** is the fastest way to get a working backend, and
the recommended one while you're building a FlowDrop client. It's a reference
implementation of the full FlowDrop REST API — node types, categories, port
config, and full workflow CRUD — with CORS enabled and seed data built in, so the
editor has real nodes to place the moment you connect.
**In-memory only — not for production.**
The example server keeps everything **in memory**, so workflows you create are
lost when it restarts. It's built for local development.
## Run it
The server lives in the FlowDrop repo at `apps/example-server-express`:
```bash
cd apps/example-server-express
npm install
npm run dev
```
It starts on **`http://localhost:7104`**, serving the API under
`http://localhost:7104/api/flowdrop`. Open the root URL in a browser for a
browsable index of every endpoint. Set a different port with the `PORT`
environment variable:
```bash
PORT=8080 npm run dev
```
## Connect your editor
Point your client at the API base — no authentication required:
```javascript
import { createEndpointConfig } from '@flowdrop/flowdrop/core';
const endpointConfig = createEndpointConfig('http://localhost:7104/api/flowdrop');
```
That's all the wiring the editor needs — see the [Quick start](/start/quickstart)
for mounting it in your framework.
## Endpoints
The server implements the full FlowDrop contract. All paths are relative to the
`/api/flowdrop` base.
| Method | Path | Description |
| -------- | ----------------- | ------------------------------------------------------ |
| `GET` | `/health` | Server health and uptime |
| `GET` | `/system/config` | Client bootstrap config |
| `GET` | `/nodes` | List node types (`?category`, `?search`, `?limit`, `?offset`) |
| `GET` | `/nodes/:id` | Get a single node type |
| `GET` | `/categories` | List node categories |
| `GET` | `/port-config` | Port data types and compatibility rules |
| `GET` | `/workflows` | List workflows (`?search`, `?tags`, `?sort`, `?order`) |
| `POST` | `/workflows` | Create a workflow |
| `GET` | `/workflows/:id` | Get a workflow |
| `PUT` | `/workflows/:id` | Update a workflow |
| `DELETE` | `/workflows/:id` | Delete a workflow |
## Next steps
Install FlowDrop and mount the editor against this server.
Implement the same REST contract on your own stack for production.