Digitize the inputs, schedule against real capacity, and classify every shipment. FACT covers Sales, Engineering, Production and QC: PO PDFs extracted under a validated schema with human confirmation, 10k+ drawing-revision rows moved out of Excel with a three-way check, shift-aware scheduling with cascade preview, and OTD computed with day deltas.
Alex Scharifker · Product architect and implementation lead
Designed and led by Alex Scharifker for FACT as a manufacturing operations and delivery-assurance system.
A precision CNC plant supplying oilfield equipment ran order-to-delivery on PDFs, WhatsApp, Dropbox folders and a whiteboard. Purchase orders were retyped by hand — sometimes with the wrong part number, because source PDFs list sub-components beside the customer part number. Drawing-revision control lived in one person's 10,000-row Excel file. Scheduling was a whiteboard, so committed dates had no capacity basis, and nobody could produce an on-time-delivery number or explain a late shipment with evidence.
Sources in, deterministic logic in the middle, AI restricted to interpretation.
Data sources
Layers
Deterministic logic
Where AI is used
Decision loop
My role
Layer-by-layer architecture, deterministic model, AI guardrails, and the decision loop.
A machining plant could not prove whether an order would ship on time. This system makes the answer computable: documents become data, approvals become state, and commitments are measured against real capacity.
Key takeaways
Architecture Principle
TanStack Start (React 19, edge SSR) with file-based routing. Navigation is computed from the user's roles — quality never sees scheduling, operators never see pricing. Bilingual by surface: production and quality are Spanish-first, the commercial layer English-first.
Server functions run on the edge worker — PO extraction, workflow transitions, work-order numbering, quality-matrix operations, Dropbox calls, delegations. No separate API tier and no container; secrets live in server-only modules kept out of the client import graph.
About 20 Postgres tables spanning orders, engineering/quality and production. They meet at exactly one join — an approved po_line_item becomes a scheduled job — so one team's process change cannot break another's.
Three-dimensional access: nine roles, customer review track (in-house vs. third-party), and time-boxed vacation delegation. Enforced through SECURITY DEFINER helpers behind RLS on every table, never through client-side checks.
Step events, revision events, date changes and downtime events are write-only tables. Every consequential change carries an actor and a timestamp, so customer disputes are settled with records instead of memory.

Get insights on product management and operations delivered to your inbox.
Subscribe on LinkedIn