Skip to content
STACK IT FAST

Flowise

Curated OSSAI-agentLLM Workflow & Orchestration UI2-5 people

Audited from github.com/FlowiseAI/Flowise

Flowise is a visual, low-code builder for LLM chains and AI agents: a React/ReactFlow canvas over an Express and TypeORM backend, with 100+ LangChain.js-based integration nodes, now archived on GitHub.

Language
TypeScript
Database
SQLite
Hosting
Docker
Running for
2 years
Team
2-5 people

Why this architecture

A Turborepo monorepo lets the ReactFlow-based visual editor, the TypeORM-backed API server, and the LangChain.js node library ship and version independently, with an optional BullMQ worker tier for scaling flow execution.

Tech stack by layer

6 technologies · audited Sep 17, 2026
Frontend & UI
  • ReactRenders the dashboard and drag-and-drop flow builder in packages/ui, built with Vite.
  • ReactFlowProvides the node-based canvas used to build and visualize chatflows and agent workflows.
Backend & APIs
  • ExpressServes the REST API from packages/server, packaged and distributed as an oclif CLI (the flowise binary).
  • TypeORMORM abstracting SQLite (default), PostgreSQL, or MySQL as interchangeable backing databases.
Data & Persistence
  • SQLiteDefault embedded database for local and single-instance deployments.
  • RedisBacks BullMQ queue mode and the Bull Board dashboard when running in distributed worker configuration.
Infrastructure & Deploy
  • DockerRoot and docker/ Dockerfiles build the monolith image and a separate worker image for queue-mode deployments.
  • GitHub ActionsRuns CI, Docker Hub/ECR image publishing, and a dedicated proprietary-path guard check.
Tooling, Testing & Ops
  • LangChainChain and agent primitives (@langchain/core, @langchain/community, provider packages) back most of the 100+ integration nodes.
  • Model Context ProtocolServer integrates @modelcontextprotocol/sdk so flows can expose and consume MCP tools.
  • OpenTelemetryInstruments the server with tracing and metrics exporters (gRPC, HTTP, proto) for observability of flow executions.

Flowise architecture diagram

Open SVG
Flowise architecture diagramFlow builder → Server (REST); Embeds & API → Server (predictions); Server → Integration nodes (run flow); Server → Database (TypeORM); Server → Redis (enqueue); Redis → Queue worker (jobs); Queue worker → Integration nodes (run flow); Integration nodes → LLMs & tools (calls)CLIENTSSERVICESWORKERS & JOBSDATA & STORAGEEXTERNALFlow builderReact · ReactFlowEmbeds & APIflowise-embed · RESTServerExpress · oclif CLIIntegration nodesflowise-componentsQueue workerBullMQ (queue mode)DatabaseTypeORM · SQLite/PostgresRedisBullMQ queueLLMs & toolsLangChain · MCPrun flowRESTpredictionsjobsrun flowTypeORMenqueuecalls
How the main components of Flowise connect, drawn from the audited repository.
Diagram as text
  • Flow builder (React · ReactFlow) → Server (Express · oclif CLI): REST
  • Embeds & API (flowise-embed · REST) → Server (Express · oclif CLI): predictions
  • Server (Express · oclif CLI) → Integration nodes (flowise-components): run flow
  • Server (Express · oclif CLI) → Database (TypeORM · SQLite/Postgres): TypeORM
  • Server (Express · oclif CLI) → Redis (BullMQ queue): enqueue
  • Redis (BullMQ queue) → Queue worker (BullMQ (queue mode)): jobs
  • Queue worker (BullMQ (queue mode)) → Integration nodes (flowise-components): run flow
  • Integration nodes (flowise-components) → LLMs & tools (LangChain · MCP): calls

Key architectural decisions

6 decisions
  1. 01

    Turborepo splits the monorepo into six independently built packages

    The root package.json defines a pnpm/Turborepo workspace with packages/server, packages/ui, packages/components, packages/api-documentation, packages/agentflow, and packages/observe; the build:docker script explicitly filters out agentflow and observe (--filter=!@flowiseai/agentflow --filter=!@flowiseai/observe) since those two are embeddable widget packages, not part of the self-hosted server image.

  2. 02

    TypeORM abstracts SQLite, PostgreSQL, and MySQL behind one data layer

    packages/server/package.json depends directly on sqlite3, pg, and mysql2 alongside typeorm 0.3.x, so the same entity/migration code in the server package can target any of the three databases depending on deployment configuration, with SQLite as the zero-config default.

  3. 03

    Optional queue mode offloads execution to a separate BullMQ worker image

    packages/server/package.json depends on bullmq, @bull-board/api, and @bull-board/express for job queuing and monitoring, and docker/worker/Dockerfile builds a standalone image running pnpm run start-worker with its own healthcheck server, letting flow execution scale independently of the API process.

  4. 04

    A dedicated CI workflow guards proprietary, non-open-source code paths

    The workflows list includes proprietary-path-guard.yml, and both packages/ui/package.json and packages/components/package.json declare "license": "SEE LICENSE IN LICENSE.md" rather than a standard SPDX identifier, consistent with GitHub reporting the overall repository license as NOASSERTION despite the README stating Apache License 2.0.

  5. 05

    100+ integration nodes are built on LangChain.js primitives

    packages/components/package.json depends on @langchain/core, @langchain/community, @langchain/classic, and per-provider packages like @langchain/anthropic and @langchain/aws, so most chat models, vector stores, and tool integrations in the node library are thin wrappers over LangChain.js abstractions.

  6. 06

    The repository has been archived; a community fork discussion is linked

    README.md carries the banner "Flowise has been archived. Refer to Future of Flowise" linking to a GitHub discussion, and repo metadata confirms the repository is archived as of this audit, so FlowiseAI/Flowise should be treated as a historical snapshot rather than an actively released project.

How Flowise is built

How Flowise is structured

Flowise is a pnpm/Turborepo monorepo with six workspace packages under packages/: server (the Express API and CLI), ui (the React/ReactFlow visual builder, published as flowise-ui), components (the node/integration library, published as flowise-components), api-documentation (a generated Swagger UI), agentflow (@flowiseai/agentflow, an embeddable React component for agent workflows), and observe (@flowiseai/observe, embeddable React components for observing agent executions). The root package.json names the whole project flowise at version 3.1.4 and its build:docker script explicitly excludes agentflow and observe from the Docker build, since those two ship as standalone npm packages rather than as part of the self-hosted server. As of this audit, GitHub reports the repository as archived, and README.md links to a "Future of Flowise" discussion for what comes next.

Frontend

packages/ui is a React 18 app built with Vite. The flow canvas itself is built on reactflow for the node/edge graph, with @mui/material, @mui/lab, and @mui/x-data-grid providing the surrounding dashboard chrome (tables, dialogs, forms), @tiptap/react for rich-text editing inside nodes, @uiw/react-codemirror for inline code editors, and @reduxjs/toolkit plus react-redux for client state. flowise-embed and flowise-embed-react (consumed here as dependencies) provide the embeddable chat widget used to drop a Flowise chatflow into an external site.

Backend & APIs

packages/server is an Express application distributed as an oclif CLI (bin: { "flowise": "./bin/run" }), so npx flowise start both installs and runs the server. Authentication supports session- and token-based login via passport, passport-jwt, passport-local, passport-google-oauth20, passport-github, and SAML-style SSO via passport-openidconnect; billing integrates stripe. Server-side observability is built on OpenTelemetry, with gRPC, HTTP, and proto exporters all present as dependencies, alongside prom-client for Prometheus metrics (metrics/prometheus, metrics/grafana, metrics/otel directories in the tree). MCP tool integration goes through @modelcontextprotocol/sdk. The node/integration library, packages/components, wraps LangChain.js (@langchain/core, @langchain/community, @langchain/classic, plus per-provider packages like @langchain/anthropic, @langchain/aws, and @langchain/cohere) together with direct SDKs (@anthropic-ai/sdk, @google/generative-ai, @aws-sdk/client-bedrock-runtime) and vector store clients (@datastax/astra-db-ts, @elastic/elasticsearch) to implement the individual chatflow nodes.

Data & persistence

The server's entities and migrations run through TypeORM, configured against SQLite by default (sqlite3 dependency, no external database required to start) with pg and mysql2 available as alternate drivers for PostgreSQL and MySQL deployments. When queue mode is enabled, Redis becomes a second datastore: bullmq uses it for the job queue, connect-redis for session storage, and rate-limit-redis for distributed rate limiting.

Build, test & deploy

The root Dockerfile builds a single node:24-alpine image that installs Chromium (for Puppeteer-based nodes), runs pnpm install && pnpm build:docker, and starts with pnpm start. docker/worker/Dockerfile builds a second, separate worker image from the same source tree that runs pnpm run start-worker instead, with its own lightweight healthcheck server (docker/worker/healthcheck) started alongside it. GitHub Actions workflows (.github/workflows) cover main.yml (CI), docker-image-dockerhub.yml and docker-image-ecr.yml (image publishing), test_docker_build.yml, publish-package.yml, publish-agentflow.yml, publish-observe.yml, and proprietary-path-guard.yml, which specifically checks that changes do not touch paths reserved for proprietary code.

Self-hosting notes

README.md documents self-hosting via Docker Compose (docker/docker-compose.yml, with queue-mode variants docker-compose-queue-prebuilt.yml and docker-compose-queue-source.yml), a locally built Docker image, or hosted platforms including AWS, Azure, GCP, Digital Ocean, Railway, Render, and Hugging Face Spaces. Both packages/ui and packages/components declare "license": "SEE LICENSE IN LICENSE.md" rather than a plain open-source SPDX identifier, which is consistent with GitHub reporting the repository's overall license as NOASSERTION even though the README states the code is under Apache License 2.0 — self-hosters should read LICENSE.md directly rather than assuming a standard license applies uniformly.

What to copy (and what not to)

Separating the visual editor (ui), the execution engine (server), and the integration library (components) into independently versioned packages — with the integration library wrapping a third-party orchestration framework (LangChain.js) rather than reimplementing it — is a pattern worth studying for any visual, node-based builder. The optional BullMQ-backed worker tier is a reasonable way to add horizontal scaling without redesigning the core execution model. The archived status and the mixed open-source/"SEE LICENSE IN LICENSE.md" licensing are project-specific realities to account for before building on this code: check LICENSE.md and the linked "Future of Flowise" discussion before depending on this repository going forward.

Sources & repo audit

Audited
Sep 17, 2026
Commit
9291856
License
NOASSERTION

Independent analysis of repository at github.com/FlowiseAI/Flowise. Spotted an inaccuracy? Use the claim form to request a correction.

Show this stack on your README or website
Tech stack of Flowise
[![Tech stack of Flowise on STACK IT FAST](https://stackitfast.com/badge/flowise.svg)](https://stackitfast.com/project/flowise)

Paste it into your README. It shows your current stack and links to this page.

Use this stack

Scaffold it with your agent

Paste this prompt into Claude Code, Cursor, Windsurf or AGY to start a project with Flowise's architecture.

  1. 1Copy the promptThe full markdown spec, with every layer and decision.
  2. 2Open your AI toolClaude Code, Cursor, Windsurf or Copilot, in a new repo.
  3. 3Paste and scaffoldUse it as the first instruction; review before you ship.
use-this-stack.md · 61 lines · 7.7 KB
# MISSION: Scaffold "Flowise" Production Architecture
You are an expert Senior Staff Software Architect and Full-Stack Engineer. Your mission is to scaffold and implement a production-grade, highly reliable, and modular codebase following the proven architecture of **Flowise**.
---
## 1. PROJECT SPECIFICATIONS & BENCHMARK
- **Reference Architecture**: Flowise
- **What It Does**: Flowise is a visual, low-code builder for LLM chains and AI agents: a React/ReactFlow canvas over an Express and TypeORM backend, with 100+ LangChain.js-based integration nodes, now archived on GitHub.
- **Domain & Category**: LLM Workflow & Orchestration UI
- **Production Scale**: 2-5 people
- **Development Mode**: AI-AGENT
- **Architectural Rationale**: A Turborepo monorepo lets the ReactFlow-based visual editor, the TypeORM-backed API server, and the LangChain.js node library ship and version independently, with an optional BullMQ worker tier for scaling flow execution.
- **Live Website Reference**: https://flowiseai.com
- **Source Repository**: https://github.com/FlowiseAI/Flowise
---
## 2. PRODUCTION TECH STACK
- **Full Stack Array**: TypeScript, React, Express, TypeORM, Redis, ReactFlow
- **Primary Language(s)**: TypeScript, JavaScript, HTML
- **License of the reference repo**: NOASSERTION
- **Frontend**: React — Renders the dashboard and drag-and-drop flow builder in packages/ui, built with Vite.; ReactFlow — Provides the node-based canvas used to build and visualize chatflows and agent workflows.
- **Backend & APIs**: Express — Serves the REST API from packages/server, packaged and distributed as an oclif CLI (the flowise binary).; TypeORM — ORM abstracting SQLite (default), PostgreSQL, or MySQL as interchangeable backing databases.
- **Data & persistence**: SQLite — Default embedded database for local and single-instance deployments.; Redis — Backs BullMQ queue mode and the Bull Board dashboard when running in distributed worker configuration.
- **Infrastructure & deploy**: Docker — Root and docker/ Dockerfiles build the monolith image and a separate worker image for queue-mode deployments.; GitHub Actions — Runs CI, Docker Hub/ECR image publishing, and a dedicated proprietary-path guard check.
- **Tooling, testing & ops**: LangChain — Chain and agent primitives (@langchain/core, @langchain/community, provider packages) back most of the 100+ integration nodes.; Model Context Protocol — Server integrates @modelcontextprotocol/sdk so flows can expose and consume MCP tools.; OpenTelemetry — Instruments the server with tracing and metrics exporters (gRPC, HTTP, proto) for observability of flow executions.
---
## 3. KEY ARCHITECTURAL DECISIONS (audited from https://github.com/FlowiseAI/Flowise @ 9291856)
1. **Turborepo splits the monorepo into six independently built packages**: The root package.json defines a pnpm/Turborepo workspace with packages/server, packages/ui, packages/components, packages/api-documentation, packages/agentflow, and packages/observe; the build:docker script explicitly filters out agentflow and observe (--filter=!@flowiseai/agentflow --filter=!@flowiseai/observe) since those two are embeddable widget packages, not part of the self-hosted server image.
2. **TypeORM abstracts SQLite, PostgreSQL, and MySQL behind one data layer**: packages/server/package.json depends directly on sqlite3, pg, and mysql2 alongside typeorm 0.3.x, so the same entity/migration code in the server package can target any of the three databases depending on deployment configuration, with SQLite as the zero-config default.
3. **Optional queue mode offloads execution to a separate BullMQ worker image**: packages/server/package.json depends on bullmq, @bull-board/api, and @bull-board/express for job queuing and monitoring, and docker/worker/Dockerfile builds a standalone image running pnpm run start-worker with its own healthcheck server, letting flow execution scale independently of the API process.
4. **A dedicated CI workflow guards proprietary, non-open-source code paths**: The workflows list includes proprietary-path-guard.yml, and both packages/ui/package.json and packages/components/package.json declare "license": "SEE LICENSE IN LICENSE.md" rather than a standard SPDX identifier, consistent with GitHub reporting the overall repository license as NOASSERTION despite the README stating Apache License 2.0.
5. **100+ integration nodes are built on LangChain.js primitives**: packages/components/package.json depends on @langchain/core, @langchain/community, @langchain/classic, and per-provider packages like @langchain/anthropic and @langchain/aws, so most chat models, vector stores, and tool integrations in the node library are thin wrappers over LangChain.js abstractions.
6. **The repository has been archived; a community fork discussion is linked**: README.md carries the banner "Flowise has been archived. Refer to Future of Flowise" linking to a GitHub discussion, and repo metadata confirms the repository is archived as of this audit, so FlowiseAI/Flowise should be treated as a historical snapshot rather than an actively released project.
---
## 4. NON-NEGOTIABLE ARCHITECTURAL GUARDRAILS
1. **Monorepo & Modular Separation**:
   - Structure as a Turborepo monorepo with strict package boundaries:
     - `apps/web`: Application UI, routing, layouts, and server endpoints.
     - `packages/ui`: Shared design tokens, CSS variables, and Radix UI primitive components.
     - `packages/db`: Database schemas, client singleton, declarative migrations, and seed scripts.
     - `packages/config`: Shared TypeScript, ESLint, and build configurations.
2. **Strict Type Safety & Zero `any` Policy**:
   - Enable `strict: true`, `noImplicitAny: true`, and `strictNullChecks: true`.
   - Validate ALL external inputs, API request bodies, and query parameters with **Zod** schemas before execution.
3. **Frontend & Rendering Guidelines**:
   - Isolate interactive UI state to leaf components. Keep core pages lightweight and performant.
4. **Design System & Aesthetics**:
   - Keep every color, radius, shadow and font in a single token file (CSS variables) and consume tokens everywhere; never hardcode hex values in components.
   - Prefer crisp 1px borders and one subtle shadow scale over blurry default shadows. Pair one sans-serif for body/headings with one monospace for tags, badges, metrics, and code.
5. **Data Layer & Reliability**:
   - Write declarative schema definitions with foreign keys, composite indexes on queried filters, and automated timestamp triggers.
   - Use connection pooling and prepared statements for serverless database execution.
---
## 5. STEP-BY-STEP SCAFFOLDING ROADMAP
- **Phase 1: Workspace & Root Config**: Initialize package manager, monorepo configuration (`turbo.json`, `tsconfig.base.json`, `package.json`).
- **Phase 2: Database Schema & Client**: Set up the data layer (SQLite, Redis): client, connection pool, models, and migration scripts.
- **Phase 3: Design Tokens & UI Primitives**: Build accessible `Button`, `Input`, `Card`, `Badge`, and layout wrappers inside `packages/ui`.
- **Phase 4: Core Application Routes & Handlers**: Implement primary authentication, user session handling, and application routes.
- **Phase 5: Quality Assurance & Build Verification**: Run `tsc --noEmit`, ESLint, Prettier, and smoke test suites to ensure zero compilation or runtime errors.
---
## 6. EXECUTION INSTRUCTIONS
1. Review all specifications, architectural guardrails, and stack choices above.
2. Present the full monorepo directory tree structure.
3. Systematically generate the complete, production-ready codebase according to the 5-phase roadmap above — starting with the root workspace setup, followed by the database schema, UI design system package, and full-stack application routes until the repository is fully scaffolded and ready to run.
Scaffolded something with this prompt?
Would you pick this stack for a llm workflow & orchestration ui project?

Frequently asked about Flowise

What is Flowise built with?

Flowise is a TypeScript monorepo: a React and ReactFlow frontend (packages/ui) for the visual builder, an Express backend (packages/server) using TypeORM over SQLite/PostgreSQL/MySQL, and a LangChain.js-based node library (packages/components) for the 100+ integrations.

What database does Flowise use?

TypeORM lets Flowise target SQLite (the zero-config default), PostgreSQL, or MySQL; packages/server/package.json lists sqlite3, pg, and mysql2 as direct dependencies so the choice is a deployment-time configuration rather than a code change.

Can Flowise run as a distributed system?

Yes, via an optional queue mode: packages/server/package.json depends on bullmq and @bull-board for job queuing, and docker/worker/Dockerfile builds a separate worker image so flow execution can scale independently of the API server behind Redis.

Is Flowise still actively maintained?

No — README.md carries an archived banner ("Flowise has been archived. Refer to Future of Flowise") linking to a community discussion, and the repository is archived on GitHub as of this audit.

Does Flowise support the Model Context Protocol (MCP)?

Yes, packages/server/package.json depends on @modelcontextprotocol/sdk, and packages/components includes MCP-related integrations such as @brave/brave-search-mcp-server, so flows can expose or consume MCP tools.

One email a month: new deep dives and stack trends

New source-audited architectures, head-to-head comparisons and the monthly stack report. No spam, unsubscribe anytime.

use-this-stack.md