Design + engineering for manufacturing operations
Live floor with OEE per line. Multi-level BOM with shortage propagation. Andon that writes to maintenance. The cockpit your plant has been imagining for years, instead of fourteen spreadsheets it has been tolerating.
The problems we hear most
Fourteen spreadsheets on SharePoint and a Telegram group for shift handover
The shortage caught at assembly on a Tuesday was the same one anyone in purchasing could have read off the BOM three days earlier. Nothing connects, and the operators carry the system in their heads.
An OEE figure that lives in a monthly PDF
By the time the line manager sees a 41 percent line, the shift it described is already over. The number is correct, and useless.
A maintenance log that lives in a paper notebook by the press
Andons raised verbally, breakdowns noted by hand, the team that follows reads the notebook if they remember to look. The same breakdown next week looks like a coincidence to everyone except the operator on shift.
A planning sheet that no one trusts and no one updates
The Gantt is from last Friday, the actual production lives in someone's head, and customer service is calling purchasing for due dates.
Industria · the cockpit a six-line plant wished it had
A manufacturing operations cockpit for a six-line plant in Brescia. Eight modules shipped in one product, replacing fourteen spreadsheets, a Telegram handover group, and a paper kanban tacked to the wall by the press.
Inside the Industria build
The plant runs six lines and a warehouse out of Brescia. When we walked in, the digital tooling was a SharePoint of fourteen spreadsheets, a Telegram group for shift handover, and a paper kanban tacked to the wall by the press. The shortages caught at assembly stage every other week were the same shortages anyone in purchasing could have read off the BOM three days earlier. The brief opened with one line, namely rebuild the cockpit the plant had been imagining for years.
Every ask shipped
There was no scope ceiling. The brief opened on a Live floor view with OEE per line. By week two it had grown an Orders pipeline with a kanban and a Gantt. By week four a multi-level BOM with shortage propagation. By month two an Inventory sub-app with a bin map, a Quality module, a Maintenance log, and a Reports surface on top. We absorbed every ask and shipped it. No request got pushed to phase two, no module got cut for budget, no feature came back marked out of scope.
Down to the cycle, station by station
The Line detail page reads like the operator's own checklist. OEE for the current shift, throughput against target in real time, the running cycle in seconds, uptime since shift start. Beneath it the station strip, where every cell on the line carries its own cycle time, its target and the operator on it.
We pushed past the dashboard tier on purpose. A line at 41 percent is one piece of information. A line at 41 percent with station S4 idle, no operator, and S2 pulling 26 seconds against a 25-second target is a different conversation. The Raise Andon button on the line header writes a real event into the maintenance queue, with the cell, the cycle anomaly and the active order pre-filled, so the operator never re-types what the system already knows.
The shortage shows up before the order
The BOM module is multi-level. Every product carries its own tree of sub-assemblies, parts and raw materials, with revision tracking and supplier lead times at every node. Shortage flags do not stay on the part where the gap shows up. They propagate up the tree to the assembly that needs them, and into the orders pipeline that depends on the assembly.
A coil running short upstream now reaches the production planner before the order on the floor reads zero. The week the plant caught five shortages at assembly stage on the old system was the week we wrote the propagation. The same week, two of those shortages would already have been visible from the live BOM, with three days of lead in front of them.
Both themes, every breakpoint
Light and dark are not a device choice. Every surface in the cockpit, desktop through phone, ships fully themed in both. The desktop planning surface and the mobile floor surface share the same component library and the same design tokens, and both resolve in light and dark. We resolved every component twice, with two distinct contrast targets, two type-weight scales, and the same React components feeding four fully resolved variants.
Andon, line status, and order start are reachable on mobile in two taps from the home tab. The desktop has the planning surface, the mobile has the floor surface. Neither is a thinned version of the other, and neither is locked to a single theme.
Why this shape matters for a manufacturer
A manufacturing operations cockpit is not a BI dashboard with prettier colours. It is the andon the operator taps when station three falls behind, the work order the planner moves from one line to another at 9.40am because the order book changed, the BOM the buyer reads on a Tuesday so the shortage does not catch assembly on Friday, and the report the plant manager reads on Monday so the conversation with the customer is informed before the call. Industria is the shape of work that does all of those from one product, not eight tools that each see a slice of the floor.
The same product is what the second plant inherits when the company scales to another site. The component library, the BOM logic, the andon flow, the report templates do not get rebuilt; they get configured. That is the part that compounds over time, and the part the spreadsheet stack never gave anyone.
What the work delivered
Eight modules in one product. Six lines live-tracked, with cycle and andon per cell, across more than thirty stations. Both themes resolved on every breakpoint, desktop through phone. The shift handover that used to live in a Telegram group lives in the app, and the operator on the night shift does not squint at a white screen to read it.
What we deliver for this vertical
Live floor with OEE per line
Availability, performance, and quality in real time. Station-level cycle anomalies surface before the shift report is run.
Multi-level BOM with shortage propagation
Every sub-assembly, part and raw material on a tree. Shortage flags walk up the tree to the orders they block.
Orders pipeline with kanban and Gantt
One dataset, two views. Drag a card and the Gantt updates. Move a date and the kanban moves.
Andon raised in one tap
The operator presses, the maintenance queue receives a typed event with the cell, the cycle anomaly, and the active order pre-filled.
Maintenance log per machine
Breakdowns, scheduled service, parts swapped, mean-time-to-repair per asset, written by the people who run the machines.
Quality non-conformance reports
Defect logged at the station, root cause field, attached photo, traceability back to the batch and the operator.
Warehouse bin map
A picture of the warehouse with bins, stock counts per SKU, and the next pick path drawn on it.
Shift handover digest
One screen for the incoming shift, with open andons, lines on track, lines behind, parts short, quality holds.
Reports surface
OEE trends, downtime Pareto, throughput per line per shift, scrap rate. The four reports the plant manager reads before the Monday meeting.
ERP and MES connectors
Hooks for the system you already run. SAP, Microsoft Dynamics or Sage X3 on the ERP side, Siemens Opcenter or a custom MES on the floor side.
SCADA and PLC connectivity
OPC-UA where it exists, a small on-prem gateway with a clear contract where it does not. Floor data into the cockpit, decisions out.
ISA-95 data model
Equipment, work centre, operation, work order, batch, lot. The vocabulary the auditor expects, and the schema the team already speaks.
Light and dark on every breakpoint
Desktop planning and mobile floor, both themes resolved. The line lead on the night shift does not squint at a white screen.
Mobile floor app for the operator
Line health, current cycle, raise andon, log a quality issue, all reachable in two taps from the home tab.
A stack that survives the floor, not just the office
Every layer here exists to pay for itself twice. Once when you are bringing the first plant online, once when you are rolling out to the second site or surviving an audit on the first. We pick the stack that holds up in that second moment.
Next.js App Router on Vercel Edge for the office side. Planning, BOM admin, reports, scheduling, the surfaces the production planner and the plant manager spend their day in. Edge nodes keep the dashboards responsive from any plant office, and the same routes render to mobile for the floor lead who wants the planning view at a workstation between rounds.
Supabase Postgres with row-level security and event sourcing on the work-order log. Multi-site isolation enforced at the row, not in application code, because the second plant will not want to share data with the first by accident. Event sourcing on work orders means every change is replayable, every state derivable, every trace from raw material to shipped unit reconstructable by query rather than by Excel forensic.
Realtime subscriptions for the live floor. Cycles, andons, station status, line health update without a polling cadence that drowns the on-prem gateway. The mobile floor app reads from the same realtime channel, so the operator and the planner see the same line in the same second.
On-prem gateway for PLC and SCADA. OPC-UA where it exists, a thin Node.js daemon with a clear contract where it does not. Floor data goes up to the cockpit, recipe changes and work order start commands go back down. The gateway is the only piece on customer hardware; the rest is cloud-native and updates without a plant visit.
Cloudflare R2 for traceability and quality. Quality NCR photos, machine manuals, batch documentation, regulatory reports. Encrypted at rest with site-managed keys, signed-URL access only, no egress surcharge when the auditor asks for two years of NCRs in one zip.
TypeScript strict from PLC payload definitions to UI components. Renames stay safe, schema migrations stay verifiable, the bus factor stays at zero. When the shift lead who built the rules for line 4 leaves the team, the cockpit does not lose what made line 4 productive.
Questions founders ask
Do you replace our existing MES?
Usually we sit beside it. The MES is the source of truth for work orders and recipes; the cockpit is the surface the floor and the office actually look at. If the MES is a five-year-old install nobody loves, we have replaced one. Either path stays on the table.
How do you connect to PLCs and SCADA?
OPC-UA where the controller speaks it natively, a small Node.js gateway on a plant server where it does not. The gateway publishes typed events to the cockpit and accepts work-order commands back. The contract is documented and version-pinned, not a bespoke binary blob.
Can the cockpit work if the plant WiFi drops?
The on-prem gateway keeps writing to a local journal during an outage and replays when the link is back. The floor mobile app caches the last live state and queues actions; nothing on the operator's side blocks on a server round trip.
How do you handle a multi-site rollout?
Row-level security isolates each site by default, with one identity provider in front. The shared catalogue (parts, suppliers, recipes) sits in one schema; the operational data (work orders, cycles, andons) sits per site. The second plant gets the cockpit the first one has, not a fork.
Where does ISA-95 fit?
As the vocabulary, not a religion. Equipment, work centre, operation, work order, batch, lot map onto Postgres tables. The auditor reads the schema and recognises the words. If your existing MES uses a different model, we map at the boundary, we do not rewrite history.
Does this integrate with our ERP, or do we maintain two truths?
One truth. Work orders originate in the ERP and are surfaced in the cockpit; production reports back to the ERP via a scheduled job or a webhook, depending on what the ERP exposes. We have done SAP, Dynamics and Sage X3 this way.
Where do quality photos and BOM revisions live?
Cloudflare R2, encrypted at rest, signed-URL only. The NCR has the photo inline, the BOM history has every revision with the author, the timestamp, and the reason. Both are queryable from the cockpit; neither lives on someone's phone.
Do you handle on-floor training?
We write the floor docs in the language the line leads actually use, and we sit on the floor for the first shifts to fix what we missed. The line lead becomes the second-line trainer. We do not run permanent on-site training.
Tell us about your plant
A scoping call, a concrete number in the first reply, no agency theatre and no pitch deck of similar-looking case studies.