A comprehensive visual workflow designer for Netflix and OSS Conductor (https://github.com/conductor-oss/conductor) - build, edit, and manage Conductor workflows with an intuitive drag-and-drop interface.
- Visual Workflow Designer - Drag-and-drop workflow creation with React Flow
- Task Library - Full support for all Conductor task types (HTTP, Kafka, Sub-Workflow, etc.)
- Operator Support - Fork/Join, Switch, Do-While, Dynamic Fork, and more
- Real-time Validation - Validate workflows before deployment
- Execution Monitoring - View workflow executions and task details
- Dark Theme - Modern dark UI optimized for productivity
- Portable Deployment - Windows EXE or Docker container
# Pull from GitHub Container Registry
docker pull ghcr.io/amishra213/ConflixIQStudio:latest
# If image is already imported run the container
docker run -d -p 4000:4000 --name conflixiq-studio conflixiq-studio:latest
# Access at http://localhost:4000- Download the latest
.exefrom Releases - Extract the ZIP file
- Double-click
conflixiq-studio-build-XXX.bator run the.exedirectly - App opens automatically in your browser at
http://localhost:4000
No installation required! Everything is self-contained and portable.
# Clone the repository
git clone https://github.com/amishra213/ConflixIQStudio.git
cd ConflixIQStudio
# Install dependencies
npm install
# Run development server (frontend + backend)
npm run dev:full
# Or run separately:
npm run dev # Frontend only (http://localhost:5173)
npm run server:dev # Backend only (http://localhost:4000)- Node.js: 20.0.0 or higher
- npm: 8.0.0 or higher
- Optional: Docker or Rancher Desktop for container builds
# Build web UI
npm run build
# Build Windows EXE (portable, no installation)
npm run sea:build:windows
# Build Docker image
npm run docker-build
# Build all (Windows EXE + Docker)
npm run sea:buildSee Build Guide for comprehensive build instructions and troubleshooting.
# Build image
docker build -t conflixiq-studio:latest .
# Run container
docker run -d \
--name conflixiq-studio \
-p 4000:4000 \
-v conductor-logs:/app/logs \
-v conductor-filestore:/app/.filestore \
-e CONDUCTOR_API=http://localhost:8080 \
conflixiq-studio:latest
# View logs
docker logs -f conflixiq-studio
# Stop container
docker stop conflixiq-studio
# Remove container
docker rm conflixiq-studio# Start services
docker-compose up -d
# View logs
docker-compose logs -f
# Stop services
docker-compose downRancher Desktop supports both nerdctl and docker CLI:
# Using nerdctl (Rancher default)
nerdctl build -t conflixiq-studio:latest .
nerdctl run -d --name conflixiq-studio -p 4000:4000 conflixiq-studio:latest
# Or using docker CLI
docker build -t conflixiq-studio:latest .
docker run -d --name conflixiq-studio -p 4000:4000 conflixiq-studio:latestRancher Desktop Tips:
- Enable WSL2 backend for better performance (Windows)
- Allocate sufficient resources (4GB RAM, 2 CPUs recommended)
- Use Docker mode instead of Kubernetes for simpler deployment
| Variable | Default | Description |
|---|---|---|
PORT |
4000 | HTTP server port |
CONDUCTOR_API |
http://localhost:8080 | Conductor server URL |
NODE_ENV |
production | Environment mode |
LOG_LEVEL |
info | Logging level (debug, info, warn, error) |
Docker:
docker run -d -p 4000:4000 \
-e CONDUCTOR_API=https://conductor.example.com \
conflixiq-studio:latestWindows EXE:
set CONDUCTOR_API=https://conductor.example.com
conflixiq-studio.exeDevelopment:
Create a .env file in the project root:
CONDUCTOR_API=http://localhost:8080
PORT=4000
LOG_LEVEL=infoChange the default port (4000) if needed:
# Docker
docker run -d -p 5000:5000 -e PORT=5000 conflixiq-studio:latest
# Windows
set PORT=5000
conflixiq-studio.exeConflixIQStudio/
βββ src/ # React frontend source
β βββ components/ # UI components
β β βββ modals/ # Task/operator modals
β β βββ workflow/ # Workflow designer components
β β βββ ui/ # Reusable UI components
β βββ pages/ # Page components
β β βββ WorkflowDesigner.tsx # Main workflow editor
β β βββ Executions.tsx # Workflow execution list
β β βββ Settings.tsx # App settings
β βββ stores/ # Zustand state management
β βββ hooks/ # Custom React hooks
β βββ utils/ # Utility functions
β βββ types/ # TypeScript type definitions
βββ scripts/ # Build scripts
β βββ sea-builder.ts # Node.js SEA builder
βββ index.js # Backend server (Express + GraphQL)
βββ Dockerfile # Docker build configuration
βββ docker-compose.yml # Docker Compose configuration
βββ package.json # npm dependencies and scripts
-
Windows Defender blocking:
- Windows Security β Virus & threat protection
- Add exception for
conflixiq-studio.exe
-
Port already in use:
# Check what's using port 4000 netstat -ano | findstr :4000 # Kill the process (replace PID) taskkill /PID [PID] /F # Or use a different port set PORT=5000 conflixiq-studio.exe
-
Missing files:
- Ensure all files from the ZIP are extracted
- Don't move the EXE outside its folder
-
Check container logs:
docker logs conflixiq-studio
-
Port conflict:
# Use a different port docker run -d -p 5000:5000 -e PORT=5000 conflixiq-studio:latest -
Image not found:
# List images docker images | grep conductor # Pull or build the image docker pull ghcr.io/amishra213/ConflixIQStudio:latest
This happens on Windows when files are locked:
# Option 1: Manual cleanup (PowerShell)
Remove-Item -Path ".\.build" -Recurse -Force -ErrorAction SilentlyContinue
npm run sea:build
# Option 2: Run as Administrator
# Right-click PowerShell β Run as Administrator
npm run sea:build
# Option 3: Wait and retry
timeout /t 5 /nobreak
npm run sea:buildThis is expected if you don't have a Conductor server running. The app works offline with reduced functionality.
To connect to a Conductor server:
# Update environment variable
docker run -d -p 4000:4000 -e CONDUCTOR_API=http://your-conductor-host:8080 conflixiq-studio:latest- Startup Time: < 1 second
- Memory Usage: 30-50 MB
- File Size: 60-80 MB (Windows EXE)
- Docker Image: ~200 MB
- Node.js: 20+ installed
- npm: 8+ installed
npm install# Run frontend and backend together (Recommended)
npm run dev:full
# Or run separately:
npm run dev # Frontend only (http://localhost:5173)
npm run server:dev # Backend only (http://localhost:4000)# Build web UI
npm run build
# Build Windows EXE (portable, no installation needed)
npm run sea:build:windows
# Build Docker image
npm run docker-build| Command | Description |
|---|---|
npm run dev |
Start frontend dev server |
npm run dev:full |
Start frontend + backend |
npm run build |
Build production web UI |
npm run sea:build:windows |
Build Windows EXE |
npm run docker-build |
Build Docker image + TAR |
npm run format |
Format code with Prettier |
npm run lint |
Run ESLint |
npm run type-check |
TypeScript type checking |
ConflixIQ Studio includes a comprehensive, production-grade logging framework with multiple log levels, automatic file rotation, and retention policies.
# Set log level (DEBUG, INFO, WARN, ERROR)
set LOG_LEVEL=DEBUG
npm run server:dev
# View logs in real-time
tail -f logs/conflixiq-studio-2025-12-04.log
# Test the logging framework
node test-logging.js DEBUG| Level | Severity | Use Case | Example |
|---|---|---|---|
| DEBUG | 0 | Development & troubleshooting | "Fetching task definitions from..." |
| INFO | 1 | Normal operations | "β Configuration updated" |
| WARN | 2 | Warnings & issues | "Cache size approaching limit" |
| ERROR | 3 | Failures & errors | "Failed to connect to Conductor" |
- β Color-Coded Output: Cyan (DEBUG), Green (INFO), Yellow (WARN), Red (ERROR)
- β Automatic File Rotation: Daily timestamps + size-based rotation (10MB default)
- β Log Retention: Automatic cleanup (7 days default, configurable)
- β Dual Output: Console (for viewing) + File (for persistence)
- β Async I/O: Non-blocking file writes with sync fallback
- β 6 Environment Variables: Full configuration control
- β Zero Overhead: < 0.1% CPU, ~2MB memory
| Variable | Default | Description |
|---|---|---|
LOG_LEVEL |
INFO | Minimum log level (DEBUG/INFO/WARN/ERROR) |
LOGS_PATH |
./logs | Log file directory |
LOG_CONSOLE |
true | Enable console output |
LOG_FILE |
true | Enable file output |
LOG_MAX_SIZE |
10485760 | Max file size before rotation (bytes) |
LOG_RETENTION |
7 | Days to retain logs |
Windows Command Prompt:
set LOG_LEVEL=DEBUG
npm run server:devWindows PowerShell:
$env:LOG_LEVEL = "DEBUG"
npm run server:devDocker:
docker run -d -p 4000:4000 -e LOG_LEVEL=DEBUG conflixiq-studio:latestCustom Log Directory:
set LOGS_PATH=C:\AppLogs\ConflixIQ
npm run server:devConsole (with color coding):
2025-12-04T10:30:15.123Z [INFO ] π ConflixIQ Studio Server Starting
2025-12-04T10:30:15.200Z [INFO ] β GraphQL proxy ready at http://localhost:4000/graphql
2025-12-04T10:30:16.456Z [DEBUG] Fetching task definitions from http://localhost:8080
2025-12-04T10:30:16.789Z [DEBUG] β Successfully fetched 15 task definitions
File (logs/conflixiq-studio-YYYY-MM-DD.log):
- Daily log rotation with timestamps
- Size-based rotation (10MB default)
- Automatic retention (7 days default)
- Async file writing for performance
# View current day's logs
cat logs/conflixiq-studio-2025-12-04.log
# Follow logs in real-time (Windows PowerShell)
Get-Content logs/conflixiq-studio-2025-12-04.log -Wait
# Follow logs in real-time (Linux/Mac)
tail -f logs/conflixiq-studio-2025-12-04.log
# Search for errors
grep ERROR logs/conflixiq-studio-*.log-
server-logger.js - Core logging framework
- 4 log levels with severity filtering
- Color-coded console output (ANSI codes)
- Async file I/O with sync fallback
- Daily and size-based rotation
- Log retention policies
- Statistics/monitoring API
-
Integrated Endpoints (20+ endpoints)
- Server startup with configuration
- REST endpoints (/api/config, /api/health, /api/metadata/*)
- GraphQL resolvers (workflows, tasks, executions)
- File operations (/api/filestore/*)
- Error handlers with context
-
Testing
- Comprehensive test suite (test-logging.js)
- All log levels verified
- File output validation
- Console color coding confirmed
- Filtering tests passed
Logger Methods:
import { serverLogger } from './server-logger.js';
serverLogger.debug('Detailed operational info');
serverLogger.info('Significant events');
serverLogger.warn('Warning conditions');
serverLogger.error('Error conditions');
// Runtime configuration
serverLogger.setLevel('DEBUG');
const stats = serverLogger.getStats();Log File Structure:
logs/
βββ conflixiq-studio-2025-12-04.log # Today's logs
βββ conflixiq-studio-2025-12-03.log # Yesterday
βββ conflixiq-studio-2025-12-02.log # Previous days
| Metric | Value | Status |
|---|---|---|
| CPU Overhead | < 0.1% | β Negligible |
| Memory Usage | ~2 MB | β Minimal |
| Startup Delay | < 10 ms | β Imperceptible |
| File I/O | Async | β Non-blocking |
| Disk Usage | ~10 MB/day at INFO | β Reasonable |
Not seeing DEBUG messages?
set LOG_LEVEL=DEBUG
# Default is INFO, which hides DEBUGLogs too verbose?
set LOG_LEVEL=WARN
# Only shows WARN and ERRORWhere are my logs?
logs/conflixiq-studio-YYYY-MM-DD.log
Custom log directory?
set LOGS_PATH=C:\MyLogsVersion: 1.0.0
Node.js Requirement: 20.0.0+
Last Updated: December 4, 2025