HOME App Store Flasher Who am I
Docker for microcontrollers

Easily build and manage.

Fabrix is a runtime that allows you to manage meshes of ESP32 devices. Add functionality by dropping in apps that bring their own UI, and drive the hardware you want — all from one browser tab. No USB cable. No reflash.

Apps hot-swap High availability Web desktop ESP32 mesh Art-Net / DMX
SCROLL TO DISCOVER MORE
Why not?

The idea

The idea came to me when I was just starting to build my own devices. After attempting to build and reverse-engineer a few, I realized I was missing a solid base to work from — and when I looked for one, there was none. So I started building a firmware with all the features needed to speed up developing new devices, and to actually deploy and manage them efficiently.

BASIC · MONOLITHIC FIRMWARE

One binary does one job. Changing anything means recompiling, reflashing over a cable, and rebooting every board by hand. A fleet is a chore.

  • — reflash per change
  • — one job per device
  • — USB cable required
WITH A MANAGER · A RUNTIME

The board runs a small runtime instead of your logic. Capabilities are apps you drop in, update, and remove live — over Wi-Fi, across the whole mesh, from a browser tab.

  • + hot-swap apps
  • + many jobs, one board
  • + no cable after flash

The firmware has its trade-offs: staying ready to hot-swap apps means carrying a lot of pre-compiled, unused code, and functions that reserve RAM by default even when they're never called.

Why Fabrix

Firmware that behaves like software.

Monolithic firmware means a full reflash for every change. Fabrix treats each capability as an app you can deploy, update, and remove live — across a whole fleet of devices at once.

01

Hot-swap apps

Push a new app to one device or the whole mesh without a cable or a reboot. Rollback is a click — the old version is still in flash.

no USB · no reflash · < 2s deploy
02

Control motors, light, sensors and much more

Connect your devices to the board I/O and control them easily. Build and manage what you want.

drag-to-wire · live data preview
03

Apps bring their own UI

Each app injects its own window into the shared web desktop — sliders, scopes, pads. No separate dashboard to build or maintain.

injected window · one browser tab
04

One tab, whole mesh

Discover, name, and manage every ESP32 from a single page. A leader and three subleaders keep config in sync, so the fleet survives reboots and lost nodes.

1 leader · 3 subleaders · N nodes
05

High availability built in

Integrated high availability to ensure the system configuration and functionality persist.

1 leader · 3 subleaders · persisted config
06

Open and scriptable

Build your own apps, add API endpoints, and wire up the integrations you need.

REST · WebSocket · open source
07

Debug remotely

Monitor and control many boards from anywhere — check what's happening with no physical connection required.

live logs · remote console
08

Mesh over any connection

The built-in mesh defaults to Wi-Fi so the load is offloaded to the antennas — but any board can also act as a LoRa, Zigbee, or Wi-Fi bridge for another, extending the mesh's range.

Wi-Fi · LoRa · Zigbee
Architecture

A graph wired to all nodes.

When data needs to reach another board, the network reroutes it to wherever you choose. It works much like the internet: each node forwards data to the next hop until it reaches its destination — across many connection types.

Got a board closer to a Zigbee hub? No problem — data can hop to an app on a distant node just as easily.

graph · mesh.fab
SOURCES TRANSFORM OUTPUTS Audio FFTi2s · 48kHz OSC Inudp:9000 LFOsine · 0.5Hz Mix / Map8 universes LED DriverWS2812 · 1024px Art-Net Out10.0.0.x
node-manager.local — web desktop
LED DRIVER
ART-NET
EMO SERVO
Mesh topology

A self-healing mesh, not a hub.

Every device links to the nearest available peers over Wi-Fi, hopping through the mesh to reach the rest. A single leader coordinates; three subleaders hold persisted configuration so the fleet survives a reboot or a leader going dark. Leaders, subleaders and nodes alike download apps and drive hardware.

mesh · fabrix.local
Leader ×1 — elects, coordinates, holds config
Subleader ×3 — persisted config for resilience
Node ×N — lightweight workers
Mesh link — hop to nearest peer
Wi-Fi link — direct fallback to a hub
// dashed ring = persisted config  ·  no single point of failure — lose a node and the mesh reroutes
Apps

Drop-in apps, each with its own window.

Install from the registry or write your own. Every app declares its inputs, outputs, and the UI it injects into the desktop.

v1.0.0

Samsung MDC Control

fabrix/samsung-mdc
v1.0.0

HUE Bridge

fabrix/hue-bridge
v1.0.0

ArtNet

fabrix/artnet-prsr
v1.1.0

HUE Light

fabrix/hue-light
v1.0.0

GPIO -> USB HID

fabrix/gpio-usb-hid
Getting started

Up and running in a few minutes.

Flash a base image once. After that, everything is a hot-swap over Wi-Fi from your browser.

01

Flash the base image

One-time bootstrap over USB. From then on the device joins your network and never needs a cable again.

02

Open the web desktop

Browse to node-manager.local. Every device on the mesh shows up automatically.

03

Install an app & wire it up

Build or pick an app from the registry, drop it into the node, and connect sources to outputs. It deploys live.

node-manager.local — devices
MESH · 21 ONLINE + Install app
vanta-0010.0.0.20 LEADER 3 apps
vanta-0110.0.0.21 SUBLEADER 2 apps
vanta-0210.0.0.22 SUBLEADER 2 apps
vanta-0410.0.0.24 NODE led-driver
+ 17 more nodes · click any device to open its window
led-driver hot-swapped to mesh · 1.4s — all from the browser