Visual API Workflow Automation Platform
A powerful no-code platform for building, designing, and executing complex API workflows through an intuitive drag-and-drop interface.
Protosynthesis is a full-stack visual workflow builder that enables users to create sophisticated API automation pipelines without writing code. Connect 23+ services (Stripe, Slack, OpenAI, MongoDB, Google Sheets, and more) through an interactive node-based interface with real-time execution feedback and AI-powered recommendations.
- Visual Workflow Design: Drag-and-drop node editor powered by ReactFlow
- Real-Time Execution: Stream execution progress with WebSocket-based updates
- 23+ API Integrations: Pre-configured blocks for popular services
- AI Assistant: Intelligent recommendations for workflow optimization
- Code Editor: Embedded Monaco editor for custom React components
- Template Library: 8 pre-built workflows for common use cases
- Secure Authentication: Supabase-powered JWT authentication
- Cloud Storage: MongoDB Atlas for workflow persistence
- Interactive Canvas: Build workflows by connecting blocks with visual edges
- Custom Nodes: 11+ specialized block types (API, Transform, Logic, React UI, etc.)
- Port-Based Connections: Type-safe input/output port system
- Execution Visualization: Real-time status updates for each block
- Auto-Save: Automatic workflow persistence to cloud
- Topological Sort: Intelligent dependency resolution with DAG validation
- Streaming Updates: Real-time progress events via WebSocket
- Error Handling: Block-level exception catching with detailed logs
- Data Flow: Automatic input resolution from upstream outputs
- Node Recommendations: AI-powered suggestions for next workflow steps
- Connection Validation: Smart compatibility checking between blocks
- Conversational Assistant: Gemini AI for workflow guidance
- React IDE: In-browser code editor with syntax highlighting
- API Schema Library: 23+ pre-configured API definitions
- Template System: Quick-start templates for common patterns
- Export/Import: Save and share workflow configurations
Framework: Next.js 16.1.1 + React 19.2.3 + TypeScript
State: Zustand 5.0.9 (with immer middleware)
Visualization: ReactFlow 11.11.4
Code Editor: Monaco Editor 4.7.0
Styling: Tailwind CSS 4.0
HTTP Client: Axios 1.13.2
Authentication: Supabase 2.90.1
Icons: Lucide React 0.562.0
Framework: Flask 3.0.0 (Python)
Real-Time: Flask-SocketIO 5.3.5
Database: MongoDB Atlas (pymongo)
Authentication: JWT (ES256/HS256 via Supabase)
HTTP Client: Requests 2.31.0
CORS: Flask-CORS 4.0.0
AI Services: Moorcheh AI, Google Gemini
WebSocket: Python-socketio 5.10.0 + Python-engineio 4.8.0
┌──────────────────────────────────────────┐
│ Frontend (Next.js/React/TypeScript) │
│ • ReactFlow Canvas │
│ • Zustand State Store │
│ • Monaco Code Editor │
│ • Real-time Execution Logs │
└────────────┬─────────────────────────────┘
│ HTTP/WebSocket (JWT Auth)
┌────────────▼─────────────────────────────┐
│ Backend (Flask/Python) │
│ • RESTful API Routes │
│ • Topological Sort Execution Engine │
│ • Block Factory Pattern │
│ • JWT Authentication Middleware │
└────────────┬─────────────────────────────┘
│ Authenticated Queries
┌────────────▼─────────────────────────────┐
│ Data Layer (MongoDB Atlas) │
│ • Users Collection │
│ • Projects (nested workflows) │
│ • Nodes & Edges Storage │
└──────────────────────────────────────────┘
- Node.js 18+ and npm/yarn
- Python 3.8+
- MongoDB Atlas account (free tier available)
- Supabase account for authentication
- API keys for desired integrations (Stripe, OpenAI, etc.)
git clone https://github.com/yourusername/protosynthesis.git
cd protosynthesiscd frontend
npm install
# Create .env.local file
cat > .env.local << EOF
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
NEXT_PUBLIC_API_URL=http://localhost:5000
EOF
# Start development server
npm run devcd backend
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
# Create .env file
cat > .env << EOF
MONGODB_URI=your_mongodb_connection_string
SUPABASE_URL=your_supabase_url
SUPABASE_SERVICE_KEY=your_supabase_service_key
SUPABASE_JWT_SECRET=your_jwt_secret
FLASK_SECRET_KEY=your_flask_secret_key
AI_SERVICE_API_KEY=your_ai_service_key
EOF
# Start Flask server
python main.pyFrontend: http://localhost:3000
Backend: http://localhost:5000
- Sign Up: Create an account at
/signup - Create Project: Navigate to
/dashboardand create a new project - Build Workflow:
- Drag blocks from the left control panel onto the canvas
- Connect blocks by dragging from output ports to input ports
- Configure each block by clicking the settings icon
- Execute: Click the "Run" button to execute your workflow
- View Results: Check the execution log panel for real-time updates
- Stripe - Payment processing, invoices, subscriptions
- PayPal - Alternative payment gateway
- Slack - Webhook notifications and messaging
- Discord - Server webhooks and bot integration
- Twilio - SMS and voice messaging
- Telegram Bot - Automated bot responses
- OpenAI - GPT models for text generation
- Anthropic Claude - Advanced language model
- Google Gemini - Multimodal AI capabilities
- Hugging Face - ML model inference
- Stability AI - Image generation (DALL-E alternative)
- ElevenLabs - Text-to-speech synthesis
- MongoDB Atlas - NoSQL document database
- Airtable - Spreadsheet-database hybrid
- Google Sheets - Spreadsheet automation
- Notion API - Knowledge base integration
- Todoist - Task management
- Google Calendar - Event scheduling
- Google Maps - Geocoding and location services
- Custom API - Generic HTTP request builder
- Data APIs - Cat Facts, Agify.io, and more
| Block Type | Description | Use Case |
|---|---|---|
| StartBlock | Workflow entry point | Initialize workflow execution |
| APIBlock | HTTP request executor | Call external APIs with custom config |
| ReactBlock | UI component renderer | Display React components in browser |
| TransformBlock | Data manipulation | JSON parsing, key extraction, formatting |
| LogicBlock | Arithmetic/boolean ops | Calculations, conditionals, comparisons |
| StringBuilderBlock | Template engine | Build strings from dynamic inputs |
| WaitBlock | Delay execution | Add pauses between operations |
| DialogueBlock | User messages | Display notifications or prompts |
| ApiKeyBlock | Credential manager | Securely store API keys |
Protosynthesis/
├── frontend/
│ ├── app/
│ │ ├── dashboard/ # Project management UI
│ │ ├── workflow/ # Visual workflow editor
│ │ ├── login/ # Authentication pages
│ │ ├── signup/
│ │ └── layout.js # Root layout with providers
│ ├── components/
│ │ ├── FlowCanvas.js # ReactFlow editor wrapper
│ │ ├── ControlPanel.js # Block palette sidebar
│ │ ├── CustomNode.js # Node rendering logic
│ │ ├── ReactIDE.js # Monaco code editor
│ │ ├── ExecutionLog.jsx # Real-time execution logs
│ │ ├── TopBar.js # Navigation controls
│ │ └── Assistant/ # AI recommendation panel
│ ├── services/
│ │ ├── projects.ts # Project/workflow API client
│ │ └── api.ts # Axios instance configuration
│ ├── helpers/
│ │ └── store.js # Zustand state management
│ ├── contexts/
│ │ └── AuthContext.tsx # Authentication context
│ └── package.json
│
├── backend/
│ ├── main.py # Flask app + execution engine
│ ├── blocks.py # Base block abstract class
│ ├── project.py # Project data model
│ ├── user_service.py # CRUD operations for users/projects
│ ├── auth_middleware.py # JWT verification decorator
│ ├── api_routes.py # RESTful API v2 endpoints
│ ├── ai_routes.py # AI recommendation endpoints
│ ├── api_schemas.py # 23 API integration definitions
│ ├── database.py # MongoDB singleton connection
│ ├── block_types/ # Block implementations
│ │ ├── api_block.py
│ │ ├── react_block.py
│ │ ├── transform_block.py
│ │ ├── logic_block.py
│ │ ├── wait_block.py
│ │ ├── dialogue_block.py
│ │ ├── api_key_block.py
│ │ ├── string_builder_block.py
│ │ └── start_block.py
│ ├── routes/
│ │ └── agent_routes.py # Gemini AI conversational agent
│ ├── services/
│ │ └── integrations/
│ │ └── ai_service.py # Moorcheh AI client
│ └── requirements.txt
│
├── TEMPLATES_GUIDE.md # Pre-built workflow templates
├── .gitignore
└── README.md
-
AI Content Generator
- Claude AI → Slack + Display
- Generate content with AI and distribute
-
Payment → Notification
- Stripe → Slack + Discord
- Alert teams on successful payments
-
AI Assistant via SMS
- Telegram → Gemini → Twilio SMS → Display
- Conversational AI responding to text messages
-
Task Automation Hub
- Todoist → Google Calendar → Discord
- Sync tasks across productivity tools
-
Data Collection Pipeline
- Cat Fact API → MongoDB → Hugging Face → Google Sheets
- Collect, process, and store data
-
AI Image Generator
- Stability AI → Slack + Display
- Text-to-image generation workflow
-
Voice Content Creator
- OpenAI → ElevenLabs TTS → Slack
- Convert text to speech with AI
-
Multi-Payment Processor
- Stripe + PayPal → Airtable → Slack + Notion
- Process payments from multiple sources


