Your plant floor, live on a dashboard.
Most factories already generate the data they need. It sits in PLCs, on HMI screens, in a SCADA system nobody exports from, and on paper logs filled in at the end of each shift. So downtime gets discovered the next morning, OEE gets calculated in a spreadsheet a week later, and nobody fully trusts either number.
We build the software layer on top of the machines you already have. We read data over MQTT or Modbus, store it in TimescaleDB, and put it on screens with Grafana or a custom Next.js frontend. Alerts when a line stops. Shift reports that write themselves. A downtime number that comes from the machine, not from memory.
One boundary worth stating up front: we are a software company, not a controls integrator. We do not write PLC logic and we do not touch safety systems. We connect to what is already there, read-only wherever possible. Most projects go live in 3–8 weeks, with a working URL from the end of week one.
A plant with ten or fifty machines and no live view of any of them. Downtime is logged on clipboards, OEE is a monthly argument, and the one person who understood the SCADA setup has left. You want numbers you can defend without replacing hardware that still runs fine.
Hardware and IoT startups fit too. If you are building a sensor, gateway, or machine and need the software behind it, the ingestion pipeline, the dashboards, the customer-facing app, we build that side while you build the physical product.
It also suits established manufacturers whose data is locked inside one vendor's historian. Moving it into open tools like TimescaleDB and Grafana means you own the data, the queries, and the repository they live in.
Scoped in writing. Delivered in your accounts.
Machine data collection
Connections to PLCs, sensors, and gateways over MQTT and Modbus, read-only wherever possible.
Time-series storage
TimescaleDB with compression and retention policies, so years of readings stay fast to query.
Plant dashboards
Grafana for engineers, custom Next.js screens for the floor and the office, each showing what that audience needs.
Downtime and OEE tracking
Availability, performance, and quality computed from machine signals, with the raw readings stored so the numbers can be checked.
Alerts and shift reports
Threshold alerts when a line stops, and scheduled reports built as Inngest background jobs with retries when a send fails.
Operator and manager apps
React Native apps for tagging downtime reasons on the floor and checking the plant from a phone.
Your repo, your data
The repository lives in your GitHub organisation from day one, with full IP assignment and no vendor lock on the data.
Scope and fixed quote
A mutual NDA the same day, then a call to walk through your machines, protocols, and what data already exists. You get one fixed price in writing within 48 hours, and it does not change after kickoff.
First machine on a screen
We connect one machine, or a simulator if site access takes longer, and put its data on a live URL you can open. Daily written updates start here.
Build out the plant
Remaining machines, dashboards, alerts, and reports, added to the same URL as they land. Engineers design the data model and read every change; AI writes the boilerplate and tests.
Launch and the 30-day window
Anything we built that breaks in the first 30 days is fixed at no cost. After that, optional monthly care you can stop any time.