Domain Specific Language used to generate manufacturing work instructions. "Process is Data"

Cover image for Facture
  • Facture is a Domain Specific Language (DSL) for authoring manufacturing work instructions and process specifications.
  • The Facture language is a response to the problems that plague bespoke, WYSIWYG (what you see is what you get) software products commonly used by manufacturers to write instructions. The WYSIWYG paradigm falls short in many areas that are critical to manufacturers:
    • Revision control and change management
    • Access data within process documents
    • Inline automations and notifications are impossible referencing external sources
    • References to external resources are static
    • No global formatting standardization
    • No validation of common errors
  • Facture addresses each of these problems by introducing a WYMIWYG (what you mean is what you get) paradigm.
    • A user expresses what they "mean" through writing a structured programming language purpose-built for writing work instructions in plain text.
    • The plain text is then compiled into a React component so that it can be used by the technician to perform the manufacturing work.
  • WYMIWYG solves problems like this:
    • Modern revision control software like git can be used to provide manufacturers with fine-grain control over change management.
    • A structured programming language can be easily parsed and accessed through an API to perform analysis on process data.
    • Automations (e.g. notify manufacturing engineer when a step is bought-off) can be integrated into the work instruction.
    • References to external resources can be programatic. Warnings shown to the user when a reference is broken or requires update.
    • Modern tools like es-lint and prettier can be customized to provide a global and consistent formatting standard across all instruction writers.
    • Engineers can take advantage of useful features such as auto-complete, validation, and go-to-definition/reference provided by modern text editors using the Language Server Protocol.