What a panel supplier can't make you.
Everything on this page is what you can build, customise or connect yourself: an AI agent that edits the same project files you do, your own widgets and components, libraries you already standardised on, your data sources and your own house style. None of it needs a fork of the core.
An agent that edits the same files you do.
NEXT HMI ships a built-in Model Context Protocol (MCP) server exposing 30+ read/write tools over the same pages, datasources, alarms and translations the editor writes — no separate export format, no scripting layer bolted on the side. Every destructive change comes with a dry-run diff first, so an agent building the forty near-identical screens a line needs is reviewable the same way a colleague's pull request is.
Turn it on per project — the manager's MCP checkbox decides whether an agent may touch that project at all — so it is opt-in, not a background process reading everything you have.
Your widgets sit next to the built-ins.
Drop a .tsx into custom-widgets/ and it hot-compiles into the catalogue — description, icon, typed properties and all. No Node toolchain, no rebuild of the core, and no second-class treatment: a house widget you wrote three projects ago is offered on the same dialog, in its own category, as the containers and buttons that ship with the platform.
- Categories, not one long list — layout, content, navigation, inputs, and one per widget pack the project carries.
- Every entry describes itself, because the description comes from the widget's own schema.
- Reuse across projects is a folder copy, and the properties come with it.
External JS libraries, wired in for you.
Drop an ESM bundle into external-libraries/ and import it from any custom widget through a generated import map — charting, gauges, whatever the customer already standardised on. No bundler step of your own to maintain, and no waiting on us to add a library you already trust.
Build it once, drop it anywhere.
A component is a group of widgets you build in the editor — no code — and then reuse like any built-in. Give it properties, and every copy on every page takes its own values: the same KPI cell shows throughput in one place and cap torque in the next. Fix the component once and every copy follows.
- Typed properties — each input is a normal property, so it binds to a tag, a translation or an
$iflike any other. - Slots — leave a hole in the layout and let each copy fill it with its own widgets.
- In the catalogue with its own description, icon and category, next to the built-ins and your custom widgets.
Connectors: OPC-UA now, more on the roadmap.
An asyncua client pool subscribes, writes and browses your OPC-UA address space — viewport-aware, so the tags on screen update first however many the machine exposes. $http reads a value out of any REST API into any property, and a static datasource lets you build and demo a whole project with nothing real connected. That is what ships today. MQTT and Beckhoff ADS are on the roadmap behind the same datasource abstraction; naming them here is a statement of intent, not a claim that they exist yet.
The same page, any house style.
Nothing below is a redraw. It is the built-in widget page — same page file, same bindings, same live tags — rendered under different themes. Colour roles, type family, corner radii and shadow all come from a token file, so a customer's brand is a theme you add, not a project you fork or a stylesheet you maintain by hand.
The theme is picked per project and can be switched at runtime, so the same build serves the plant's own palette and a machine builder's white label without a second deployment. Ten colour roles and seven text styles per theme, each with the contrast maths already done against the background and the raised surface — a customer's brand colour fails here, not in a plant audit.
Your brand, and a paper trail.
For machine builders and regulated plants. The enterprise build shows your own logo on the boot screen instead of ours, comes code-signed, and can add an audit trail: who acknowledged which alarm, who wrote a value to the machine, and who signed in or out. The open-source build stays complete on its own: nothing on the rest of this page needs it. What it costs is on Pricing.