Microflow,
- @xyflow/react
- Arduino Firmata
- Electron
- Figma plugin API
- Johnny-Five
- shadcn/ui
- MQTT
Interactivity
After helping students at the Master Digital Design for some years, I noticed that many students struggled with a common issue: microcontrollers.
The students want to create interactive (phygital) prototypes, but the learning curve is often too steep for most designers whom have never touched code before.
And I must agree; even though I’ve been working with microcontrollers for several years now, switching from my usual JavaScript environment to the Arduino IDE still is rough for me.
Rapid prototyping
While there are some tools available that simplify working with microcontrollers, such as Arduino Blocks, Code kit or Johnny Five, starting a new project still requires a lot of Arduino-like knowledge.
That is where Microflow comes in.
Microflow is a set of tools designed to facilitate prototyping for interactivity without the need to worry about low-level coding, or coding at all for that matter!
Microflow consists of 2 tools so far:
- Microflow hardware bridge — a Figma plugin that enables interaction with your Figma variables via MQTT.
- Microflow studio — a desktop application that allows you to create interactive prototypes using a visual, flow-based interface.
Microflow hardware bridge
I think Figma is an awesome tool.
After the introducion of variables in Figma, you can create some pretty nifty prototypes and fool any stakeholders, making them believe they’re already viewing a real application.
What is still missing, however, is the interaction with the physical world.
MQTT
Microflow Hardware Bridge relies on MQTT to communicate between Figma and the plugin.
This enables any client – whether in your browser, mobile app, microcontroller, or even an IoT device like your fridge (if it sends the correct data) – to send and receive messages from Figma.
The core of this plugin is achieved through a simple React component:
Some more sorcery is happening in the sendMessageToFigma
and useMqtt
, but I’ll leave that up to your imagination.
Or check the code if you are a nerd like me who likes to know how things work.

Microflow studio
Microflow studio is a tool that allows you to create complext interaction with microcontrollers without writing a single line of code.
This tool was build to make working with microcontrollers as easy as plug-and-play.
In order to achieve that, there is some magic happening behind the scenes.
Flashing firmware
When connecting a supported microcontroller, Microflow studio will automatically detect the board and flash it with the correct firmata firmware.
To make this work with Electron
, the backbone of the application, I stole and adapted the good parts of avrgirl-arduino and gave it some TS-love.
Code to generate code
Microflow studio provides a visual flow-based interface to connect components and create interactions.
For this, I utilized @xyflow/react
. Custom code is generated for the microcontroller based on how the user connected the nodes and edges.
Which is a whole lot of code, even after some simplifications, to generate the following few lines of code for the microcontroller:
A wrapper around a wrapper around a wrapper
To communicate with the firmata firmware we have flashed on the microcontroller, all @microflow/components
are wrappers around the Johnny-Five
library — Which is a wrapper around the firmata.js
library itself.
🪆