Phoenix LiveView beyond SaaS: building a real-time robotics Control Tower


Phoenix LiveView is usually associated with real-time web applications and SaaS dashboards. But what happens when the browser becomes an operational interface for a fleet of physical machines?
In the Fleet Management Platform built with Thoro.ai, it became the foundation of a Control Tower for monitoring and managing autonomous robots directly from the browser.
Operators can see robot positions in real time, overlaid on the actual site map, monitor their statuses, and review telemetry data. They can also use the Callbox feature to summon a robot to a selected waypoint without interacting with the machine directly.
Why Phoenix LiveView was a good fit for Thoro.ai's robotics platform
Asked why Phoenix LiveView was a good fit for this UI, and what it simplified compared to maintaining a separate frontend app, Curiosum CTO Michal Buszkiewicz said: ‘Phoenix LiveView for building the UI allowed us to bring it closer to the data ingestion mechanisms, in a way, without making both sides coupled too tightly.’
Michal stresses that Phoenix’s simplicity of usage alongside live update mechanisms including Phoenix PubSub has allowed the team to optimize their workload. ‘More than ever, a single person can own entire feature work packages as opposed to needing specialist backend and frontend engineers.’, he says.
But displaying live information is only one part of the challenge. The interface needs to stay aligned with the current state of physical devices while operators are monitoring the fleet and triggering actions from the browser.
Challenges of connecting Phoenix LiveView with real-time robot data
Connecting live robot data with the Control Tower interface was quite complex. According to engineer Mateusz Osiński, challenges start right when the page has to be initially served. ‘As maintaining a persistent snapshot of the view all the time is not feasible, you have to rely on telemetry to make the user confident that what they see is the complete, consistent picture’, he says.
A different important aspect was avoiding constant status queries when nobody is viewing. ‘While LiveView sessions must remain consistent as frequent robot updates arrive, we must prevent flooding MQTT when there is no human being watching the data’, says Mateusz.
There are more intricacies to consider. ‘We had to decide which updates go to which screens, keep the data from the robots and the portal in agreement, and be clear about what the operator needs to see versus what can just stay in the logs’, he says.
Data routing and scoping have also been an important consideration. Mateusz says, ’What comes to us via MQTT needs to be properly grouped and routed to the correct set of viewers’, also adding that this aspect is closely related to the reconciliation of data contracts between the machines and the portal. ‘A bad interpretation in the UI usually means missing information. A mismatched type in a command payload is worse: the robot may reject it, or in the worst case mis-handle it. The contract between portal and machine has to be stricter on the way out than on the way in.’
Why Elixir and Phoenix LiveView work well for robotics systems
Asked what this implementation demonstrated about using LiveView in operational or hardware-connected systems, Michal says that ‘what we get using Phoenix LiveView, is desktop-like responsiveness, the ease of wiring up telemetry and commands to the UI, real-time visualization, and BEAM’s high reliability’.
The system manages hundreds of physical devices concurrently across a global fleet and thanks to Elixir and Phoenix LiveView it’s more than just a real-time dashboard - it’s a fully featured operational interface connecting warehouse teams with autonomous fleets.
Read the full Thoro.ai’s case study to see how Curiosum built a fleet management platform for autonomous warehouse robots using Elixir, Phoenix LiveView, MQTT, and the BEAM.
The Thoro.ai Control Tower at a glance
- System: Fleet Management Platform / Control Tower
- Use case: monitoring and managing autonomous warehouse robots
- Backend: Elixir
- Real-time interface: Phoenix LiveView
- Messaging and telemetry: MQTT
- Real-time updates: Phoenix PubSub
- Scale: hundreds of physical devices across a global fleet
Want to power your product with Elixir? We’ve got you covered.
Related posts
Dive deeper into this topic with these related posts
You might also like
Discover more content from this category
In this series, we're going to explore real-world usage of the Elixir. We'll be speaking to different companies that are currently using Elixir to understand the challenges they faced, the benefits and, whether they would recommend it.
Introduction
Drawing from Joshua extensive experience in Elixir and Phoenix LiveView, Joshua offers valuable insights and practical techniques to help developers improve their coding efficiency and maintain high standards.
Learn more about what makes Phoenix Framework's younger sibling stand out and how it compares against other contemporary counterparts.
Offering a unique approach to interactive and real-time web development, Phoenix LiveView emerges as an interesting technological choice.

