About
An independent Niagara development practice
Small, remote, and focused on one framework rather than on being available for anything. The work is Niagara: modules, widgets, graphics, stations and migrations.
Why this exists
The Niagara ecosystem has a strange shape. It runs a very large number of buildings, it has a capable and open module architecture, and yet the market for third-party modules is served by a handful of vendors. Most integrators who need something outside the stock catalogue either do without, or pay for a bespoke build from whoever is nearest, and then discover three years later that nobody holds the source.
This practice exists in that gap: build the thing properly, sign it, stamp it so it installs across a mixed estate, document it for the engineer who has to commission it, and hand over the source so the module outlives the supplier.
How the work is approached
The constraints on this page are not marketing copy — they are the reasons Niagara work tends to fail. No native code, because a native library will not load on an ARM controller. Stamped to the floor version, because a module stamped too high is refused outright. Signed, because verification modes tighten in every release and become absolute in Niagara 5. Small, because a JACE has far less headroom than the laptop it was developed on.
The same discipline applies to the front end. The widgets shown in the demos are built on a documented token layer — the same one this website is built on — so a client theme is a re-point rather than a rewrite, and a view that must also render inside Workbench is written to the browser engine Workbench actually embeds rather than to whatever shipped in Chrome last month.
What is deliberately not claimed
No client logos, no case studies and no deployment counts appear on this site, because there are none to show honestly yet. The demonstration station behind the widget demos was built for this portfolio. The screenshots are of that station. When there is client work that can be named, it will be named, with permission.
There is no Tridium affiliation, no Niagara certification claimed, and no listing on the Niagara Marketplace. What there is: working, signed, data-bound modules you can interact with on this site before speaking to anybody.
Working together
Engagements are remote and quoted as a fixed price per deliverable against a written specification. The first conversation is usually half an hour and frequently ends with a recommendation that costs nothing — a stock feature you had not found, or a configuration change that removes the need for a module at all.
Capability
Technical ground covered
| Framework | Niagara 4 and Niagara 5; Baja API;
rt, wb and ux module profiles; module
signing and version stamping. |
|---|---|
| Front end | bajaux, BajaScript, PX graphics and standard sheet sets, ORD binding, BQL history queries, responsive token-driven component systems, light and dark theming. |
| Hardware | JACE controllers on ARM, Supervisor and PC stations on x86. |
| Protocols | BACnet/IP and MS/TP, Modbus TCP and RTU, MQTT, REST and vendor APIs by specification. |
| Station work | Platform commissioning, TLS and certificates, user and role models, tagging, histories, alarm classes, schedules, Niagara Network and provisioning, backup and verified restore. |
| Migration | Java 8 to 21 porting, dependency auditing, re-signing, module inventory and readiness assessment, JACE-8000 to JACE-9000 sequencing. |
Next step
Tell us the version, the hardware, and what it has to do.
You will get a written scope and a fixed price against it. If the honest answer is that you do not need us, you will get that instead.