DEV3 Technologies home

DEV3 Jigworth – Manufacturing ERP Laravel Script with BOMs, MRP, Work Orders and Lot Traceability

A self-hosted manufacturing ERP on Laravel 12 and Filament 4: multi-level BOMs, routings, MRP with pegging, work orders, a shop-floor tablet terminal, lot and serial traceability, quality holds and cost variances. Web installer and demo data included. No mobile apps.
by DEV3 TechnologiesVerified Author(0) 0 sales 1 viewsUpdated 13 Nov 2026

Video tour. Pick a section below to browse 37 screenshots in 11 sections.

App & phone tours

Tap play to watch each app. Nothing downloads until you do.

  • Mobile web1:15

Jigworth is a manufacturing ERP for one manufacturer with one or more plants, built by DEV3 Technologies on Laravel 12 and Filament 4. Engineers keep multi-level bills of materials and routings, planners run MRP and release work orders, operators report on a tablet terminal at the work centre, and the owner sees stock, lots, quality holds and costs against standard.

What it does

  • Bills of materials that can be trusted. Multi-level BOMs with versions and effectivity dates, scrap and yield, unit conversions and phantom kits. A loop is refused on save with the path that closes it. A tree view, where-used and side-by-side version compare are built in.
  • Routings and work centres. Operations with setup and run times, work-centre calendars and holidays, and a load view that shows a work centre over capacity weeks ahead.
  • MRP with pegging. A deterministic net-requirements run over sales orders, forecasts, open work orders and purchase orders, safety stock and four lot-sizing rules. Every planned order shows what it is for. Exceptions (past due, expedite, defer, cancel), a firm-and-release list and a weekly item-by-bucket grid. Tested to about 5,000 items by 26 weekly buckets.
  • Work orders. Release with snapshots of the BOM and routing, issue and return material, backflush, report good and scrap quantities, finish into lots or serials, and close with the variances calculated.
  • Shop-floor terminal. A tablet-first page at /floor: pair a device with a code, pick an operator, enter a PIN, see the dispatch list for the work centre, start and pause operations, report with a keypad, scan or type lots, print Code 128 labels. It locks itself after inactivity.
  • Lots and serials. Receive, make and ship with FEFO or FIFO picking, lot holds, and a genealogy view from a customer's serial number back to the supplier lot.
  • Quality. Inspection plans, inspections that hold a lot until someone decides, and non-conformance reports.
  • Purchasing and sales. Suppliers with price breaks, receiving with tolerances, make-to-stock and make-to-order sales orders, shipments and invoices per shipment.
  • Costing and variances. Standard cost roll-up, and variances split into material price, material usage, scrap and labour efficiency that add up exactly to actual minus standard.
  • Reports, API and webhooks. Nine reports with CSV export, a scoped REST API with OpenAPI, signed webhooks, API keys and plant-by-plant access.

Quality checks

The release passed seven gates on the final code: Larastan level 6 with 0 errors, PEST, a build inside the page budget, migrations and the demo seed on MySQL 8 and SQLite, a headless smoke test that crawls the panel, drives the terminal and runs the MySQL race groups (two operators issuing the last lot, two MRP runs at once, finish against close, parallel shipments of one serial, parallel finishes and returns, a BOM loop attempt and PIN guessing), the installer driven from the zip, and a secret scan. The home page scores LH on mobile.

What you should know before buying

  • One manufacturer, one or more plants. Discrete manufacturing: assemblies, fabricated parts, light assembly, furniture, electronics. It is not multi-company and not a process or batch-recipe system.
  • MRP is deterministic net requirements with lead times and lot sizing. There is no finite-capacity scheduling optimiser and no AI forecasting: forecasts are manual or a moving average. The load view shows capacity problems; it does not solve them.
  • Not accounting software. Cost and inventory values export as CSV and journal files for your accounting system.
  • No CAD or PLM integration and no machine connectivity (OPC-UA, MQTT). Operators report on the terminal.
  • Quantities carry six decimals and money is stored in minor units. Barcode scanning uses the browser's detector where available, with manual entry always possible.
  • Web only. The terminal and the panel are responsive for tablets, and there are no native apps. A cron entry every minute is required. Node.js is not needed (assets are prebuilt).

Included

Source code, the web installer, a buyer guide with the API contract and the race notes, demo data for a fictional furniture maker with two plants, about 1,400 items and two years of history, and six months of support.

How it's built

Architecture, stack, key decisions and the quality gates DEV3 Jigworth passed before release.

The engineering behind Jigworth: integer micro-unit quantities, a BOM explosion in exact ratios, an MRP engine that pegs every planned order, and a stock ledger that is the only writer of stock.

The problem it solves

A manufacturing system looks like a list of parts until two operators issue the last lot at once, a bill of materials loops back on itself, or a finished order is closed while it is still being finished. Quantities with scrap, yield and unit conversions must also add up exactly, or the variances never reconcile.

Architecture and approach

Jigworth is a Laravel 12 application with a Filament 4 panel and a hand-built tablet terminal. Quantities are stored as integers in millionths of the base unit and multiplied with bcmath, so scrap, yield and unit conversions explode a bill of materials as exact ratios and round half up once. A single stock ledger service is the only writer of stock moves and levels, taking row locks, picking by FEFO or FIFO and trimming reservations whenever stock leaves.

The MRP engine nets demand against supply per item and weekly bucket, applies lot sizing, and keeps the pegging rows that link each planned order to its cause. Plant isolation is a fail-closed global scope: a request with no plant context sees nothing. Terminal sessions are tokens with a sliding expiry, and PINs lock after repeated wrong guesses.

Quality gates and results

The release passed seven gates, including a headless smoke test and the race checks on MySQL. A reconciliation command passes on the demo data, a fictional furniture maker with two plants, about 1,400 items and about 3,000 work orders of history. An MRP run over 5,000 items and 26 weekly buckets took about 13 seconds in testing.

Tech stack

Area Technologies
Application Laravel 12, Filament 4, Blade, REST API
Data MySQL 8, SQLite
Frontend Tailwind CSS 4, Vite
Quality Pest, Larastan level 6, Playwright

Inside the build

Plan, build and trace: the blueprint hero with the MRP grid and the shop-floor terminal overlapping. Plan, build and trace — the blueprint hero with the MRP grid and the shop-floor terminal overlapping.

Bills of materials: a versioned BOM tree with scrap, backflush and phantom kits. Bills of materials — a versioned BOM tree with scrap, backflush and phantom kits.

Guides & articles

Practical guides and engineering write-ups for DEV3 Jigworth.

Manufacturing ERP software: 6 things to check before you pick one

Last updated
Manufacturing ERP software: 6 things to check before you pick one: DEV3 Jigworth

A factory does not need another spreadsheet of parts, it needs to know what to buy, what to make, and which lot went into which order. Here are six things to check before you pick manufacturing software, with DEV3 Jigworth as the worked example.

Jigworth home page: the blueprint hero with the MRP grid and the shop-floor terminal

1. Are bills of materials versioned and checked?

You need effectivity dates, scrap and yield, unit conversions and a refusal to save a loop. Jigworth shows a tree, where-used and a side-by-side compare of two versions.

A bill of materials tree with its versions

2. Can you follow a planned order back to its cause?

An MRP run is only useful if each suggestion says what it is for. Jigworth keeps pegging from a planned order to the sales line, the parent order or the forecast, and lists exceptions you can firm and release in bulk.

The MRP grid with planned receipts by week

3. Is there a terminal the floor will use?

Operators need big buttons, a PIN and a dispatch list, not the office panel. Jigworth ships a tablet terminal that pairs with a code, locks itself, reports good and scrap quantities and prints barcode labels.

The shop-floor terminal operation card

4. Can you trace a lot both ways?

From a customer's serial number back to the supplier lot, and forward from a lot to every order that used it, with quality holds that stop a lot until someone decides.

Lot genealogy from serial number to supplier lot

5. Do the cost variances add up?

Material price, usage, scrap and labour efficiency should sum exactly to actual minus standard. Jigworth tests that to the cent on its demo data.

6. Does the vendor state its limits?

Jigworth is for one manufacturer with one or more plants. MRP is net requirements with lead times and lot sizing, not a finite-capacity optimiser. It exports cost files for your accounting rather than being accounting software, has no CAD or machine connectivity, and is web only.

Video: the Jigworth tour from MRP to the shop floor

Frequently asked questions

The complete source code (version 1.0.0) as a download from your account, with the setup and usage guides shown on this page. You can modify the code to suit your product.

Buying guides: Laravel scripts with Filament panels and a web installer · Next.js or Laravel for a SaaS script?

Questions about this product (0)

Answers from the DEV3 team and the community.

Ask a question

No questions yet.

Wondering about setup, licensing or customisation? Ask, and the DEV3 team will help.

More from this author

View all

Related in Web Scripts & Software

View all