Architecture
ERP ──▶ control center ──▶ bridge ──MQTT──▶ access points ──BLE ESL──▶ labels
▲ │ │
└── webhooks ────┘ └── reports status, button presses, battery
The parts
Control center. Keeps the list of sites, bridges, access points, labels, templates and bindings, and works out what every label should show. It has a web interface, a REST API for your systems, and sends webhooks when something happens on the floor. It is built on Supabase (Postgres) with a Nuxt interface.
Bridge. A Docker container, one per site. It draws label images from templates, decides which access point serves which label, keeps a local copy of the desired state, and retries until every label confirms. It contains the MQTT broker the access points connect to.
Access points. Ceiling-mounted, powered over Ethernet. Each has a Bluetooth radio that runs the shelf-label side of the Bluetooth 5.4 standard and a network processor that talks to the bridge.
Labels. E-paper display, RGB LED, one button, NFC for pairing, and a battery. They listen to their access point about once a second, which is why the LED reacts within about two seconds.
Integrations. Your ERP calls the REST API and receives webhooks. For ERPNext there is a ready-made app.
Deployment modes
All modes run the same containers, so nothing is built twice and you can move between them.
| Mode | Control center | Bridge | Connection |
|---|---|---|---|
| Merkora Cloud | Hosted by us | Your site | A tunnel publishes the bridge; the bridge calls the control center over HTTPS |
| Your cloud | Your Supabase project and a web container | Your site | Tunnel, VPN or open port |
| On premises | A server in your network | Same network | Local network only |
We recommend a tunnel (Cloudflare Tunnel or an open-source alternative). The bridge only needs outbound HTTPS.
Who owns what
- Your ERP owns the business data: orders, boxes, magazines. Merkora reads it when a label needs it and does not keep its own copy of your orders.
- The control center owns configuration and the desired content of each label.
- The bridge owns the radio side: which label is paired with which access point, and the transfer queues. It also reports the actual state back.
When something changes in your ERP, it sends a short hint (document type and name). The control center then reads the current record through the ERP's API, so a lost or repeated hint never leaves a label wrong for long. A periodic reconcile catches anything missed.
How fast things happen
| Action | Typical time |
|---|---|
| LED starts blinking after a request | about 2 s |
| New image on a black-and-white strip | under 10 s |
| New image on a colour tile | under 40 s (the panel itself needs about 20 s) |
Security
- Requests from the control center to a bridge are signed with HMAC-SHA256 and expire after five minutes.
- Bridges authenticate to the control center with their own token.
- API keys are per organisation and stored hashed.
- Labels and access points use the encryption of the Bluetooth shelf-label profile; labels ignore unencrypted commands.