--- 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.