> ## Documentation Index
> Fetch the complete documentation index at: https://flowdrop.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Example server (Express)

> A reference Express server implementing the full FlowDrop REST API — the recommended backend to develop a client against.

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.

<Note>
  **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.
</Note>

## Run it

The server lives in the FlowDrop repo at `apps/example-server-express`:

```bash theme={null}
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 theme={null}
PORT=8080 npm run dev
```

## Connect your editor

Point your client at the API base — no authentication required:

```javascript theme={null}
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](/docs/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

<CardGroup cols={2}>
  <Card title="Quick start" icon="rocket" href="/docs/quickstart">
    Install FlowDrop and mount the editor against this server.
  </Card>

  <Card title="Build your own backend" icon="screwdriver-wrench" href="/guides/integration/backend-implementation">
    Implement the same REST contract on your own stack for production.
  </Card>
</CardGroup>
