A modern, visual workflow builder interface for n8n, designed as a no-code automation platform inspired by Node-RED and Zapier. This application provides an intuitive drag-and-drop canvas environment for creating, editing, and managing n8n workflows.
- Visual Canvas: Drag-and-drop workflow creation with ReactFlow
- Comprehensive Node Library: Triggers, Actions, Logic, Data Transformation, and AI nodes
- Real-time Validation: Instant feedback on workflow configuration
- n8n Integration: Full JSON compatibility and API synchronization
- Responsive Design: Works on desktop, tablet, and mobile devices
- TypeScript: Fully typed for better development experience
- Modern UI: Built with React, TypeScript, and Tailwind CSS
workflow-builder/
├── src/
│ ├── components/ # React components
│ │ ├── WorkflowBuilder.tsx # Main workflow canvas
│ │ └── ...
│ ├── hooks/ # Custom React hooks
│ ├── stores/ # State management (Zustand)
│ ├── types/ # TypeScript type definitions
│ ├── utils/ # Utility functions
│ ├── services/ # API and external service integrations
│ ├── App.tsx # Main app component
│ ├── main.tsx # React entry point
│ └── index.css # Global styles
├── public/ # Static assets
├── package.json # Dependencies and scripts
├── tsconfig.json # TypeScript configuration
├── vite.config.ts # Vite build configuration
└── tailwind.config.js # Tailwind CSS configuration
- Frontend: React 18 + TypeScript
- Canvas: ReactFlow for drag-and-drop workflow creation
- Styling: Tailwind CSS
- Build Tool: Vite
- State Management: Zustand
- HTTP Client: Axios
- Real-time: Socket.io for live collaboration
- Node.js 18+ and npm
- Modern web browser
-
Clone the repository
git clone <repository-url> cd workflow-builder
-
Install dependencies
npm install
-
Start development server
npm run dev
-
Open your browser Navigate to
http://localhost:3000
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLintnpm run type-check- Run TypeScript type checking
- Select Nodes: Drag nodes from the left palette onto the canvas
- Connect Nodes: Click and drag between node connection points
- Configure Properties: Select nodes to configure their parameters in the right panel
- Validate: Real-time validation provides immediate feedback
- Test: Use the toolbar to run and test your workflow
- Triggers: Webhook, Schedule, Manual, Email, Database, File, API
- Actions: HTTP Request, Email, Database, File, Message Queue, Notifications
- Logic: If/Else, Switch, Loop, Wait/Delay, Error Handler, Filter, Sort
- Data Transformation: JSON, XML, CSV, Text, Date/Time, Math, Regex, Template
- AI & ML: OpenAI, Anthropic, Hugging Face, Vector DB, Text Analysis, Image Analysis
The workflow builder is fully compatible with n8n's workflow format:
- Export workflows as n8n-compatible JSON
- Import existing n8n workflows
- Template sharing and management
- WebSocket connection for live collaboration
- REST API integration for workflow management
- OAuth and credential management
For detailed UI/UX specifications, see workflow-builder-spec.md which includes:
- Complete UI layout and interaction design
- Technical architecture diagrams
- Implementation roadmap
- Advanced feature specifications
src/
├── components/ # Reusable UI components
│ ├── WorkflowBuilder.tsx # Main canvas component
│ ├── NodePalette.tsx # Node selection sidebar
│ ├── PropertiesPanel.tsx # Node configuration panel
│ └── ...
├── stores/ # Zustand state stores
│ ├── workflowStore.ts # Workflow state management
│ ├── nodeStore.ts # Node state management
│ └── ...
├── types/ # TypeScript definitions
│ ├── workflow.ts # Workflow type definitions
│ ├── node.ts # Node type definitions
│ └── ...
├── services/ # External API integrations
│ ├── n8nApi.ts # n8n server communication
│ ├── validation.ts # Workflow validation
│ └── ...
- Define the node type in
src/types/node.ts - Create the node component in
src/components/nodes/ - Add to the palette in
NodePalette.tsx - Implement configuration in
PropertiesPanel.tsx
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by Node-RED and Zapier
- Built with ReactFlow and n8n
- Styled with Tailwind CSS