A visual drag-and-drop editor for creating and managing Serverless Workflows with an intuitive React-based interface.
Try the editor live at: https://kshitiz1403.github.io/serverless-workflow-builder
- Drag & Drop Interface: Intuitive node-based workflow creation
- Real-time Visual Feedback: See your workflow structure as you build
- Smart Connection System: Easy linking between workflow states
- Auto-layout: Intelligent node positioning for imported workflows
- Start Node: Workflow entry points
- Operation Node: Function calls and actions
- Switch Node: Conditional branching with data/event conditions
- Event Node: Event-driven state transitions
- End Node: Workflow termination points
- Data Conditions: Expression-based branching (.data == true)
- Event Conditions: Event-driven decision making
- Visual Condition Labels: Clear condition identification on connections
- Default Fallback: Support for default transition paths
- JSON Import: Load existing serverless workflow definitions
- JSON Export: Generate compliant serverless workflow JSON
- Example Workflows: Pre-built templates to get started
- File Upload: Direct .json file import support
- Auto-save: Automatic local storage backup
- New Workflow: Quick workflow reset with confirmation
- Live Editing: Real-time property updates
- Undo/Redo: Undo/Redo the last applied actions
- Serverless Workflow Spec: Full compliance with v0.9.x specification
- Action Support: Function references, expressions, and configurations
- Event Integration: Complete event state and condition support
- Metadata Preservation: Maintains workflow metadata on import/export
- Frontend: React 18.2.0
- Flow Library: React Flow 11.x
- Icons: Lucide React
- Styling: Pure CSS with modern design
- Build Tool: Create React App
- Deployment: GitHub Pages
- Node.js 16+ (recommended: Node.js 18)
- npm or yarn package manager
- 
Clone the repository git clone https://github.com/kshitiz1403/serverless-workflow-builder.git cd serverless-workflow-builder
- 
Install dependencies npm install 
- 
Start development server npm start 
- 
Open in browser Navigate to http://localhost:3000
npm run buildThe build artifacts will be stored in the build/ directory.
- Add Nodes: Drag node types from the left palette onto the canvas
- Connect Nodes: Click and drag from output handles to input handles
- Configure Properties: Select nodes to edit their properties in the sidebar
- Set Conditions: For switch nodes, configure data or event conditions
- Export: Use the "Export JSON" button to generate workflow definition
- Click "Import JSON" in the sidebar
- Choose Method:
- Paste JSON directly into the text area
- Upload a .json file
- Load example workflows
 
- Click "Import Workflow" to visualize
- Entry point for workflow execution
- Configure workflow metadata
- Define function calls and actions
- Set function references and parameters
- Configure retry policies and timeouts
- Data Conditions: Use expressions like .data == true
- Event Conditions: Reference specific events
- Default Path: Fallback transition option
- Multiple output connections for each condition
- Configure event references and timeouts
- Set up event-driven state transitions
- Handle event correlation and data filtering
- Terminate workflow execution
- Define completion status and outputs
The application includes a configuration interface for connecting to external operations APIs:
- Access Settings: Click the Settings button in the sidebar footer
- Configure API URL: Set the base URL for your operations API (default: http://localhost:3001)
- Test Connection: Use the "Test Connection" button to verify API connectivity
- Advanced Options: Configure request timeout and retry attempts
- Auto-save: All settings are automatically saved to browser localStorage
- Base URL: The operations API endpoint
- Request Timeout: How long to wait for API responses (default: 30 seconds)
- Retry Attempts: Number of retry attempts for failed requests (default: 3)
- Connection Status: Real-time API connectivity indicator
The settings modal provides a health check feature that tests your API connection and displays the number of available operations.
src/
โโโ components/
โ   โโโ nodes/              # Node type definitions
โ   โ   โโโ StartNode.js
โ   โ   โโโ OperationNode.js
โ   โ   โโโ SwitchNode.js
โ   โ   โโโ EventNode.js
โ   โ   โโโ EndNode.js
โ   โโโ WorkflowEditor.js   # Main canvas component
โ   โโโ Sidebar.js          # Node palette & properties
โ   โโโ NodePropertiesEditor.js
โ   โโโ JsonImporter.js     # Import functionality
โ   โโโ JsonExporter.js     # Export functionality
โโโ styles/                 # CSS files
โโโ example_workflows/      # Sample workflow definitions
We welcome contributions! Here's how you can help:
- Fork the repository
- Create a feature branch: git checkout -b feature-name
- Make your changes and test thoroughly
- Commit: git commit -m "Add feature description"
- Push: git push origin feature-name
- Create a Pull Request
- New Node Types: Implement additional serverless workflow states
- UI/UX Improvements: Enhance the visual design and user experience
- Export Formats: Add support for other workflow formats
- Validation: Implement workflow validation and error checking
- Testing: Add unit and integration tests
- Documentation: Improve guides and examples
- Workflow Validation: Real-time error checking and validation
- Undo/Redo System: Full action history management
- Collaborative Editing: Multi-user workflow editing
- Cloud Storage: Save workflows to cloud providers
- Template Library: Expanded collection of workflow templates
- Advanced Debugging: Workflow execution simulation
- Export Formats: Support for additional workflow standards
- Duplicate a project
- Large workflows may experience performance degradation
- Mobile responsiveness needs improvement
- Undo/redo functionality not yet implemented
This project is licensed under the ISC License - see the LICENSE file for details.
- Serverless Workflow Community for the specification
- React Flow for the excellent flow library
- Lucide for beautiful icons
- Create React App for the project foundation
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: Serverless Workflow Specification
Built with โค๏ธ for the Serverless Community