About this project

Microflow is an open-source visual programming tool for making Arduino hardware interactive without writing code. Users drag about 40 nodes—grouped into Sense, Generate, Shape, Decide, and Express—onto a canvas to wire buttons, potentiometers, motion and distance sensors, LEDs, LED strips and matrices, servos, steppers, relays, piezo tones, I²C devices, and NFC readers. Key capabilities: - Live editing: Changes are sent to the board immediately. No compiling, uploading, or restarting is needed. - Cross-platform: Runs in Chrome or Edge via Web Serial, or as a Tauri desktop app for macOS, Windows, and Linux. Supports Arduino Uno, Nano, Mega, Leonardo, Micro, and ESP32. - Standalone export: A flow can be exported as a self-contained .ino Arduino sketch. - Design tool integration: Figma and Penpot plugins link design variables and tokens to flows over MQTT, enabling physical knobs to control design elements and vice versa. - Beyond-hardware nodes: MQTT, MIDI, LLMs, keyboard hotkeys, and custom JavaScript functions. - AI assistance: An Ask AI feature can add and wire nodes from a natural-language description, using any OpenAI-compatible provider (OpenAI, OpenRouter, Ollama, LM Studio, or Claude Code in the desktop app). - Real-time collaboration: Multiple users can edit a flow simultaneously with live cursors, share by invitation, and publish or fork community flows. Architecture: The flow runtime is written in Rust using a sans-IO design, compiled to WebAssembly for the browser and run natively in the desktop app. The UI is built with React Flow and Yjs for collaboration. The monorepo also includes a Hono/tRPC API server, Figma and Penpot plugin packages, and a documentation site. Licensed under GPL-3.0.