From 7f247c8d9617b6615ccc3a1d9a16f063d371115d Mon Sep 17 00:00:00 2001 From: sumitshinde-84 Date: Fri, 14 Aug 2026 17:15:48 +0530 Subject: [PATCH 1/2] shorten Meta Titles --- nuxt/content.config.ts | 2 + .../blog/2026/07/ishikawa-fishbone-diagram.md | 144 ++++++ .../08/manufacturing-dashboard-examples.md | 175 +++++++ .../marketing/content-strategy/blog.md | 15 + nuxt/pages/blog/[...slug].vue | 2 +- nuxt/pages/changelog/[...slug].vue | 2 +- package-lock.json | 439 +++--------------- src/_includes/layouts/base.njk | 8 +- ...seed-round-bring-node-red-to-enterprise.md | 1 + src/blog/2022/12/flowforge-1-2-0-released.md | 1 + src/blog/2023/01/flowforge-1-3-0-released.md | 1 + src/blog/2023/02/flowforge-1-4-0-released.md | 1 + ...integration-platform-for-edge-computing.md | 1 + src/blog/2023/05/device-agent-as-a-service.md | 1 + src/blog/2023/05/flowforge-1-7-released.md | 1 + .../05/integrating-modbus-with-node-red.md | 1 + src/blog/2023/06/dashboard-announcement.md | 1 + ...uild-a-opc-client-dashboard-in-node-red.md | 1 + ...eploy-a-basic-opc-ua-server-in-node-red.md | 1 + .../2023/07/images-in-node-red-dashboards.md | 1 + src/blog/2023/07/influxdb-historical-data.md | 1 + src/blog/2023/08/flowfuse-1-11-release.md | 1 + ...automation-pyramid-to-unified-namespace.md | 1 + src/blog/2023/09/bosch-rexroth-announce.md | 1 + src/blog/2023/10/citizen-development.md | 1 + src/blog/2023/12/ai-use-cases.md | 1 + .../12/introduction-to-unified-namespace.md | 1 + src/blog/2024/01/dashboard-2-multi-user.md | 1 + ...y-node-red-with-flowfuse-to-balenacloud.md | 1 + .../01/unified-namespace-when-not-to-use.md | 1 + .../02/professional-services-for-node-red.md | 1 + ...rship-to-accelerate-industry-4-adoption.md | 1 + ...g-node-red-devices-vs-flowfuse-instance.md | 1 + ...dmin-panel-in-node-red-with-dashboard-2.md | 1 + ...n-application-with-node-red-dashboard-2.md | 1 + src/blog/2024/05/flowfuse-2-4-release.md | 1 + ...d-dashboard-2-layout-navigation-styling.md | 1 + ...lobal-environment-variables-in-node-red.md | 1 + src/blog/2024/06/dashboard-multi-tenancy.md | 1 + src/blog/2024/06/flowfuse-2-5-release.md | 1 + src/blog/2024/07/flowfuse-2-6-release.md | 1 + .../comparing-dashboard-2-with-uibuilder.md | 1 + ...dashboard-new-layout-widgets-and-gauges.md | 1 + .../2024/08/opentelemetry-with-node-red.md | 1 + .../08/using-mqtt-sparkplugb-with-node-red.md | 1 + src/blog/2024/09/flowfuse-release-2-9.md | 1 + ...node-red-version-control-with-snapshots.md | 1 + ...oard-new-group-type-app-icon-and-charts.md | 1 + .../10/exploring-flowfuse-project-nodes.md | 1 + .../10/exploring-flowfuse-sbom-feature.md | 1 + src/blog/2024/10/flowfuse-release-2-10.md | 1 + ...e-devops-pipelines-node-red-deployments.md | 1 + ...de-red-instances-in-centralize-platfrom.md | 1 + ...ick-ways-to-write-functions-in-node-red.md | 1 + .../2024/11/device-agent-as-service-on-mac.md | 1 + src/blog/2024/11/flowfuse-release-2-11.md | 1 + .../11/migrating-from-node-red-to-flowfuse.md | 1 + .../why-point-to-point-connection-is-dead.md | 1 + src/blog/2025/01/flowfuse-release-2-13.md | 1 + ...choose-right-iot-device-management-tool.md | 1 + ...ing-siemens-s7-plcs-with-node-red-guide.md | 1 + src/blog/2025/02/flowfuse-release-2-14.md | 1 + ...ystem-health-performance-scale-flowfuse.md | 3 +- src/blog/2025/03/flowfuse-release-2-15.md | 1 + src/blog/2025/04/flowfuse-release-2-16.md | 1 + src/blog/2025/05/flowfuse-release-2-17.md | 1 + ...-to-generate-pdf-reports-using-node-red.md | 1 + .../2025/06/announcing-node-red-con-2025.md | 1 + src/blog/2025/06/data-acquisition-for-mes.md | 1 + src/blog/2025/06/flowfuse-release-2-18.md | 1 + ...ove-industrial-operations-with-flowfuse.md | 1 + src/blog/2025/06/shop-floor-kpis-for-mes.md | 1 + src/blog/2025/06/what-is-mes.md | 1 + ...onnect-legacy-equipment-serial-flowfuse.md | 1 + ...assistant-better-node-red-manufacturing.md | 1 + src/blog/2025/07/flowfuse-release-2-19.md | 1 + .../quality-control-automation-spc-charts.md | 1 + ...ading-and-writing-plc-data-using-opc-ua.md | 1 + ...mart-manufacturing-order-panel-flowfuse.md | 1 + ...me-subscriptions-alarms-historical-data.md | 1 + src/blog/2025/08/flowfuse-node-red-api.md | 1 + src/blog/2025/08/flowfuse-release-2-21.md | 1 + .../2025/08/flowfuse-why-pricing-matters.md | 1 + .../getting-started-with-flowfuse-tables.md | 1 + .../open-source-software-and-manufacturing.md | 1 + ...virtual-power-plants-low-code-platforms.md | 1 + .../08/pareto-chart-manufacturing-guide.md | 1 + .../2025/09/ai-assistant-flowfuse-tables.md | 1 + src/blog/2025/09/flowfuse-release-2-22.md | 1 + src/blog/2025/09/installing-node-red.md | 1 + ...n-technology-and-operational-technology.md | 1 + .../2025/09/poka-yoke-mistake-proofing.md | 1 + ...reventive-maintenance-equipment-failure.md | 1 + src/blog/2025/09/what-is-5s-checklist.md | 1 + src/blog/2025/09/what-is-takt-time.md | 1 + .../10/building-mcp-server-using-flowfuse.md | 1 + src/blog/2025/10/custom-onnx-model.md | 1 + src/blog/2025/10/flowfuse-release-2-23.md | 1 + src/blog/2025/10/node-red-revolution.md | 1 + .../open-ai-agent-builder-versus-flowfuse.md | 1 + src/blog/2025/10/the-ai-orchestration-hype.md | 1 + .../10/using-ethernet-ip-with-flowfuse.md | 1 + .../building-label-scanner-with-flowfuse.md | 1 + src/blog/2025/11/flowfuse-release-2-24.md | 1 + .../11/industrial-data-validation-guide.md | 1 + ...timize-industrial-data-protocol-buffers.md | 1 + .../11/ptc-kepware-thingworx-divestment.md | 1 + .../store-and-forward-edge-data-buffering.md | 1 + ...root-cause-analysis-definition-examples.md | 1 + src/blog/2025/12/flowfuse-release-2-25.md | 1 + .../node-red-buffer-parser-industrial-data.md | 1 + src/blog/2025/12/node-red-timer.md | 1 + .../read-s7-optimized-datablocks-flowfuse.md | 1 + src/blog/2025/12/what-is-mttf.md | 1 + src/blog/2025/12/what-is-plc.md | 1 + .../01/kepware-opcua-better-alternative.md | 1 + ...story-community-industrial-iot-flowfuse.md | 1 + src/blog/2026/01/opcua-vs-mqtt.md | 1 + src/blog/2026/01/what-is-system-integrator.md | 1 + src/blog/2026/02/flowfuse-release-2-27.md | 1 + .../2026/02/getting-started-with-canbus.md | 1 + src/blog/2026/02/modbus-tcp-vs-modbus-rtu.md | 1 + src/blog/2026/02/motor-anomaly-detector-ai.md | 1 + ...nt-driven-architecture-in-manufacturing.md | 1 + .../2026/03/edge-ai-vs-cloud-ai-in-iiot.md | 1 + src/blog/2026/03/flowfuse-release-2-28.md | 1 + .../03/how-to-implement-dlq-and-retries.md | 1 + ...-how-to-choose-your-flowfuse-deployment.md | 1 + .../2026/04/diagnosing-modbus-degradation.md | 1 + src/blog/2026/04/flowfuse-release-2-29.md | 1 + .../2026/04/modbus-polling-best-practices.md | 1 + .../04/rosetta-stone-for-industrial-data.md | 1 + ...sy-sensor-data-deadband-filter-flowfuse.md | 1 + .../2026/05/git-snapshot-for-iiot-flows.md | 1 + .../manufacturing-software-built-in-stages.md | 1 + .../2026/05/nis2-iec-62443-manufacturers.md | 1 + .../2026/05/opc-ua-security-attack-vectors.md | 1 + ...ent-driven-downtime-escalation-workflow.md | 1 + src/blog/2026/06/flowfuse-release-2-31.md | 1 + .../2026/06/opc-ua-security-best-practices.md | 1 + ...-communication-latency-causes-and-fixes.md | 1 + .../scaling-manufacturing-data-integration.md | 1 + src/blog/2026/07/digital-work-instruction.md | 1 + src/blog/2026/07/flowfuse-release-2-32.md | 1 + src/blog/2026/07/ishikawa-fishbone-diagram.md | 1 + .../2026/07/software-defined-manufacturing.md | 1 + .../2026/03/march-scheduled-maintenance.md | 1 + .../2026/06/july-scheduled-maintenance.md | 1 + ...critical-infrastructure-data-management.md | 1 + ...nd-flowfuse-to-revolutionize-irrigation.md | 1 + .../manufacturing-digital-transformation.md | 1 + ...h-automated-digital-twin-demonstrations.md | 1 + ...ions-while-maintaining-competitive-edge.md | 1 + .../un-wmo-nr-data-sharing.md | 1 + src/index.njk | 1 + src/industries/aviation-aerospace.md | 1 + src/industries/semiconductors.md | 1 + src/landing/plc.njk | 1 + src/node-red/getting-started/library/index.md | 1 + src/node-red/getting-started/string.md | 1 + .../integration-technologies/index.md | 1 + src/node-red/peripheral/barcodescanner.md | 1 + src/node-red/protocol/index.md | 1 + .../2023/building-scalable-ha-node-red.md | 1 + .../2023/flowforge-device-management.md | 1 + src/webinars/2023/industrial-data-node-red.md | 1 + src/webinars/2023/node-red-10-years.md | 1 + src/webinars/2023/sync-music-to-fireworks.md | 1 + src/webinars/2024/balena.md | 1 + ...rprise-agility-and-process-optimization.md | 1 + ...tt-broker-for-industrial-transformation.md | 1 + .../2024/node-red-dashboard-multi-user.md | 1 + ...shop-floor-data-to-real-time-dashboards.md | 1 + ...ode-red-projects-at-scale-with-flowfuse.md | 1 + ...-core-components-of-a-unified-namespace.md | 1 + ...n-and-automation-in-container-terminals.md | 1 + ...o-smart-with-flowfuse-and-revolution-pi.md | 1 + src/webinars/2025/simplifying-opc-ua/index.md | 1 + src/webinars/2025/the-ptc-tpg-deal.md | 1 + ...the-agile-factory-on-the-connected-edge.md | 1 + .../2026/the-bus-factor-in-real-life.md | 1 + ...ata-into-knowledge-with-flowfuse-ai-mcp.md | 1 + 182 files changed, 595 insertions(+), 368 deletions(-) create mode 100644 nuxt/content/blog/2026/07/ishikawa-fishbone-diagram.md create mode 100644 nuxt/content/blog/2026/08/manufacturing-dashboard-examples.md diff --git a/nuxt/content.config.ts b/nuxt/content.config.ts index be8e06e6f2..544cf40cfc 100644 --- a/nuxt/content.config.ts +++ b/nuxt/content.config.ts @@ -100,6 +100,7 @@ export default defineContentConfig({ date: z.coerce.date(), authors: z.array(z.string()).optional(), issues: z.array(z.string()).optional(), + metaTitle: z.string().optional(), }) }), // Source files stay at src/blog/ (11ty's historical location) rather than @@ -113,6 +114,7 @@ export default defineContentConfig({ schema: z.object({ subtitle: z.string().optional(), description: z.string().optional(), + metaTitle: z.string().optional(), date: z.coerce.date(), lastUpdated: z.coerce.date().optional(), authors: z.array(z.string()).optional(), diff --git a/nuxt/content/blog/2026/07/ishikawa-fishbone-diagram.md b/nuxt/content/blog/2026/07/ishikawa-fishbone-diagram.md new file mode 100644 index 0000000000..59853a1966 --- /dev/null +++ b/nuxt/content/blog/2026/07/ishikawa-fishbone-diagram.md @@ -0,0 +1,144 @@ +--- +title: 'Ishikawa Fishbone Diagram: 6M, Manufacturing Example & Template' +authors: + - sumit-shinde +cta: + type: contact + title: Turn suspected causes into verified ones + description: Talk to our team about connecting your PLCs, sensors, and quality systems to FlowFuse, so you can verify which root cause is real with live production data and confirm your fixes actually hold. +date: '2026-07-27' +description: Learn what an Ishikawa (fishbone) diagram is, the 6Ms, and how to use it for root cause analysis in manufacturing settings. +image: /blog/2026/07/images/what-is-ishikawa-fishbone-diagram.png +lastUpdated: '2026-07-29' +metaTitle: 'Ishikawa Fishbone Diagram: The 6Ms & Examples' +subtitle: How a 60-year-old drawing still finds the root cause faster than most modern tools. +tags: + - flowfuse +tldr: An Ishikawa diagram, better known as a fishbone or cause-and-effect diagram, finds the real cause of a problem instead of chasing symptoms by sorting possible causes into categories branching off a central spine. The 6Ms are a starting point for manufacturing, but you swap them for whatever fits your problem. It works because it forces a team to externalize and argue their theories on paper before spending money on a fix, and it fails when people stop at labeling empty branches and call that analysis. The diagram surfaces suspects; verifying which one is real, with data, is what actually fixes the problem. +excerpt: + type: minimark + value: + - - p + - {} + - 'The most dangerous words in a root cause investigation are often the ones spoken with the most confidence: "We already know what caused it." That assumption sends teams straight to a fix before they''ve explored the system behind the failure. When the same issue returns a few weeks later, it becomes clear they fixed the symptom, not the cause.' +--- + +The most dangerous words in a root cause investigation are often the ones spoken with the most confidence: "We already know what caused it." That assumption sends teams straight to a fix before they've explored the system behind the failure. When the same issue returns a few weeks later, it becomes clear they fixed the symptom, not the cause. + +Kaoru Ishikawa built a drawing in the 1960s to kill that exact reflex. It looks like a fish skeleton, which is why almost nobody calls it by his name. Sixty years and a dozen fancier root-cause tools later, engineers still reach for it first. Not because it's clever. Because it forces every theory in the room onto one wall, where the weak ones have nowhere to hide. + +## What Is a Fishbone Diagram? + +Strip away the terminology and a fishbone diagram is a structured way to brainstorm causes without letting the loudest person in the room decide the answer. + +You write the problem, the effect you want to eliminate, on the right side. That's the fish's head. A horizontal line runs left into it: the spine. Off that spine you draw diagonal branches, the ribs, and each rib is a category of causes. Under each category you hang the specific things that might be going wrong. When you're done, you're looking at every plausible cause for one problem, sorted into groups, on a single page. + +The naming gets confusing, so here it is plainly. Ishikawa diagram, fishbone diagram, and cause-and-effect diagram all refer to the same tool. The names are used interchangeably in practice, though purists will point out that not every cause-and-effect sketch follows the fishbone shape. It's one of the [seven basic quality tools](https://en.wikipedia.org/wiki/Seven_basic_tools_of_quality), the club of simple techniques quality engineers lean on before pulling out anything statistical. + +What it does *not* do is prove anything. A fishbone diagram generates hypotheses. It tells you where to look, not what the answer is. That distinction is the whole difference between a diagram that helps and one that wastes an afternoon, and we'll come back to it. + +## Who Invented the Ishikawa Diagram? + +The diagram is named after [Kaoru Ishikawa](https://en.wikipedia.org/wiki/Kaoru_Ishikawa) (1915–1989), a Japanese engineer, University of Tokyo professor, and one of the founding fathers of modern quality management. He popularized it in the 1960s while developing quality processes at the Kawasaki shipyards, and formalized it in his 1968 book *Guide to Quality Control*. His aim was democratic: he wanted quality improvement in the hands of ordinary workers, not locked inside a specialist team, so he built a diagram simple enough that anyone on the line could use it, which is a big part of why the [American Society for Quality](https://asq.org/quality-resources/fishbone) still lists it among the seven basic tools sixty years on. + +Its reach since has been broad. One famous case is Mazda, whose engineers reportedly used an Ishikawa diagram to map every factor behind the "Jinba Ittai" (horse and rider as one) feel of the original MX-5 Miata. + +## What Are the 6Ms in a Fishbone Diagram? + +Ishikawa suggested generic labels for the rib categories so teams would have somewhere to start instead of staring at a blank spine. In manufacturing, those defaults became the 6Ms: + +- **Manpower** (people): training gaps, unclear responsibilities, communication breakdowns, fatigue. +- **Method** (process): missing standards, steps performed inconsistently, procedures that no longer match reality. +- **Machine** (equipment): worn parts, skipped maintenance, wrong tooling, calibration drift. +- **Material** (inputs): out-of-spec raw material, supplier variation, wrong batch, storage damage. +- **Measurement** (data): miscalibrated instruments, wrong gauge, inconsistent inspection, bad data collection. +- **Mother Nature** (environment): temperature, humidity, vibration, dust, anything the surroundings do to the process. + +Here is the part most guides bury: Ishikawa himself told people to rename these categories to fit their problem. The 6Ms are training wheels, not scripture. They map cleanly onto a factory floor, but even there you'll often want to tweak them, and outside a production line they can fall apart entirely. + +Some teams add a seventh M, Money, when cost drivers matter. Process industries sometimes swap in categories like Environment, Equipment, and Procedures. For a service or business problem, the 7Ps (Product, Price, Place, Promotion, People, Process, Physical Evidence) fit better than machinery and materials. The right categories are the ones that make your team say "oh, we haven't thought about that bucket yet." If a category sits empty because it doesn't apply, delete it. An empty rib is not a sign you missed something; it's a sign the label was wrong for your problem. + +## How to Make a Fishbone Diagram + +The mechanics take five minutes. Doing it well takes discipline. Here's the sequence. + +**Write a problem statement, not a topic.** "Machine downtime" is a topic. "Line 3 filler stops an average of 4 times per shift, each stop lasting 6 to 12 minutes" is a problem statement. The second one gives the team something specific to explain. Vague heads produce vague ribs. + +**Draw the spine and pick your categories.** Four to six is the sweet spot. Fewer and you're not really sorting; more and the diagram turns into a wall of branches nobody can read. Start from the 6Ms if you're in manufacturing, adapt hard if you're not. + +**Brainstorm causes under each category.** This is where the tool earns its keep. Go category by category and ask what, under this heading, could produce the effect. Write everything down, even the theories you doubt. The point of sorting into buckets is that it triggers ideas you'd never reach with an open-ended "what's wrong?" + +**Push each cause deeper with "why."** A first-level cause is rarely the root. Pair the fishbone with the [5 Whys](/blog/2025/12/five-whys-root-cause-analysis-definition-examples/): for each rib entry, ask why that happens, and hang the answer as a sub-branch. "Bearing failed" becomes "bearing failed → lubrication skipped → PM schedule not followed → no one owns the schedule." Now you're looking at a root, not a symptom. + +**Then stop drawing and start verifying.** This is the step that separates analysis from theater. A finished fishbone is a list of *suspects*, and every suspect is a hypothesis you can test against data. Circle the two or three most likely causes, then go check them: pull the maintenance log, measure the material, watch the operator. The diagram points the flashlight. It doesn't tell you what's in the dark. + +## Fishbone Diagram Example + +Abstract diagrams teach nothing, so here's the kind of case that plays out on a real line. A packaging line is rejecting cartons because the printed date code is smearing. That's the head of the fish. The team runs 6M categories: + +- **Machine:** print head height drifted, print head overdue for cleaning, conveyor speed increased last month. +- **Material:** new ink supplier introduced two weeks ago, carton stock switched to a glossier finish. +- **Method:** no standard for print-head-to-carton distance, cleaning interval never written down. +- **Manpower:** night shift not trained on the new ink's dry time. +- **Measurement:** no check on ink cure before cartons stack. +- **Mother Nature:** plant humidity up since the HVAC repair. + +Six categories, roughly a dozen suspects. Now the 5 Whys on the strongest lead: the glossier carton stock. Why does gloss smear? Ink doesn't absorb. Why not? The new stock is non-porous. Why did we switch? Purchasing found a cheaper supplier. Why didn't anyone flag the print impact? No one owns print-compatibility sign-off on material changes. + +Notice what happened. The obvious fix, "clean the print head," would have bought a day of relief and then the smearing returns. The fishbone surfaced two causes that interacted, a material change and a missing sign-off process, that a single-thread investigation would have walked right past. That's the entire value of the tool: it makes interacting causes visible instead of letting you commit to the first plausible one. + +## Fishbone vs. 5 Whys vs. Pareto: Which One, When + +The fishbone rarely works alone, and it's easy to reach for the wrong tool. Here's how the three most common root-cause techniques divide the labor. + +| Tool | What it does | Use it when | Where it falls short | +| ------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | +| **Fishbone diagram** | Goes wide. Surfaces every plausible cause across several categories so nothing obvious gets missed. | You don't yet know where the problem lives and want the team's collective knowledge on one page. | Treats every branch as equally worth investigating. Says nothing about which cause matters most. | +| **[5 Whys](/blog/2025/12/five-whys-root-cause-analysis-definition-examples/)** | Goes deep. Drills a single cause chain, asking "why" until you hit something fixable rather than another symptom. | After the fishbone, on the two or three branches you think are strongest. | It's a single thread. Drill the wrong cause and you'll reach a confident, well-reasoned, wrong answer. | +| **[Pareto chart](/blog/2025/08/pareto-chart-manufacturing-guide/)** | Ranks. Sorts candidate causes by frequency or impact so you fix the vital few, not the trivial many. | You can count occurrences and need to decide where to act first. | Needs data you may not have early on, and only ranks what you already thought to measure. | + +The sequence is: fishbone to find suspects, 5 Whys to reach the root of the best ones, Pareto to decide which roots are worth fixing first. They're not competitors. They're a pipeline. + +## Fishbone Diagram Template + +You don't need software. Here's a text skeleton you can drop into any doc and fill in: + +```text +Method Machine Measurement + \ | / + cause ─────\ cause ──| cause ───/ + cause ──────\ cause ──| cause ──/ + \ | / + ══════════════════════════════════════════════════════════► [ PROBLEM ] + / | \ + cause ──────/ cause ──| cause ──\ + cause ─────/ cause ──| cause ───\ + / | \ + Manpower Material Mother Nature +``` + +Rules for using it: replace the six labels with categories that fit *your* problem, keep the problem statement specific, and treat every "cause" line as something you'll later verify with data. If you prefer digital, any diagramming tool works, but the paper-and-marker version on a wall is often better because it gets the whole team pointing at the same branch. + +## Common Fishbone Diagram Mistakes + +Most failed fishbone sessions fail the same handful of ways. + +**Labeling empty branches and calling it done.** Six categories with two vague words under each is a brainstorming template, not root-cause analysis. If the diagram doesn't contain specific, checkable causes, you've drawn a fish, not found a problem. + +**Confusing the diagram with the answer.** The single most common error. The fishbone lists suspects; it does not convict any of them. Teams that skip verification and just "fix" the most-discussed branch are gambling, not analyzing. + +**Using the 6Ms where they don't fit.** Forcing every problem into the manufacturing 6Ms produces empty ribs and missed causes. Pick categories that match your failure surface, and drop the ones that don't apply. + +**Vague problem statements.** A fuzzy head produces a fuzzy diagram. Spend the extra two minutes writing what actually happened, where, and how often. + +**Stopping at the first level.** "Operator error" is where lazy analysis ends and real analysis begins. Ask why five times before you believe you've hit a root. + +## Where the Fishbone Fits + +The Ishikawa diagram survives because it does one job well: it gets a group of people to externalize their theories, sort them, and argue about them on paper before spending money. It's cheap, it's visual, and it needs no training to read. Those are the same reasons the simplest tools tend to outlast the sophisticated ones. + +It has limits. It shows causes but not their relative weight or how they interact over time; for that you'd reach for a [Pareto chart](/blog/2025/08/pareto-chart-manufacturing-guide/), fault tree, or statistical analysis. And it's only as good as the verification that follows it. Draw the fish, then go prove which bone is broken. + +Used that way, as a hypothesis generator that hands off to real investigation, it remains one of the fastest ways to stop treating symptoms and start fixing causes. Sixty years in, that's still a rare thing for a tool to do. + +The catch is that verification needs data the whiteboard can't give you: how often the machine actually stalls, whether the material batch really shifted, what the sensor logged when the defect appeared. That's the step where [FlowFuse](/) fits, connecting your PLCs, sensors, and quality systems into dashboards so you can test which suspected cause is real and confirm the fix held. It won't draw the fishbone for you, but it settles which bone was broken. diff --git a/nuxt/content/blog/2026/08/manufacturing-dashboard-examples.md b/nuxt/content/blog/2026/08/manufacturing-dashboard-examples.md new file mode 100644 index 0000000000..f5ed0817bc --- /dev/null +++ b/nuxt/content/blog/2026/08/manufacturing-dashboard-examples.md @@ -0,0 +1,175 @@ +--- +title: 5 Manufacturing Dashboard Examples for Production, OEE & Quality +authors: + - sumit-shinde +cta: + type: demo + title: Build Your Manufacturing Dashboard + description: Connect factory data and create real-time dashboards for production, OEE, downtime, and quality with FlowFuse. +date: '2026-08-05' +description: Learn what makes an effective manufacturing dashboard and see five examples for tracking production performance, equipment efficiency, downtime, and quality. +image: /blog/2026/08/images/manufacturing-dashbaord-examples.png +subtitle: Manufacturing dashboard examples for modern shop-floor operations. +tags: + - posts + - dashboard + - flowfuse +tldr: Manufacturing dashboards give teams real-time visibility into production, OEE, downtime, quality, and calibration. Explore five dashboard examples and the key metrics that help manufacturers improve operations. +excerpt: + type: minimark + value: + - - p + - {} + - A manufacturing dashboard brings machine data, production metrics, downtime, and quality information into one real-time view, so teams can understand what's happening on the shop floor and act on it. +--- + +A manufacturing dashboard brings machine data, production metrics, downtime, and quality information into one real-time view, so teams can understand what's happening on the shop floor and act on it. + +This guide covers what manufacturing dashboards do, the metrics they should track, and five dashboard examples, for production, OEE, downtime, quality, and calibration, built with [FlowFuse](/). + +## What Is a Manufacturing Dashboard? + +A manufacturing dashboard is a visual interface for monitoring production performance in real time. It pulls data from factory equipment and business systems ([PLCs](/blog/2025/12/what-is-plc/), [SCADA](/use-cases/scada/), [MES](/blog/2025/06/what-is-mes/), [ERP](/blog/2025/06/connect-shop-floor-to-odoo-erp-flowfuse/), [databases](/blog/2025/08/getting-started-with-flowfuse-tables/), sensors, or operator input) into a single view built around production output, machine status, downtime, OEE, quality, and targets. FlowFuse's own [Dashboard platform](/platform/dashboard/) is built specifically for assembling these views without writing custom front-end code. + +The key difference between a dashboard and a report is timing. A report tells you what happened after the shift ends. A dashboard shows you what's happening now, while there's still time to change the outcome. + +That's also what separates a good dashboard from a cluttered one: it doesn't try to show everything. It shows the specific person using it what they need in order to act, which is exactly why dashboards have become so central to how manufacturers run production. + +## Why Dashboards Matter in Manufacturing + +Production problems get expensive when they stay invisible. A machine that stops, a line falling behind target, or a defect that goes unnoticed can quietly erode throughput, cost, and delivery schedules before anyone catches it. + +A shared dashboard closes that gap. Operators see production status as it happens, supervisors track performance across the line, and maintenance teams spot equipment issues sooner. The value isn't the dashboard itself; it's the time saved between a problem occurring and someone responding to it. That's the shift FlowFuse is built to support: turning raw factory data into faster decisions on the floor, whether the source is an MES system or a SCADA historian. + +Knowing dashboards matter is one thing. Knowing what belongs on them is another, and that comes down to the metrics behind the view. + +## Key Metrics Every Manufacturing Dashboard Should Track + +The right KPIs depend on the role and the goal, but most production dashboards center on [four categories: output, equipment performance, downtime, and quality](/blog/2025/06/shop-floor-kpis-for-mes/). + +- **Production output:** actual output against the planned target +- **OEE:** equipment effectiveness across availability, performance, and quality +- **Downtime:** lost production time and its biggest contributing causes +- **Cycle time:** whether machines and processes are running at expected speed +- **Quality performance:** defects, scrap, rework, and first-pass yield +- **WIP levels:** where bottlenecks are forming in the production flow + +These metrics exist to answer a small set of operational questions: Are we producing at the required rate? Are machines running effectively? Where is time being lost? Are we producing quality parts? If a dashboard can't answer those quickly, it's showing too much, or the wrong things. + +What that looks like in practice varies by where the metrics are applied. Here's how these same building blocks show up across five common manufacturing dashboards. + +::cta-image{alt="Wenco deploys new dashboard pages in days with FlowFuse - book a demo" cta="demo" src="/images/cta/wenco-book-demo.png"} +:: + +## Manufacturing Dashboard Examples + +Dashboards work best when they're designed around a specific decision, not a general audience. A production team needs visibility into output and downtime; quality and maintenance teams need a different lens entirely. The five examples below show common patterns, all built with FlowFuse using data from machines, production systems, databases, and industrial protocols, but for using it purpose it uses demo data + +### 1. Production Dashboard (Andon Live) + +A production dashboard answers one question in real time: is the line hitting its target? FlowFuse's **Andon Live Dashboard** gives operators and supervisors a shop-floor view of actual output against target, shift progress, and current line status, so a gap can be caught and addressed before it grows. + +![FlowFuse Andon Live dashboard showing a target of 100 against an actual count of 84, a delta of 16, stoppage timers, and the current shift for Production Line 33](/blog/2026/08/images/andon-live-dashboard.png)*FlowFuse Andon Live dashboard showing a target of 100 against an actual count of 84, a delta of 16, stoppage timers, and the current shift for Production Line 33* + +It typically shows actual production count, target vs. actual output, shift progress, and stoppage information, the same building blocks behind FlowFuse's [Andon Task Manager](/blog/2025/06/building-andon-task-manager-dashboard-with-ff/). Because every production environment is different, FlowFuse connects this same dashboard pattern to whatever data sources are already in place, including PLCs, MES systems, production counters, [MQTT](/blog/2024/06/how-to-use-mqtt-in-node-red/), and [OPC UA](/blog/2025/07/reading-and-writing-plc-data-using-opc-ua/). + +**Ready to deploy:** [Andon Live Dashboard](/blueprints/manufacturing/andon-live/) + +### 2. OEE Dashboard + +Where a production dashboard tells you whether output is on target, an OEE dashboard explains *why* it isn't. FlowFuse's **OEE Dashboard** combines production and downtime data into one view covering OEE, availability losses, performance losses, quality losses, and trend data over time. + +![FlowFuse OEE dashboard with gauges for OEE, performance, availability and quality above a downtime summary, production totals, and a table of underperforming machines](/blog/2026/08/images/oee-dashboard--1-f77f847f.png)*FlowFuse OEE dashboard with gauges for OEE, performance, availability and quality above a downtime summary, production totals, and a table of underperforming machines* + +That breakdown matters because a low OEE score can come from very different root causes, frequent stops, slow cycle times, or defect rates, and each one needs a different fix. Separating them lets teams target the actual source of the loss instead of [chasing a misleading number](/blog/2026/05/fixing-oee-measurement-in-manufacturing/). + +**Ready to deploy:** [OEE Dashboard](/blueprints/manufacturing/oee-dashboard/) + +### 3. Downtime Dashboard + +Availability losses are usually the biggest piece of that OEE picture, which is why they tend to warrant a dedicated view of their own. Downtime is the single biggest drain on production capacity, and the real question isn't just *when* machines stop, it's *why*. FlowFuse's **Downtime Tracking Dashboard** captures stop events as they happen and turns them into a live view of downtime duration, causes, and impact on availability, rather than [something pieced together from manual spreadsheets after the fact](/blog/2026/06/event-driven-downtime-escalation-workflow/). + +![FlowFuse downtime tracking dashboard listing open stoppages by machine with start times, how long each has been open, and a button to close the event and log a reason](/blog/2026/08/images/downtime-logger.png)*FlowFuse downtime tracking dashboard listing open stoppages by machine with start times, how long each has been open, and a button to close the event and log a reason* + +That shift, from reviewing downtime after a shift to tracking it in real time, is what lets teams move from reacting to failures toward reducing what causes them. + +**Build it:** [Build a Machine Downtime Tracking Application](/blog/2026/07/build-downtime-logger/) + +### 4. Quality Dashboard (Defect & Quality Monitoring) + +Quality losses need the same treatment. A quality dashboard shows where defects are happening and what's driving them. FlowFuse's **Defect & Quality Monitoring Dashboard** combines defect data, production information, and quality KPIs, including defect trends, defect categories, first-pass yield, cost of poor quality, and a Pareto breakdown of causes, into one view. + +![FlowFuse defect and quality monitoring dashboard with a Pareto chart of defect types, a root cause breakdown, severity and disposition splits, and SLA resolution times](/blog/2026/08/images/flowfuse-defect-monitoring-dashboard.png)*FlowFuse defect and quality monitoring dashboard with a Pareto chart of defect types, a root cause breakdown, severity and disposition splits, and SLA resolution times* + +The [Pareto view](/blog/2025/09/creating-pareto-chart/) tends to be the most useful part: it isolates the small number of issues responsible for most of the quality loss, so improvement effort goes where it actually pays off, instead of spreading thin across every defect type. Pairing it with [statistical process control](/blog/2025/07/quality-control-automation-spc-charts/) catches quality drift before it produces a defect at all. + +**Build it:** [Build a Defect Tracking and Quality Monitoring Dashboard](/blog/2026/07/defect-and-quality-monitoring/) + +### 5. Calibration Dashboard + +Defects aren't always caused by the process itself; sometimes the measurement equipment used to catch them is the problem. Where measurement accuracy affects product quality and compliance, [instrument calibration](/blog/2026/07/what-is-instrument-calibration/) tracking can't run on spreadsheets. FlowFuse's **Calibration Management Dashboard** gives teams a live view of measurement equipment status (what's ready, what's due, what's overdue) along with calibration history and compliance status, cutting the risk of equipment running outside its required window. + +![FlowFuse calibration management dashboard showing 120 instruments split into valid, due soon and overdue, a 73.3% compliance rate, and a table of overdue tools by department](/blog/2026/08/images/calibration-management-dashboard.png)*FlowFuse calibration management dashboard showing 120 instruments split into valid, due soon and overdue, a 73.3% compliance rate, and a table of overdue tools by department* + +**Build it:** [Tracking Instrument Calibration with a Digital Dashboard](/blog/2026/07/calibration-management-dashboard/) + +## Manufacturing Dashboard Design Best Practices + +Having the right dashboard type for the job is only half the equation. How it's designed determines whether anyone actually uses it. A manufacturing dashboard should make decisions easier, not add more information to review, and the best dashboards are designed around the people using them and the actions they need to take. + +Key principles include: + +- **Design for the user:** operators, supervisors, and managers need different views based on their responsibilities +- **Focus on actionable metrics:** every KPI should help identify a problem, measure progress, or support a decision +- **Keep important information visible:** production status, downtime, and quality issues should be clear without searching through multiple screens +- **Avoid unnecessary complexity:** too many charts and metrics make important information harder to find +- **Support drill-downs:** start with a clear overview, then allow users to investigate the details behind an issue + +A successful manufacturing dashboard is not the one with the most data. It is the one that helps the right person understand the situation and act quickly. + +One design decision worth calling out on its own is timing: not every dashboard should show the same moment in time. + +## Real-Time vs. Historical Manufacturing Dashboards + +Not every manufacturing decision requires the same type of dashboard: + +- **Real-time dashboards** are built for immediate action, showing what is happening on the shop floor right now, such as current production output, machine status, downtime events, and quality issues +- **Historical dashboards** are [built for analysis](/blog/2025/08/time-series-dashboard-flowfuse-postgresql/), helping teams identify trends, compare performance over time, and understand recurring problems + +Manufacturers often need both. Real-time dashboards keep production running today, while historical dashboards help improve how production runs tomorrow. + +Timing is one axis a dashboard can vary on. Who it's built for is another, and that's a separate design decision entirely. + +## Single Source of Truth vs. User-Specific Dashboards + +Manufacturing dashboards can follow two common [design patterns](https://dashboard.flowfuse.com/getting-started#design-patterns) depending on how they are used. + +A **single source of truth dashboard** gives everyone the same operational view. This works well for Andon boards, production displays, and OEE dashboards, where teams need a shared understanding of factory performance. + +![Single source of truth pattern: a device populates both a ui-chart and a database, and the chart displays the same dashboard to all clients](/blog/2026/08/images/design-pattern-single.png)*Single source of truth pattern: a device populates both a ui-chart and a database, and the chart displays the same dashboard to all clients* + +A **user-specific dashboard** provides different information based on the user's role or workflow. Operators, for example, may see production status and tasks, while maintenance teams see equipment issues and service information. This pattern relies on the dashboard knowing who's looking at it, which is what FlowFuse's [multi-user addon](https://flows.nodered.org/node/@flowfuse/node-red-dashboard-2-user-addon) is built to support. + +![User-specific pattern: opening the dashboard fires a ui-event that queries the database using the viewer's client ID, so the chart displays data for that user only](/blog/2026/08/images/design-pattern-multi-user.png)*User-specific pattern: opening the dashboard fires a ui-event that queries the database using the viewer's client ID, so the chart displays data for that user only* + +The right approach depends on the decision the dashboard needs to support. Some manufacturing applications use one shared view; others combine shared visibility with role-specific information. Either way, someone has to actually connect the underlying data and build the thing, which is where FlowFuse comes in. + +## Building Manufacturing Dashboards with FlowFuse + +The challenge in manufacturing is rarely a lack of data. Most factories already generate information from machines, PLCs, sensors, and business systems. The real challenge is connecting that data and turning it into something teams can use, whether that's a single shared view or a set of role-specific ones. + +FlowFuse helps manufacturers build operational dashboards by connecting industrial data sources, processing production information, and creating applications for the shop floor. A typical workflow includes: + +- **Connect data:** bring in data from PLCs, machines, databases, and protocols such as MQTT, OPC UA, and [Modbus](/blog/2023/05/integrating-modbus-with-node-red/) +- **Process data:** convert production events, downtime, and quality records into useful metrics +- **Build dashboards:** create views for operators, supervisors, and managers + +Once a dashboard is built, teams can manage and deploy it across multiple lines, or facilities without rebuilding it from scratch, to keep every deployment in sync. The goal is simple: turn factory data into [reusable applications that improve operational visibility](/platform/features/). + +## Conclusion + +Manufacturing dashboards give teams a shared view of what is happening on the shop floor. They help operators respond faster, supervisors understand performance, and engineers identify opportunities for improvement. + +From production tracking and OEE monitoring to downtime analysis, quality management, and calibration control, the right dashboard connects operational data with the decisions teams need to make, whether that decision needs a real-time or historical view, a shared display or a role-specific one. + +The goal is not to create more screens. It is to create better visibility into production and give teams the information they need to keep improving. With [FlowFuse](/platform/why-flowfuse/), manufacturers can connect existing factory data, build operational applications, and scale successful dashboards across machines, lines, and facilities. diff --git a/nuxt/content/handbook/marketing/content-strategy/blog.md b/nuxt/content/handbook/marketing/content-strategy/blog.md index 6498727f72..e0e10126ca 100644 --- a/nuxt/content/handbook/marketing/content-strategy/blog.md +++ b/nuxt/content/handbook/marketing/content-strategy/blog.md @@ -121,6 +121,21 @@ below more The title of the page can be seen on both the blog index and the articles. +### Meta Title + +`metaTitle` is an optional field that overrides the browser tab title and Open Graph (social share) title — it does not change the on-page `title` shown as the article's H1 or on the blog index. + +```yaml +--- +title: "Building Digital Work Instructions Dashboard for the Shop Floor" +metaTitle: "Digital Work Instructions Dashboard" +--- +``` + +Use it when the on-page `title` is written for readers (descriptive, sometimes long) but doesn't make a good search-result or tab title. When set, it renders as `{metaTitle} | FlowFuse` in both places; when omitted, the browser tab and share title fall back to `{title} • FlowFuse Blog`. + +Keep `metaTitle` short and keyword-forward — it's for SEO/CTR in search results and social previews, not for readability on the page itself. + ### Subtitle The subtitle is only shown on the articles. diff --git a/nuxt/pages/blog/[...slug].vue b/nuxt/pages/blog/[...slug].vue index 7a32215ca8..81ec78dc37 100644 --- a/nuxt/pages/blog/[...slug].vue +++ b/nuxt/pages/blog/[...slug].vue @@ -80,7 +80,7 @@ const tldrText = computed(() => typeof page.value?.tldr === 'string' ? page.valu const pageTitle = computed(() => page.value?.title || 'Blog') provide('blogPostTitle', pageTitle) const pageDescription = computed(() => page.value?.description || page.value?.meta?.description || '') -const fullTitle = computed(() => `${pageTitle.value} • FlowFuse Blog`) +const fullTitle = computed(() => page.value?.metaTitle ? `${page.value.metaTitle} | FlowFuse` : `${pageTitle.value} • FlowFuse Blog`) const canonicalUrl = computed(() => `https://flowfuse.com${route.path}`) const absoluteImage = computed(() => heroImage.value.startsWith('http') ? heroImage.value : `https://flowfuse.com${heroImage.value}`) diff --git a/nuxt/pages/changelog/[...slug].vue b/nuxt/pages/changelog/[...slug].vue index 405d87ea2d..cb0524f5a5 100644 --- a/nuxt/pages/changelog/[...slug].vue +++ b/nuxt/pages/changelog/[...slug].vue @@ -36,7 +36,7 @@ function issueLabel(issue: string): string { } const pageTitle = computed(() => page.value?.title || 'Changelog') -const fullTitle = computed(() => `${pageTitle.value} • FlowFuse Changelog`) +const fullTitle = computed(() => page.value?.metaTitle ? `${page.value.metaTitle} | FlowFuse` : `${pageTitle.value} • FlowFuse Changelog`) const canonicalUrl = computed(() => `https://flowfuse.com${route.path}`) useSeoMeta({ diff --git a/package-lock.json b/package-lock.json index cea98af5c2..22291396ef 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1347,6 +1347,7 @@ "version": "1.10.0", "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", + "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -1358,6 +1359,7 @@ "version": "1.10.0", "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", + "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -1368,6 +1370,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", + "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -1394,6 +1397,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1410,6 +1414,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1426,6 +1431,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1442,6 +1448,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1458,6 +1465,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1474,6 +1482,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1490,6 +1499,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1506,6 +1516,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1522,6 +1533,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1538,6 +1550,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1554,6 +1567,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1570,6 +1584,7 @@ "cpu": [ "loong64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1586,6 +1601,7 @@ "cpu": [ "mips64el" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1602,6 +1618,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1618,6 +1635,7 @@ "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1634,6 +1652,7 @@ "cpu": [ "s390x" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1650,6 +1669,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1666,6 +1686,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1682,6 +1703,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1698,6 +1720,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1714,6 +1737,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1730,6 +1754,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1746,6 +1771,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1762,6 +1788,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1778,6 +1805,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1794,6 +1822,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2148,9 +2177,6 @@ "arm" ], "dev": true, - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -2168,9 +2194,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -2188,9 +2211,6 @@ "ppc64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -2208,9 +2228,6 @@ "riscv64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -2228,9 +2245,6 @@ "s390x" ], "dev": true, - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -2248,9 +2262,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -2268,9 +2279,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -2288,9 +2296,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -2308,9 +2313,6 @@ "arm" ], "dev": true, - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -2334,9 +2336,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -2360,9 +2359,6 @@ "ppc64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -2386,9 +2382,6 @@ "riscv64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -2412,9 +2405,6 @@ "s390x" ], "dev": true, - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -2438,9 +2428,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -2464,9 +2451,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -2490,9 +2474,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -2902,6 +2883,7 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.2.3.tgz", "integrity": "sha512-UMduMbqO5s5zF2NkNacMT/yK5Y5QiKvWr2+50bzIIxFDwVJ2h49b+oyjaCGPhJxd2/gC2x39EHv/gHVuu36x2Q==", + "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -4542,9 +4524,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -4562,9 +4541,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -4582,9 +4558,6 @@ "ppc64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -4602,9 +4575,6 @@ "riscv64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -4622,9 +4592,6 @@ "riscv64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -4642,9 +4609,6 @@ "s390x" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -4662,9 +4626,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -4682,9 +4643,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -4788,6 +4746,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4804,6 +4763,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4820,6 +4780,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4836,6 +4797,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4852,6 +4814,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4868,6 +4831,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4884,6 +4848,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4900,9 +4865,7 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4919,9 +4882,7 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4938,9 +4899,7 @@ "cpu": [ "ppc64" ], - "libc": [ - "glibc" - ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4957,9 +4916,7 @@ "cpu": [ "riscv64" ], - "libc": [ - "glibc" - ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4976,9 +4933,7 @@ "cpu": [ "riscv64" ], - "libc": [ - "musl" - ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4995,9 +4950,7 @@ "cpu": [ "s390x" ], - "libc": [ - "glibc" - ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5014,9 +4967,7 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5033,9 +4984,7 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5052,6 +5001,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5068,6 +5018,7 @@ "cpu": [ "wasm32" ], + "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -5086,6 +5037,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5102,6 +5054,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5118,6 +5071,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5264,9 +5218,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -5284,9 +5235,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -5304,9 +5252,6 @@ "ppc64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -5324,9 +5269,6 @@ "riscv64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -5344,9 +5286,6 @@ "riscv64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -5364,9 +5303,6 @@ "s390x" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -5384,9 +5320,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -5404,9 +5337,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -5631,9 +5561,6 @@ "arm" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -5655,9 +5582,6 @@ "arm" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -5679,9 +5603,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -5703,9 +5624,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -5727,9 +5645,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -5751,9 +5666,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -6041,9 +5953,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -6060,9 +5969,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -6079,9 +5985,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -6098,9 +6001,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -6245,9 +6145,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -6264,9 +6161,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -6283,9 +6177,6 @@ "cpu": [ "ppc64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -6302,9 +6193,6 @@ "cpu": [ "s390x" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -6321,9 +6209,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -6340,9 +6225,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -6596,6 +6478,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6609,6 +6492,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6622,6 +6506,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6635,6 +6520,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6648,6 +6534,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6661,6 +6548,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6674,9 +6562,7 @@ "cpu": [ "arm" ], - "libc": [ - "glibc" - ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6690,9 +6576,7 @@ "cpu": [ "arm" ], - "libc": [ - "musl" - ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6706,9 +6590,7 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6722,9 +6604,7 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6738,9 +6618,7 @@ "cpu": [ "loong64" ], - "libc": [ - "glibc" - ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6754,9 +6632,7 @@ "cpu": [ "loong64" ], - "libc": [ - "musl" - ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6770,9 +6646,7 @@ "cpu": [ "ppc64" ], - "libc": [ - "glibc" - ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6786,9 +6660,7 @@ "cpu": [ "ppc64" ], - "libc": [ - "musl" - ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6802,9 +6674,7 @@ "cpu": [ "riscv64" ], - "libc": [ - "glibc" - ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6818,9 +6688,7 @@ "cpu": [ "riscv64" ], - "libc": [ - "musl" - ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6834,9 +6702,7 @@ "cpu": [ "s390x" ], - "libc": [ - "glibc" - ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6850,9 +6716,7 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6866,9 +6730,7 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6882,6 +6744,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6895,6 +6758,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6908,6 +6772,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6921,6 +6786,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6934,6 +6800,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6947,6 +6814,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -7344,9 +7212,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -7364,9 +7229,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -7384,9 +7246,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -7404,9 +7263,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -7649,9 +7505,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "(MIT OR Apache-2.0)", "optional": true, "os": [ @@ -7668,9 +7521,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "(MIT OR Apache-2.0)", "optional": true, "os": [ @@ -7687,9 +7537,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "(MIT OR Apache-2.0)", "optional": true, "os": [ @@ -7706,9 +7553,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "(MIT OR Apache-2.0)", "optional": true, "os": [ @@ -8453,6 +8297,7 @@ "version": "0.10.3", "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", + "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -15249,9 +15094,6 @@ "arm" ], "dev": true, - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -15269,9 +15111,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -15289,9 +15128,6 @@ "ppc64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -15309,9 +15145,6 @@ "riscv64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -15329,9 +15162,6 @@ "s390x" ], "dev": true, - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -15349,9 +15179,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -15369,9 +15196,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -15389,9 +15213,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -15409,9 +15230,6 @@ "arm" ], "dev": true, - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -15435,9 +15253,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -15461,9 +15276,6 @@ "ppc64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -15487,9 +15299,6 @@ "riscv64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -15513,9 +15322,6 @@ "s390x" ], "dev": true, - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -15539,9 +15345,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -15565,9 +15368,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -15591,9 +15391,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -16670,9 +16467,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -16694,9 +16488,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -16718,9 +16509,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -16742,9 +16530,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -19787,9 +19572,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -19811,9 +19593,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -19835,9 +19614,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -19859,9 +19635,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -20106,9 +19879,6 @@ "arm" ], "dev": true, - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -20126,9 +19896,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -20146,9 +19913,6 @@ "ppc64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -20166,9 +19930,6 @@ "riscv64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -20186,9 +19947,6 @@ "s390x" ], "dev": true, - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -20206,9 +19964,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -20226,9 +19981,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -20246,9 +19998,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -20266,9 +20015,6 @@ "arm" ], "dev": true, - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -20292,9 +20038,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -20318,9 +20061,6 @@ "ppc64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -20344,9 +20084,6 @@ "riscv64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -20370,9 +20107,6 @@ "s390x" ], "dev": true, - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -20396,9 +20130,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -20422,9 +20153,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -20448,9 +20176,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -27168,9 +26893,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -27191,9 +26913,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -27214,9 +26933,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -27237,9 +26953,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "MPL-2.0", "optional": true, "os": [ diff --git a/src/_includes/layouts/base.njk b/src/_includes/layouts/base.njk index bf62556b3b..a0b2096d02 100644 --- a/src/_includes/layouts/base.njk +++ b/src/_includes/layouts/base.njk @@ -53,7 +53,9 @@ eleventyComputed: {% endif %} - {% if navTitle %} + {% if metaTitle %} + {{ metaTitle }} | FlowFuse + {% elif navTitle %} {{ navTitle }} • FlowFuse{% if page.url and page.url.match('\/handbook\/.+') %} Handbook{% endif %}{% if page.url and page.url.match('\/docs\/.+') %} Docs{% endif %} {% elif meta and meta.title %} {{ meta.title }} • FlowFuse{% if page.url and page.url.match('\/handbook\/.+') %} Handbook{% endif %}{% if page.url and page.url.match('\/docs\/.+') %} Docs{% endif %} @@ -84,7 +86,9 @@ eleventyComputed: {%- endif %} - {% if navTitle %} + {% if metaTitle %} + + {% elif navTitle %} {% elif meta and meta.title %} diff --git a/src/blog/2022/10/seed-round-bring-node-red-to-enterprise.md b/src/blog/2022/10/seed-round-bring-node-red-to-enterprise.md index 45387e98e2..6abf05d7d2 100644 --- a/src/blog/2022/10/seed-round-bring-node-red-to-enterprise.md +++ b/src/blog/2022/10/seed-round-bring-node-red-to-enterprise.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse Raises $7.25M Seed Round" title: FlowFuse raises $7.25M Seed Round to bring Node-RED to the Enterprise subtitle: Allowing all developers to integrate IT and OT through low-code description: "FlowFuse raises a $7.25M Seed Round from Cota Capital and Open Core Ventures to bring Node-RED to the enterprise market." diff --git a/src/blog/2022/12/flowforge-1-2-0-released.md b/src/blog/2022/12/flowforge-1-2-0-released.md index 8a6ec993b0..15d5469356 100644 --- a/src/blog/2022/12/flowforge-1-2-0-released.md +++ b/src/blog/2022/12/flowforge-1-2-0-released.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse 1.2: Single Sign On & Context Storage" title: FlowFuse 1.2 is now available with single sign on and persistent context storage subtitle: Our final release for 2022 with some great new features to try out description: "FlowFuse 1.2 is now available with single sign-on and persistent context storage, marking the final release for 2022 overall." diff --git a/src/blog/2023/01/flowforge-1-3-0-released.md b/src/blog/2023/01/flowforge-1-3-0-released.md index 8559c19743..8ea962f4de 100644 --- a/src/blog/2023/01/flowforge-1-3-0-released.md +++ b/src/blog/2023/01/flowforge-1-3-0-released.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse 1.3: Share Flows via Team Libraries" title: FlowFuse 1.3 is now available, share your flows through our new team libraries and much more subtitle: Our first release of 2023 with some great new features to try out, happy new year from everyone at FlowFuse! description: "FlowFuse 1.3 is now available. Share your flows through the brand new team libraries, plus much more in this latest release." diff --git a/src/blog/2023/02/flowforge-1-4-0-released.md b/src/blog/2023/02/flowforge-1-4-0-released.md index 08006953a1..e9d49570dc 100644 --- a/src/blog/2023/02/flowforge-1-4-0-released.md +++ b/src/blog/2023/02/flowforge-1-4-0-released.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse v1.4: Bulk Device Provisioning" title: FlowFuse v1.4 with device provisioning in bulk and staged development process subtitle: Our second release of 2023 with some great new features to try out. description: Deploy Node-RED to many devices quickly, and allow a staged development process with the latest release of FlowFuse v1.4. diff --git a/src/blog/2023/03/integration-platform-for-edge-computing.md b/src/blog/2023/03/integration-platform-for-edge-computing.md index 09c3beb369..ca57193db5 100644 --- a/src/blog/2023/03/integration-platform-for-edge-computing.md +++ b/src/blog/2023/03/integration-platform-for-edge-computing.md @@ -1,4 +1,5 @@ --- +metaTitle: "Node-RED: Integration Platform for IIoT Edge" title: 'Node-RED: The Integration Platform for IIoT Edge Computing & PLCs' subtitle: Node-RED's Role in IIoT Edge Computing & PLC Integration description: Discover why Node-RED is the go-to integration platform for IIoT edge computing and PLCs, embraced by leading vendors for its versatility and ease of use. diff --git a/src/blog/2023/05/device-agent-as-a-service.md b/src/blog/2023/05/device-agent-as-a-service.md index 6aa1ab82ef..25523c0af4 100644 --- a/src/blog/2023/05/device-agent-as-a-service.md +++ b/src/blog/2023/05/device-agent-as-a-service.md @@ -1,4 +1,5 @@ --- +metaTitle: "Running the Device Agent on a Raspberry Pi" title: Running the FlowFuse Device Agent as a service on a Raspberry Pi subtitle: Step by step guide to run the device agent as a service description: "Learn how to run the FlowFuse Device Agent as a service on your Raspberry Pi, ensuring uninterrupted operation after restarts." diff --git a/src/blog/2023/05/flowforge-1-7-released.md b/src/blog/2023/05/flowforge-1-7-released.md index c9401cf5b5..099b49a234 100644 --- a/src/blog/2023/05/flowforge-1-7-released.md +++ b/src/blog/2023/05/flowforge-1-7-released.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse 1.7: Remote Node-RED Editor Access" title: FlowFuse 1.7 Now Available with Remote Node-RED Editor Access subtitle: Further improving fleet management and maintenance of remote Node-RED instances description: "FlowFuse 1.7 is now available with remote Node-RED Editor access, letting teams edit flows directly on their own devices." diff --git a/src/blog/2023/05/integrating-modbus-with-node-red.md b/src/blog/2023/05/integrating-modbus-with-node-red.md index 3751d34af5..bcd439d842 100644 --- a/src/blog/2023/05/integrating-modbus-with-node-red.md +++ b/src/blog/2023/05/integrating-modbus-with-node-red.md @@ -1,4 +1,5 @@ --- +metaTitle: "Integrating a Modbus Device With Node-RED" title: "Best Practices Integrating a Modbus Device With Node-RED (2026)" subtitle: Integrate Modbus with Node-RED description: "Modbus is a widely adopted protocol for legacy manufacturing equipment. Learn best practices for integrating it with Node-RED." diff --git a/src/blog/2023/06/dashboard-announcement.md b/src/blog/2023/06/dashboard-announcement.md index bb2009d3b8..d6fee95158 100644 --- a/src/blog/2023/06/dashboard-announcement.md +++ b/src/blog/2023/06/dashboard-announcement.md @@ -1,4 +1,5 @@ --- +metaTitle: "The Successor to the Node-RED Dashboard" title: The Next Step in Data Visualization - Announcing the Successor to the Node-RED Dashboard subtitle: FlowFuse's Journey Towards a New Node-RED Dashboard description: "FlowFuse unveils its plans to build the successor to the Node-RED Dashboard, the next step in industrial data visualization." diff --git a/src/blog/2023/07/how-to-build-a-opc-client-dashboard-in-node-red.md b/src/blog/2023/07/how-to-build-a-opc-client-dashboard-in-node-red.md index bc48c55f41..172c399ad1 100644 --- a/src/blog/2023/07/how-to-build-a-opc-client-dashboard-in-node-red.md +++ b/src/blog/2023/07/how-to-build-a-opc-client-dashboard-in-node-red.md @@ -1,4 +1,5 @@ --- +metaTitle: "How to Build an OPC UA Client Dashboard - Part 3" title: "How to Build an OPC UA Client Dashboard in Node-RED - Part 3 (2026)" subtitle: Interactive OPC UA Client dashboard that communicates with a 3rd party OPC UA Server description: Building a Dashboard-Driven OPC UA Client to Browse, Read, Write, and Get Events from a 3rd party OPC UA Server diff --git a/src/blog/2023/07/how-to-deploy-a-basic-opc-ua-server-in-node-red.md b/src/blog/2023/07/how-to-deploy-a-basic-opc-ua-server-in-node-red.md index 256dc92918..edbc20f910 100644 --- a/src/blog/2023/07/how-to-deploy-a-basic-opc-ua-server-in-node-red.md +++ b/src/blog/2023/07/how-to-deploy-a-basic-opc-ua-server-in-node-red.md @@ -1,4 +1,5 @@ --- +metaTitle: "Deploy a Basic OPC-UA Server in Node-RED - Part 1" title: "How to Deploy a Basic OPC-UA Server in Node-RED - Part 1 (2026)" subtitle: OPC-UA Server Information Modeling in Node-RED description: "An introduction to OPC-UA and how to deploy a Node-RED server flow, Part 1 of a series on building OPC-UA servers with FlowFuse." diff --git a/src/blog/2023/07/images-in-node-red-dashboards.md b/src/blog/2023/07/images-in-node-red-dashboards.md index c47e7b460d..5e35cbb325 100644 --- a/src/blog/2023/07/images-in-node-red-dashboards.md +++ b/src/blog/2023/07/images-in-node-red-dashboards.md @@ -1,4 +1,5 @@ --- +metaTitle: "Add Images to Node-RED Dashboards" title: "How to add images to Node-RED dashboards when using FlowFuse (2026)" subtitle: Import your images into your Node-RED dashboards, wherever you are running your instances description: Learn to enhance Node-RED dashboards with images using FlowFuse. Pull images from URLs, store locally, and serve them in your dashboards. diff --git a/src/blog/2023/07/influxdb-historical-data.md b/src/blog/2023/07/influxdb-historical-data.md index 01e96d381a..a031873132 100644 --- a/src/blog/2023/07/influxdb-historical-data.md +++ b/src/blog/2023/07/influxdb-historical-data.md @@ -1,4 +1,5 @@ --- +metaTitle: "Historical Data Dashboard with InfluxDB" title: Creating a Historical Data Dashboard with InfluxDB and Node-RED subtitle: Detailed instructions on how to create a Node-RED dashboard that shows historical data. description: Discover how to build a Historical Data Dashboard with InfluxDB and Node-RED. Capture, store, and visualize data for insightful analysis. diff --git a/src/blog/2023/08/flowfuse-1-11-release.md b/src/blog/2023/08/flowfuse-1-11-release.md index 264130ead0..65f9a1d2b6 100644 --- a/src/blog/2023/08/flowfuse-1-11-release.md +++ b/src/blog/2023/08/flowfuse-1-11-release.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse 1.11: Easier Node-RED Setup" title: FlowFuse 1.11 makes it easier to get started with FlowFuse and Node-RED subtitle: Our latest release includes a new starter tier for FlowFuse Cloud, Personal Access Tokens for API access and improvements to device management. description: The new FlowFuse 1.11 release includes a new starter tier for FlowFuse Cloud, Personal Access Tokens for API access and improvements to device management. diff --git a/src/blog/2023/08/isa-95-automation-pyramid-to-unified-namespace.md b/src/blog/2023/08/isa-95-automation-pyramid-to-unified-namespace.md index 202789d836..437a1c2941 100644 --- a/src/blog/2023/08/isa-95-automation-pyramid-to-unified-namespace.md +++ b/src/blog/2023/08/isa-95-automation-pyramid-to-unified-namespace.md @@ -1,4 +1,5 @@ --- +metaTitle: "Why the Automation Pyramid Blocks Transformation" title: Why the Automation Pyramid blocks digital transformation - The Role of Unified Namespace subtitle: A Critical Examination of the Automation Pyramid's Obstruction to Digital Transformation description: "This article analyzes the Automation Pyramid's constraints and explains how Unified Namespace can evolve digital transformation." diff --git a/src/blog/2023/09/bosch-rexroth-announce.md b/src/blog/2023/09/bosch-rexroth-announce.md index 9d41553a39..b34794c009 100644 --- a/src/blog/2023/09/bosch-rexroth-announce.md +++ b/src/blog/2023/09/bosch-rexroth-announce.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse Node-RED Stack for ctrlX AUTOMATION" title: FlowFuse announces a Node-RED stack for Industry 4.0 applications on ctrlX AUTOMATION subtitle: Rexroth ctrlX now have fully supported Node-RED stack available for production use description: FlowFuse is now offering Node-RED to customers that want to deploy it on the Rexrtoh ctrlX platform. diff --git a/src/blog/2023/10/citizen-development.md b/src/blog/2023/10/citizen-development.md index b174b76c13..9783603982 100644 --- a/src/blog/2023/10/citizen-development.md +++ b/src/blog/2023/10/citizen-development.md @@ -1,4 +1,5 @@ --- +metaTitle: "Why Manufacturing Must Embrace Citizen Developers" title: Innovate from within - Why manufacturing must embrace Citizen Developers subtitle: Empower your Operational Technology teams as Citizen Developers description: "Explore the significance of Citizen Developers in manufacturing, bridging the IT-OT gap with low-code platforms like Node-RED." diff --git a/src/blog/2023/12/ai-use-cases.md b/src/blog/2023/12/ai-use-cases.md index 888f4032ab..2c26c66552 100644 --- a/src/blog/2023/12/ai-use-cases.md +++ b/src/blog/2023/12/ai-use-cases.md @@ -1,4 +1,5 @@ --- +metaTitle: "Beyond Automation: AI Use Cases in Manufacturing" title: Beyond Automation - AI Use Cases that are shaping the next manufacturing frontier subtitle: In which AI-powered capabilities should one invest to bring about transformative changes in the manufacturing environment? description: Discover how AI is revolutionizing manufacturing with citizen development, demand forecasting, and predictive maintenance diff --git a/src/blog/2023/12/introduction-to-unified-namespace.md b/src/blog/2023/12/introduction-to-unified-namespace.md index 35f40a8a36..0b82d0a2e3 100644 --- a/src/blog/2023/12/introduction-to-unified-namespace.md +++ b/src/blog/2023/12/introduction-to-unified-namespace.md @@ -1,4 +1,5 @@ --- +metaTitle: "Introduction to the Unified Namespace (UNS)" title: "Introduction to the Unified Namespace (UNS) – 2026 Updated Guide" subtitle: "Making data available for Industry 4.0 use-cases" description: Explore how the Unified Namespace (UNS) empowers Industry 4.0 with seamless data exchange, maximizing organizational potential. diff --git a/src/blog/2024/01/dashboard-2-multi-user.md b/src/blog/2024/01/dashboard-2-multi-user.md index 5d8245df5e..bcc6f878c3 100644 --- a/src/blog/2024/01/dashboard-2-multi-user.md +++ b/src/blog/2024/01/dashboard-2-multi-user.md @@ -1,4 +1,5 @@ --- +metaTitle: "Personalised Multi-user Dashboards with Node-RED" title: Personalised Multi-user Dashboards with Node-RED Dashboard 2.0! subtitle: Explore how to build multi-user Dashboards, secured with FlowFuse Cloud! description: "Discover how to create personalized, secured multi-user dashboards with FlowFuse Cloud and the Dashboard 2.0 User Addon." diff --git a/src/blog/2024/01/how-to-deploy-node-red-with-flowfuse-to-balenacloud.md b/src/blog/2024/01/how-to-deploy-node-red-with-flowfuse-to-balenacloud.md index 1dab63b6a1..2d43a66f50 100644 --- a/src/blog/2024/01/how-to-deploy-node-red-with-flowfuse-to-balenacloud.md +++ b/src/blog/2024/01/how-to-deploy-node-red-with-flowfuse-to-balenacloud.md @@ -1,4 +1,5 @@ --- +metaTitle: "Deploying Node-RED with FlowFuse in balenaCloud" title: Step-by-Step Guide to Deploying Node-RED with FlowFuse in balenaCloud subtitle: Fleet management made easier with FlowFuse and balena. description: Deploy Node-RED with FlowFuse on balenaCloud effortlessly with our step-by-step guide. Simplify fleet management and enhance data processing capabilities. diff --git a/src/blog/2024/01/unified-namespace-when-not-to-use.md b/src/blog/2024/01/unified-namespace-when-not-to-use.md index 7e6f0e53ea..ae551c1d90 100644 --- a/src/blog/2024/01/unified-namespace-when-not-to-use.md +++ b/src/blog/2024/01/unified-namespace-when-not-to-use.md @@ -1,4 +1,5 @@ --- +metaTitle: "Unified Namespace: When to Use It" title: "Unified Namespace: When to Use It, and When to Choose Something Else" subtitle: Data isn't created equal, some data doesn't fit the UNS description: "Explore when to use the Unified Namespace (UNS) architecture and when to choose alternatives, covering latency and security." diff --git a/src/blog/2024/02/professional-services-for-node-red.md b/src/blog/2024/02/professional-services-for-node-red.md index 644056e2ee..50cccc5273 100644 --- a/src/blog/2024/02/professional-services-for-node-red.md +++ b/src/blog/2024/02/professional-services-for-node-red.md @@ -1,4 +1,5 @@ --- +metaTitle: "Invest in Node-RED Professional Services?" title: Should You Invest in Professional Services for Your Node-RED Development? subtitle: Professional Services for Node-RED, When and Why? description: "Discover the benefits of investing in professional services for your Node-RED development, from initial setup to full scaling." diff --git a/src/blog/2024/03/flowfuse-gallarus-strategic-partnership-to-accelerate-industry-4-adoption.md b/src/blog/2024/03/flowfuse-gallarus-strategic-partnership-to-accelerate-industry-4-adoption.md index e5e2726e5d..f117348a09 100644 --- a/src/blog/2024/03/flowfuse-gallarus-strategic-partnership-to-accelerate-industry-4-adoption.md +++ b/src/blog/2024/03/flowfuse-gallarus-strategic-partnership-to-accelerate-industry-4-adoption.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse and Gallarus Strategic Partnership" title: FlowFuse and Gallarus Announce Strategic Partnership to Accelerate Industry 4.0 Adoption subtitle: Strategic partnership to empower businesses with low-code development for Industry 4.0 Transformation description: "FlowFuse and Gallarus announce a strategic partnership to accelerate Industry 4.0 adoption across manufacturing operations." diff --git a/src/blog/2024/03/scaling-node-red-devices-vs-flowfuse-instance.md b/src/blog/2024/03/scaling-node-red-devices-vs-flowfuse-instance.md index 1cfa3049af..e1b914165d 100644 --- a/src/blog/2024/03/scaling-node-red-devices-vs-flowfuse-instance.md +++ b/src/blog/2024/03/scaling-node-red-devices-vs-flowfuse-instance.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse Instance vs Device Instance" title: "Scaling Node-RED with FlowFuse: Differences between a FlowFuse Instance and a Device Instance" subtitle: Managing your Node-RED instances is easier with FlowFuse. description: "With FlowFuse, Node-RED instances can be scaled and managed easily. Learn the difference between an Instance and a Device." diff --git a/src/blog/2024/04/building-an-admin-panel-in-node-red-with-dashboard-2.md b/src/blog/2024/04/building-an-admin-panel-in-node-red-with-dashboard-2.md index 5a78878204..e7727b0f63 100644 --- a/src/blog/2024/04/building-an-admin-panel-in-node-red-with-dashboard-2.md +++ b/src/blog/2024/04/building-an-admin-panel-in-node-red-with-dashboard-2.md @@ -1,4 +1,5 @@ --- +metaTitle: "How to Build an Admin Dashboard with Node-RED" title: "How to Build an Admin Dashboard with Node-RED Dashboard 2.0 (2026)" subtitle: A guide to building an Admin Dashboard in Node-RED with Dashboard 2.0 description: "Discover step-by-step instructions for building an admin-only page in Node-RED Dashboard 2.0 using the FlowFuse Multiuser addon." diff --git a/src/blog/2024/04/how-to-build-an-application-with-node-red-dashboard-2.md b/src/blog/2024/04/how-to-build-an-application-with-node-red-dashboard-2.md index 622c38fc5d..f948848d4f 100644 --- a/src/blog/2024/04/how-to-build-an-application-with-node-red-dashboard-2.md +++ b/src/blog/2024/04/how-to-build-an-application-with-node-red-dashboard-2.md @@ -1,4 +1,5 @@ --- +metaTitle: "Build An Application With Node-RED Dashboard 2.0" title: "How to Build An Application With Node-RED Dashboard 2.0 (2026)" subtitle: A step-by-step guide to building a personalized, secure, and fully functional application with Dashboard 2.0. description: "Learn to build custom applications effortlessly with Node-RED Dashboard 2.0 in this step-by-step, secure application guide." diff --git a/src/blog/2024/05/flowfuse-2-4-release.md b/src/blog/2024/05/flowfuse-2-4-release.md index aef886f41d..2af0bab032 100644 --- a/src/blog/2024/05/flowfuse-2-4-release.md +++ b/src/blog/2024/05/flowfuse-2-4-release.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse 2.4: Easier Snapshots & Blueprints" title: "FlowFuse 2.4: making it easier to work with Snapshots, Blueprints & Devices" subtitle: Our latest release introduces better ways to work with Snapshots, Blueprints, view the content of you flows in FlowFuse, and manage the version of Node-RED running on Devices description: "FlowFuse 2.4 introduces better ways to work with Snapshots and Blueprints, and manage the Node-RED version running on Devices." diff --git a/src/blog/2024/05/node-red-dashboard-2-layout-navigation-styling.md b/src/blog/2024/05/node-red-dashboard-2-layout-navigation-styling.md index d21ff8d237..cfbd162f2d 100644 --- a/src/blog/2024/05/node-red-dashboard-2-layout-navigation-styling.md +++ b/src/blog/2024/05/node-red-dashboard-2-layout-navigation-styling.md @@ -1,4 +1,5 @@ --- +metaTitle: "Node-RED Dashboard 2.0 Layout & Styling Guide" title: "Comprehensive guide: Node-RED Dashboard 2.0 layout, sidebar, and styling" subtitle: Explore Dashboard 2.0 Different layouts and sidebars. learn how to style Dashboard 2.0 elements effortlessly. description: "Discover Node-RED Dashboard 2.0's three layouts, five sidebar styles, themes, and custom CSS in this complete styling guide." diff --git a/src/blog/2024/05/understanding-node-flow-global-environment-variables-in-node-red.md b/src/blog/2024/05/understanding-node-flow-global-environment-variables-in-node-red.md index 25620c890c..d7a6fb3a5c 100644 --- a/src/blog/2024/05/understanding-node-flow-global-environment-variables-in-node-red.md +++ b/src/blog/2024/05/understanding-node-flow-global-environment-variables-in-node-red.md @@ -1,4 +1,5 @@ --- +metaTitle: "Node-RED Variables: Flow, Global & Context" title: "How to Use Variables in Node-RED: Flow, Global, Context & Environment (2026)" subtitle: A complete guide to setting, retrieving, and persisting Node-RED variables for efficient, production-ready flows. description: "Learn how to use Node-RED global, flow, context, and environment variables in 2026, with step-by-step examples and an FAQ." diff --git a/src/blog/2024/06/dashboard-multi-tenancy.md b/src/blog/2024/06/dashboard-multi-tenancy.md index 02d5c44034..961f89cfaa 100644 --- a/src/blog/2024/06/dashboard-multi-tenancy.md +++ b/src/blog/2024/06/dashboard-multi-tenancy.md @@ -1,4 +1,5 @@ --- +metaTitle: "Multi-Tenancy in FlowFuse's Dashboard 2.0" title: Multi-Tenancy available for everyone with FlowFuse's Dashboard 2.0 subtitle: With a recent update in Node-RED Dashboard 2.0, we've made some significant changes to the multi-tenancy feature set. Discover what's new and how it can benefit your projects. description: "With a recent Dashboard 2.0 update, discover what's new in multi-tenancy and how it can benefit your team's ongoing projects." diff --git a/src/blog/2024/06/flowfuse-2-5-release.md b/src/blog/2024/06/flowfuse-2-5-release.md index 997acd7662..8cffcebd80 100644 --- a/src/blog/2024/06/flowfuse-2-5-release.md +++ b/src/blog/2024/06/flowfuse-2-5-release.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse 2.5: Snapshots & LDAP Integration" title: "FlowFuse 2.5: New features to visualize snapshots, LDAP integration, and more" subtitle: Enhancing security, visualization, and deployment flexibility. description: "Discover the new features in FlowFuse 2.5, including LDAP integration, visual snapshot comparisons, and blueprint previews." diff --git a/src/blog/2024/07/flowfuse-2-6-release.md b/src/blog/2024/07/flowfuse-2-6-release.md index e7c03a912a..beac3e3bf5 100644 --- a/src/blog/2024/07/flowfuse-2-6-release.md +++ b/src/blog/2024/07/flowfuse-2-6-release.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse 2.6: AI Infused Node-RED & More" title: "FlowFuse 2.6: AI Infused Node-RED, Persistent File Storage & Lots More" subtitle: Lowering the barrier to entry for new users, and enhancing the flexibility and functionality of the platform. description: Discover the new features in FlowFuse 2.6, and it's focus on improving the Node-RED development experience. diff --git a/src/blog/2024/08/comparing-dashboard-2-with-uibuilder.md b/src/blog/2024/08/comparing-dashboard-2-with-uibuilder.md index 34cec763ef..0580a6f0f2 100644 --- a/src/blog/2024/08/comparing-dashboard-2-with-uibuilder.md +++ b/src/blog/2024/08/comparing-dashboard-2-with-uibuilder.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse Dashboard vs UI-Builder Compared" title: "FlowFuse Dashboard vs UI-Builder: A Comprehensive Comparison" subtitle: Understanding the Differences Between FlowFuse Dashboard and UI-Builder description: Compare FlowFuse Dashboard and UI-Builder. Discover their installation ease, customization, performance, and support to find the best solution for your needs. diff --git a/src/blog/2024/08/dashboard-new-layout-widgets-and-gauges.md b/src/blog/2024/08/dashboard-new-layout-widgets-and-gauges.md index 553ec450ff..45a456c03e 100644 --- a/src/blog/2024/08/dashboard-new-layout-widgets-and-gauges.md +++ b/src/blog/2024/08/dashboard-new-layout-widgets-and-gauges.md @@ -1,4 +1,5 @@ --- +metaTitle: "New Layout, Widgets and Gauges in Dashboard" title: New Layout, Widget and Gauges Now Available in FlowFuse Dashboard subtitle: Our latest update for FlowFuse Dashboard introduces a new layout type, Tabs, a new widget, Number Input, and two fresh gauges, Battery and Tank Level, along with much more. description: "FlowFuse Dashboard adds a new Tabs layout, a Number Input widget, and Battery and Tank Level gauges, plus many more updates." diff --git a/src/blog/2024/08/opentelemetry-with-node-red.md b/src/blog/2024/08/opentelemetry-with-node-red.md index deb9278023..1789772195 100644 --- a/src/blog/2024/08/opentelemetry-with-node-red.md +++ b/src/blog/2024/08/opentelemetry-with-node-red.md @@ -1,4 +1,5 @@ --- +metaTitle: "Monitoring Node-RED Flows with Open Telemetry" title: "Monitoring and Optimizing Node-RED Flows with Open Telemetry (2026)" subtitle: Integrating Open Telemetry with Node-RED for Efficient Distributed Tracing description: "Learn to integrate Open Telemetry with Node-RED in 2026 to track, monitor, and optimize your flow's overall performance." diff --git a/src/blog/2024/08/using-mqtt-sparkplugb-with-node-red.md b/src/blog/2024/08/using-mqtt-sparkplugb-with-node-red.md index 071a13c63a..d6978c03ca 100644 --- a/src/blog/2024/08/using-mqtt-sparkplugb-with-node-red.md +++ b/src/blog/2024/08/using-mqtt-sparkplugb-with-node-red.md @@ -1,4 +1,5 @@ --- +metaTitle: "MQTT Sparkplug B Implementation Guide" title: "MQTT Sparkplug B Implementation: Protocol, Architecture & Best Practices" subtitle: "Standardize and manage industrial IoT data with MQTT Sparkplug B" description: "Learn how to implement MQTT Sparkplug B with Node-RED for standardized, reliable Industrial IoT data flows and scalable production deployments." diff --git a/src/blog/2024/09/flowfuse-release-2-9.md b/src/blog/2024/09/flowfuse-release-2-9.md index 7fd20ee1bb..b535694d8a 100644 --- a/src/blog/2024/09/flowfuse-release-2-9.md +++ b/src/blog/2024/09/flowfuse-release-2-9.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse 2.9: Software Bill of Materials" title: "FlowFuse 2.9: Software Bill of Materials & Public Static Assets" subtitle: Let's take a look at the new features and improvements in FlowFuse 2.9 description: "FlowFuse 2.9 introduces a Software Bill of Materials and Public Static Assets, among other new features and improvements." diff --git a/src/blog/2024/09/node-red-version-control-with-snapshots.md b/src/blog/2024/09/node-red-version-control-with-snapshots.md index 4c5ff96455..720faf16c5 100644 --- a/src/blog/2024/09/node-red-version-control-with-snapshots.md +++ b/src/blog/2024/09/node-red-version-control-with-snapshots.md @@ -1,4 +1,5 @@ --- +metaTitle: "Version Control for Node-RED with Snapshots" title: "Using Snapshots for Version Control in Node-RED with FlowFuse" subtitle: "Effortlessly manage and recover your Node-RED flows with snapshots in FlowFuse." description: "Learn how to use snapshots for version control in Node-RED with FlowFuse, from creating to restoring your flow backups fast." diff --git a/src/blog/2024/10/dashboard-new-group-type-app-icon-and-charts.md b/src/blog/2024/10/dashboard-new-group-type-app-icon-and-charts.md index a10058ce01..a0cb2ac900 100644 --- a/src/blog/2024/10/dashboard-new-group-type-app-icon-and-charts.md +++ b/src/blog/2024/10/dashboard-new-group-type-app-icon-and-charts.md @@ -1,4 +1,5 @@ --- +metaTitle: "Dialogs, Icons and Histograms in Dashboard" title: Dialogs, Customizable Icons and Histograms Now Available in FlowFuse Dashboard subtitle: Our latest update for FlowFuse Dashboard introduces a new group type, Dialog, a new chart variation, Histogram and customization support for the application icon. description: "FlowFuse Dashboard adds a new Dialog group type, a Histogram chart variation, and customization support for the app icon." diff --git a/src/blog/2024/10/exploring-flowfuse-project-nodes.md b/src/blog/2024/10/exploring-flowfuse-project-nodes.md index a023a13754..b543650189 100644 --- a/src/blog/2024/10/exploring-flowfuse-project-nodes.md +++ b/src/blog/2024/10/exploring-flowfuse-project-nodes.md @@ -1,4 +1,5 @@ --- +metaTitle: "Using FlowFuse Project Nodes for Efficiency" title: Using FlowFuse Project Nodes for Faster and More Efficient Communication subtitle: Easy Communication Between Node-RED Instances with FlowFuse description: Learn how to use FlowFuse project nodes for quick and efficient communication between Node-RED instances, making monitoring and data requests easier. diff --git a/src/blog/2024/10/exploring-flowfuse-sbom-feature.md b/src/blog/2024/10/exploring-flowfuse-sbom-feature.md index bd8b931864..138bb84e98 100644 --- a/src/blog/2024/10/exploring-flowfuse-sbom-feature.md +++ b/src/blog/2024/10/exploring-flowfuse-sbom-feature.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse's Software Bill of Materials" title: FlowFuse's Software bills of material helps enhance Application Security and Management subtitle: Enhancing the Security and Compliance of Your Solutions description: Learn how FlowFuse SBoM improves the security and management of Node-RED solutions by tracking dependencies and identifying vulnerabilities. diff --git a/src/blog/2024/10/flowfuse-release-2-10.md b/src/blog/2024/10/flowfuse-release-2-10.md index 6e9858367f..f84d43b4bf 100644 --- a/src/blog/2024/10/flowfuse-release-2-10.md +++ b/src/blog/2024/10/flowfuse-release-2-10.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse 2.10: MQTT Broker & Version Control" title: "FlowFuse 2.10: MQTT Broker, Improved Version Control & More!" subtitle: Let's take a look at the new features and improvements in FlowFuse 2.9 description: "FlowFuse 2.10 adds an MQTT Broker and improved version control, plus other new features and improvements over FlowFuse 2.9." diff --git a/src/blog/2024/10/how-to-build-automate-devops-pipelines-node-red-deployments.md b/src/blog/2024/10/how-to-build-automate-devops-pipelines-node-red-deployments.md index f5b253c817..493aa7c9dc 100644 --- a/src/blog/2024/10/how-to-build-automate-devops-pipelines-node-red-deployments.md +++ b/src/blog/2024/10/how-to-build-automate-devops-pipelines-node-red-deployments.md @@ -1,4 +1,5 @@ --- +metaTitle: "Automating DevOps Pipelines for Node-RED" title: Creating and Automating DevOps Pipelines for Node-RED in Industrial Environments subtitle: Streamlining Deployments for Efficiency and Safety in Industrial Environments description: "Learn how to build and automate DevOps pipelines for Node-RED deployments in manufacturing and automotive industry environments." diff --git a/src/blog/2024/10/managing-node-red-instances-in-centralize-platfrom.md b/src/blog/2024/10/managing-node-red-instances-in-centralize-platfrom.md index 6a2bee36c8..6799c224c6 100644 --- a/src/blog/2024/10/managing-node-red-instances-in-centralize-platfrom.md +++ b/src/blog/2024/10/managing-node-red-instances-in-centralize-platfrom.md @@ -1,4 +1,5 @@ --- +metaTitle: "Centralize Node-RED Management with FlowFuse" title: "Transform Chaos into Control: Centralize Node-RED Management with FlowFuse" subtitle: With FlowFuse, you can simplify managing all your Node-RED Instances and remote IoT device management description: "Discover how FlowFuse streamlines Node-RED instance management from a single platform, turning chaos into full, easy control." diff --git a/src/blog/2024/10/quick-ways-to-write-functions-in-node-red.md b/src/blog/2024/10/quick-ways-to-write-functions-in-node-red.md index 410d9fc750..a863002195 100644 --- a/src/blog/2024/10/quick-ways-to-write-functions-in-node-red.md +++ b/src/blog/2024/10/quick-ways-to-write-functions-in-node-red.md @@ -1,4 +1,5 @@ --- +metaTitle: "Complex Logic in Node-RED Function Nodes" title: "Exploring Quick Ways to Write Complex Logic in Function Nodes in Node-RED" subtitle: "Enhancing Your Node-RED Experience" description: "Learn how to efficiently write complex logic in Function Nodes within Node-RED, simplifying your development process and improving your workflows." diff --git a/src/blog/2024/11/device-agent-as-service-on-mac.md b/src/blog/2024/11/device-agent-as-service-on-mac.md index 3dd902681b..6f0dfb21c1 100644 --- a/src/blog/2024/11/device-agent-as-service-on-mac.md +++ b/src/blog/2024/11/device-agent-as-service-on-mac.md @@ -1,4 +1,5 @@ --- +metaTitle: "Run FlowFuse Device Agent on MacOS with Docker" title: Run FlowFuse Device Agent as a service on MacOS using Docker subtitle: Automating FlowFuse Device Agent on macOS with Docker and Colima. description: "Learn how to run the FlowFuse Device Agent as a service on macOS using Docker and Colima for reliable automatic startup." diff --git a/src/blog/2024/11/flowfuse-release-2-11.md b/src/blog/2024/11/flowfuse-release-2-11.md index 6760b88491..1d4edb646e 100644 --- a/src/blog/2024/11/flowfuse-release-2-11.md +++ b/src/blog/2024/11/flowfuse-release-2-11.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse 2.11: MQTT Topic Hierarchy & UI Revamp" title: "FlowFuse 2.11: MQTT Topic Hierarchy, UI Revamp & Improved Logging" subtitle: Let's take a look at the new features and improvements in FlowFuse 2.11 description: "FlowFuse 2.11 introduces MQTT Topic Hierarchy, a UI revamp, and improved logging among other platform improvements this release." diff --git a/src/blog/2024/11/migrating-from-node-red-to-flowfuse.md b/src/blog/2024/11/migrating-from-node-red-to-flowfuse.md index 2df3065d3a..8532dfd513 100644 --- a/src/blog/2024/11/migrating-from-node-red-to-flowfuse.md +++ b/src/blog/2024/11/migrating-from-node-red-to-flowfuse.md @@ -1,4 +1,5 @@ --- +metaTitle: "Migrating Self-Managed Node-RED to FlowFuse" title: Migrating from Self-Managed Node-RED to FlowFuse-Managed Node-RED subtitle: A Step-by-Step Guide to Transitioning Your Node-RED Flows to a Streamlined FlowFuse Environment description: "Discover how to migrate from a self-managed Node-RED setup to a fully FlowFuse-managed environment, step by step, with ease." diff --git a/src/blog/2024/11/why-point-to-point-connection-is-dead.md b/src/blog/2024/11/why-point-to-point-connection-is-dead.md index 368fd0e358..c7f24492d1 100644 --- a/src/blog/2024/11/why-point-to-point-connection-is-dead.md +++ b/src/blog/2024/11/why-point-to-point-connection-is-dead.md @@ -1,4 +1,5 @@ --- +metaTitle: "The Death of Point-to-Point Connections" title: "The Death of Point-to-Point: Why You Need a Unified Namespace" subtitle: Traditional Point-to-Point Connection Model is Holding Back Manufacturing Innovation - Unified Namespace (UNS) Can Transform Factory Operations description: "Learn why point-to-point connections are outdated in manufacturing and how a Unified Namespace simplifies system integration." diff --git a/src/blog/2025/01/flowfuse-release-2-13.md b/src/blog/2025/01/flowfuse-release-2-13.md index a275ff9cf3..4844c6a416 100644 --- a/src/blog/2025/01/flowfuse-release-2-13.md +++ b/src/blog/2025/01/flowfuse-release-2-13.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse 2.13: Remote Instances & UNS Schemas" title: "FlowFuse 2.13: Remote Instances, UNS Schemas & Improved Management at Scale" subtitle: FlowFuse 2.13 brings clarity to "Instances" in FlowFuse, automated documentation for your MQTT Broker, better management and deployment to multiple Remote Instances, and more. description: "FlowFuse 2.13 brings clarity to Instances, automated MQTT Broker documentation, and better Remote Instance management overall." diff --git a/src/blog/2025/01/how-to-choose-right-iot-device-management-tool.md b/src/blog/2025/01/how-to-choose-right-iot-device-management-tool.md index b5e1fac506..886f80b65b 100644 --- a/src/blog/2025/01/how-to-choose-right-iot-device-management-tool.md +++ b/src/blog/2025/01/how-to-choose-right-iot-device-management-tool.md @@ -1,4 +1,5 @@ --- +metaTitle: "Choosing the Right IIoT Device Management Tool" title: How to Choose the Right IIoT Device Management Software for Your Business subtitle: Key Features and Considerations for Effective IIoT Device Management description: Learn how to choose the right IIoT device management software for your business with this comprehensive guide. Key features and considerations explained. diff --git a/src/blog/2025/01/integrating-siemens-s7-plcs-with-node-red-guide.md b/src/blog/2025/01/integrating-siemens-s7-plcs-with-node-red-guide.md index e07abfe771..1b374c2053 100644 --- a/src/blog/2025/01/integrating-siemens-s7-plcs-with-node-red-guide.md +++ b/src/blog/2025/01/integrating-siemens-s7-plcs-with-node-red-guide.md @@ -1,4 +1,5 @@ --- +metaTitle: "How to Read and Write Siemens S7 PLC Data" title: "How to Read and Write Siemens S7 PLC Data, A Node-RED Guide (2026)" subtitle: "A step-by-step beginner's guide to reading, writing, and monitoring data from Siemens S7-1200 and S7-1500 PLCs." description: "Learn how to read and write Siemens S7 PLC data using this Node-RED guide, covering setup, addressing, and building dashboards." diff --git a/src/blog/2025/02/flowfuse-release-2-14.md b/src/blog/2025/02/flowfuse-release-2-14.md index cf150fc8d6..bb66cfb1d7 100644 --- a/src/blog/2025/02/flowfuse-release-2-14.md +++ b/src/blog/2025/02/flowfuse-release-2-14.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse 2.14: Third-Party Broker Integration" title: "FlowFuse 2.14: Announcing Third-Party Broker Integration, UNS Schemas, Enhanced Auth on Remote Instances and more!" subtitle: A huge wave of new features in FlowFuse elevates your MQTT experience as well as providing improved Remote Instances security and version control too description: A huge wave of new features in FlowFuse elevates your MQTT experience as well as providing improved Remote Instances security and version control too diff --git a/src/blog/2025/02/monitoring-system-health-performance-scale-flowfuse.md b/src/blog/2025/02/monitoring-system-health-performance-scale-flowfuse.md index 36bfc73e48..92df69c016 100644 --- a/src/blog/2025/02/monitoring-system-health-performance-scale-flowfuse.md +++ b/src/blog/2025/02/monitoring-system-health-performance-scale-flowfuse.md @@ -1,4 +1,5 @@ ---- +--- +metaTitle: "Monitoring Device Health at Scale" title: "Monitoring Device Health and Performance at Scale with FlowFuse" subtitle: "Track and Optimize Edge Device Performance with Node-RED and FlowFuse." description: "Learn how to monitor system health and performance with Node-RED, tracking CPU, memory, and other key device metrics at scale." diff --git a/src/blog/2025/03/flowfuse-release-2-15.md b/src/blog/2025/03/flowfuse-release-2-15.md index 8ae7071554..67d6246e93 100644 --- a/src/blog/2025/03/flowfuse-release-2-15.md +++ b/src/blog/2025/03/flowfuse-release-2-15.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse 2.15: Node Collections & Schemas" title: "FlowFuse 2.15: Personal Node Collections, Smart Schema Suggestions and more control in DevOps Pipelines!" subtitle: Start building out your own collection of private nodes and Javascript libraries for Node-RED with our new Custom Node catalogues description: Start building out your own collection of private nodes and Javascript libraries for Node-RED with our new Custom Node catalogues diff --git a/src/blog/2025/04/flowfuse-release-2-16.md b/src/blog/2025/04/flowfuse-release-2-16.md index 6ab1d0d11b..ff6ce956ad 100644 --- a/src/blog/2025/04/flowfuse-release-2-16.md +++ b/src/blog/2025/04/flowfuse-release-2-16.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse 2.16: Git Integration & Log Retention" title: "FlowFuse 2.16: Git Integration, improved log retention and more" subtitle: "Start pushing your snapshots to git, get alerted when resources are running low and more logging from Node-RED" description: "Start pushing your snapshots to git, get alerted when resources are running low and more logging from Node-RED" diff --git a/src/blog/2025/05/flowfuse-release-2-17.md b/src/blog/2025/05/flowfuse-release-2-17.md index 4f567382ec..fb5b51958f 100644 --- a/src/blog/2025/05/flowfuse-release-2-17.md +++ b/src/blog/2025/05/flowfuse-release-2-17.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse 2.17: Remote Instance Onboarding & More" title: "FlowFuse 2.17: Easier remote instance onboarding, Dashboard blueprint, PDF generation, and more" subtitle: "Build a dashboard in one click, create PDF reports from your data, and import instances when installing Device Agent" description: "Build a dashboard in one click, create PDF reports from your data, and import instances when installing Device Agent" diff --git a/src/blog/2025/05/how-to-generate-pdf-reports-using-node-red.md b/src/blog/2025/05/how-to-generate-pdf-reports-using-node-red.md index 69a7930423..9244311c55 100644 --- a/src/blog/2025/05/how-to-generate-pdf-reports-using-node-red.md +++ b/src/blog/2025/05/how-to-generate-pdf-reports-using-node-red.md @@ -1,4 +1,5 @@ --- +metaTitle: "Generate PDF Reports Using Node-RED" title: "How to Generate PDF Reports Using Node-RED in FlowFuse (2026)" subtitle: Learn how to automate the generation of dynamic PDF reports within Node-RED and FlowFuse. description: "Discover how to create automated PDF reports in Node-RED with FlowFuse, from setup to generating reports with dynamic data." diff --git a/src/blog/2025/06/announcing-node-red-con-2025.md b/src/blog/2025/06/announcing-node-red-con-2025.md index 722e1dbfd4..7bba458166 100644 --- a/src/blog/2025/06/announcing-node-red-con-2025.md +++ b/src/blog/2025/06/announcing-node-red-con-2025.md @@ -1,4 +1,5 @@ --- +metaTitle: "Announcing Node-RED Con 2025" title: "Announcing Node-RED Con 2025: A Community Conference on Industrial Applications" subtitle: "We're excited to support this year's community conference focused on Node-RED in industry. The Call for Papers is now open!" description: "FlowFuse sponsors Node-RED Con 2025, a free online conference dedicated to industrial applications. Submit your talk today." diff --git a/src/blog/2025/06/data-acquisition-for-mes.md b/src/blog/2025/06/data-acquisition-for-mes.md index d89ff8f2ba..dba90e0af7 100644 --- a/src/blog/2025/06/data-acquisition-for-mes.md +++ b/src/blog/2025/06/data-acquisition-for-mes.md @@ -1,4 +1,5 @@ --- +metaTitle: "MES Data Acquisition: Unlock Hidden Data" title: "MES Data Acquisition: How to Unlock Your Factory’s Hidden Data" subtitle: Breaking Down Data Silos to Empower Your MES description: Learn how to effectively acquire and integrate operational data from your factory floor for MES using FlowFuse. diff --git a/src/blog/2025/06/flowfuse-release-2-18.md b/src/blog/2025/06/flowfuse-release-2-18.md index 2452251094..266a7cab21 100644 --- a/src/blog/2025/06/flowfuse-release-2-18.md +++ b/src/blog/2025/06/flowfuse-release-2-18.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse 2.18: Smarter Monitoring & AI" title: "FlowFuse 2.18: Smarter Monitoring, AI Integration, Improved DevOps, and a preview of exciting things to come" subtitle: "Monitor and improve instance performance, run AI chat in your Dashboard, Git pull, and more." description: "FlowFuse 2.18 brings smarter monitoring, AI integration, and improved DevOps: run AI chat in your Dashboard, Git pull, and more." diff --git a/src/blog/2025/06/optimizing-operations-improve-industrial-operations-with-flowfuse.md b/src/blog/2025/06/optimizing-operations-improve-industrial-operations-with-flowfuse.md index 4669689973..925b2b0cc6 100644 --- a/src/blog/2025/06/optimizing-operations-improve-industrial-operations-with-flowfuse.md +++ b/src/blog/2025/06/optimizing-operations-improve-industrial-operations-with-flowfuse.md @@ -1,4 +1,5 @@ --- +metaTitle: "Improve Industrial Operations with FlowFuse" title: "Optimizing operations: Improve Industrial Operations with FlowFuse" subtitle: "FlowFuse raises $7.2M to empower you to connect the physical and digital worlds of industry." description: "With $7.25M in new funding, FlowFuse is enhancing its low-code platform for industry, bridging the OT/IT gap with new AI features." diff --git a/src/blog/2025/06/shop-floor-kpis-for-mes.md b/src/blog/2025/06/shop-floor-kpis-for-mes.md index 8b33ef16ed..79dd94180b 100644 --- a/src/blog/2025/06/shop-floor-kpis-for-mes.md +++ b/src/blog/2025/06/shop-floor-kpis-for-mes.md @@ -1,4 +1,5 @@ --- +metaTitle: "Factory KPIs Your MES Should Deliver" title: "What to Measure on the Shop Floor: Factory KPIs Your MES Should Deliver" subtitle: "From shop floor data to strategic advantage" description: "Learn the essential factory KPIs your Manufacturing Execution System should monitor to drive profitability and cut waste." diff --git a/src/blog/2025/06/what-is-mes.md b/src/blog/2025/06/what-is-mes.md index 31eea9d61b..a0b3fce556 100644 --- a/src/blog/2025/06/what-is-mes.md +++ b/src/blog/2025/06/what-is-mes.md @@ -1,4 +1,5 @@ --- +metaTitle: "What Is MES? How It Works & Benefits" title: "What Is MES (Manufacturing Execution System)? How It Works, Benefits, and Challenges" subtitle: "MES Explained: Essential Insights for Factory Operations" description: "Understand Manufacturing Execution Systems (MES): what they are, why your factory needs one, and how FlowFuse simplifies adoption." diff --git a/src/blog/2025/07/connect-legacy-equipment-serial-flowfuse.md b/src/blog/2025/07/connect-legacy-equipment-serial-flowfuse.md index 2ceca6bb53..d28a919856 100644 --- a/src/blog/2025/07/connect-legacy-equipment-serial-flowfuse.md +++ b/src/blog/2025/07/connect-legacy-equipment-serial-flowfuse.md @@ -1,4 +1,5 @@ --- +metaTitle: "Node-RED Serial Port Tutorial: RS232/RS485" title: "Node-RED Serial Port Tutorial: Connect RS232/RS485 Manufacturing Equipment (2026)" subtitle: "Learn how to bring serial-connected equipment online using Node-RED and FlowFuse" description: "Learn how to connect manufacturing equipment using RS-232/422/485 serial interfaces in Node-RED with FlowFuse and its nodes." diff --git a/src/blog/2025/07/flowfuse-ai-assistant-better-node-red-manufacturing.md b/src/blog/2025/07/flowfuse-ai-assistant-better-node-red-manufacturing.md index af42ca6565..e794b86a48 100644 --- a/src/blog/2025/07/flowfuse-ai-assistant-better-node-red-manufacturing.md +++ b/src/blog/2025/07/flowfuse-ai-assistant-better-node-red-manufacturing.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse Expert: Automation, Not Code" title: "FlowFuse Expert: Let Your Engineers Build Automation, Not Write Code" subtitle: "Make Node-RED do more without writing code." description: "FlowFuse Expert helps manufacturing teams write Node-RED function nodes, parse machine data, and build custom dashboards." diff --git a/src/blog/2025/07/flowfuse-release-2-19.md b/src/blog/2025/07/flowfuse-release-2-19.md index b5d473cb76..581f129a67 100644 --- a/src/blog/2025/07/flowfuse-release-2-19.md +++ b/src/blog/2025/07/flowfuse-release-2-19.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse 2.19: More Powerful AI in Node-RED" title: "FlowFuse 2.19: More Powerful AI in Node-RED, Drop-In Blueprints, Memory Monitoring, and Faster Onboarding" subtitle: "AI enhancements to Node-RED, streamlined onboarding with social authentication and device flow selection, improved Blueprint experience, more comprehensive performance monitoring, and a refreshed user interface." description: "FlowFuse 2.19 brings more powerful AI to Node-RED, drop-in Blueprints, memory monitoring, and faster onboarding for teams." diff --git a/src/blog/2025/07/quality-control-automation-spc-charts.md b/src/blog/2025/07/quality-control-automation-spc-charts.md index 5a9802fb4c..b6d220e2fe 100644 --- a/src/blog/2025/07/quality-control-automation-spc-charts.md +++ b/src/blog/2025/07/quality-control-automation-spc-charts.md @@ -1,4 +1,5 @@ --- +metaTitle: "Statistical Process Control (SPC) Guide" title: "Statistical Process Control (SPC): Benefits and Implementation Guide" subtitle: "A practical guide to implementing Statistical Process Control with FlowFuse" description: "Learn how to build real-time SPC charts using Node-RED and FlowFuse for manufacturing quality control." diff --git a/src/blog/2025/07/reading-and-writing-plc-data-using-opc-ua.md b/src/blog/2025/07/reading-and-writing-plc-data-using-opc-ua.md index 5d2f3b889a..f412873780 100644 --- a/src/blog/2025/07/reading-and-writing-plc-data-using-opc-ua.md +++ b/src/blog/2025/07/reading-and-writing-plc-data-using-opc-ua.md @@ -1,4 +1,5 @@ --- +metaTitle: "OPC UA Tutorial: Connect Industrial Equipment" title: "OPC UA Tutorial: Connect and Exchange Data with Industrial Equipment" subtitle: "A practical guide to accessing industrial data through OPC UA server gateways" description: "Connect Node-RED to industrial PLCs step-by-step: configure Kepware endpoints and read/write Siemens S7 tags in this free guide." diff --git a/src/blog/2025/07/smart-manufacturing-order-panel-flowfuse.md b/src/blog/2025/07/smart-manufacturing-order-panel-flowfuse.md index 6c7dbc7a6d..afa39d14f0 100644 --- a/src/blog/2025/07/smart-manufacturing-order-panel-flowfuse.md +++ b/src/blog/2025/07/smart-manufacturing-order-panel-flowfuse.md @@ -1,4 +1,5 @@ --- +metaTitle: "Building a Smart Manufacturing Order Panel" title: "How we Built a Smart Manufacturing Order Execution Panel with FlowFuse" subtitle: "Control and track manufacturing orders with FlowFuse" description: "See how a Smart Manufacturing Order Execution Panel was built with FlowFuse to connect with Odoo ERP and track production." diff --git a/src/blog/2025/08/advanced-opcua-real-time-subscriptions-alarms-historical-data.md b/src/blog/2025/08/advanced-opcua-real-time-subscriptions-alarms-historical-data.md index e53e9d4d51..0d4dad4442 100644 --- a/src/blog/2025/08/advanced-opcua-real-time-subscriptions-alarms-historical-data.md +++ b/src/blog/2025/08/advanced-opcua-real-time-subscriptions-alarms-historical-data.md @@ -1,4 +1,5 @@ --- +metaTitle: "OPC UA Tutorial: Advanced Monitoring & Alarms" title: "OPC UA Tutorial: Advanced Monitoring with Subscriptions, Alarms, and Historical Data" subtitle: "Master advanced OPC UA features in Node-RED for production-ready industrial automation" description: "Learn advanced OPC UA techniques in Node-RED: real-time subscriptions, alarm handling, historical data, and method calls." diff --git a/src/blog/2025/08/flowfuse-node-red-api.md b/src/blog/2025/08/flowfuse-node-red-api.md index b486db791f..a6dfb8b9f2 100644 --- a/src/blog/2025/08/flowfuse-node-red-api.md +++ b/src/blog/2025/08/flowfuse-node-red-api.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse API: Automating Node-RED Instances" title: "FlowFuse API for Industry: Automating Node-RED Instances, Devices, and CI/CD Tasks" subtitle: "Automate Industrial Workflows with the FlowFuse API workflows" description: "Use the FlowFuse API to simplify industrial automation, reduce manual tasks, and streamline deployments." diff --git a/src/blog/2025/08/flowfuse-release-2-21.md b/src/blog/2025/08/flowfuse-release-2-21.md index bb0ecb0578..1007cf9c36 100644 --- a/src/blog/2025/08/flowfuse-release-2-21.md +++ b/src/blog/2025/08/flowfuse-release-2-21.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse 2.21: AI-Assisted SQL & Low-Code Nodes" title: "FlowFuse 2.21: AI-Assisted SQL, Low-Code Custom Nodes, and Remote Instance Performance Insights" subtitle: "Introducing FlowFuse Expert functionality in Tables to do natural language queries of your databases, Remote Instance observability to improve performance monitoring, Team Broker nodes to make MQTT even easier to work with, a new Energy Monitoring Blueprint, Annual Billing for Self-Service, AI-Generated Snapshot Summaries, and new subflow version control to provide low-code development of custom nodes." description: "FlowFuse 2.21 introduces AI-assisted SQL, low-code custom nodes, and remote instance performance insights for engineering teams." diff --git a/src/blog/2025/08/flowfuse-why-pricing-matters.md b/src/blog/2025/08/flowfuse-why-pricing-matters.md index 9d58950ae9..a9b4d83596 100644 --- a/src/blog/2025/08/flowfuse-why-pricing-matters.md +++ b/src/blog/2025/08/flowfuse-why-pricing-matters.md @@ -1,4 +1,5 @@ --- +metaTitle: "Why Pricing Models Matter in Automation" title: "The Evolution of Business Automation: Why Pricing Models Matter" subtitle: The importance of a predictable pricing model in workflow automation description: "The importance of a predictable pricing model in workflow automation, and how it shapes how teams choose their automation tools." diff --git a/src/blog/2025/08/getting-started-with-flowfuse-tables.md b/src/blog/2025/08/getting-started-with-flowfuse-tables.md index c6aa41d4cf..9f4a39d913 100644 --- a/src/blog/2025/08/getting-started-with-flowfuse-tables.md +++ b/src/blog/2025/08/getting-started-with-flowfuse-tables.md @@ -1,4 +1,5 @@ --- +metaTitle: "The Easiest Way to Store Industrial IoT Data" title: "FlowFuse's New Database: The Easiest Way to Store Industrial IoT Data" subtitle: "A step-by-step guide to storing, querying, and managing industrial data without leaving your FlowFuse project." description: "FlowFuse now includes a built-in PostgreSQL database, making it easier to manage Industrial IoT data in your Node-RED projects." diff --git a/src/blog/2025/08/open-source-software-and-manufacturing.md b/src/blog/2025/08/open-source-software-and-manufacturing.md index 03aab76131..8fa8e68d5d 100644 --- a/src/blog/2025/08/open-source-software-and-manufacturing.md +++ b/src/blog/2025/08/open-source-software-and-manufacturing.md @@ -1,4 +1,5 @@ --- +metaTitle: "Winning Through Open-Source in Manufacturing" title: "Winning Through Open-Source Software in Manufacturing Digitalization" subtitle: "Manufacturing organizations used to be leading in software but has lost the lead. Open Source Software is the way to now catch up" description: "Explore how open-source software helps manufacturers overcome vendor lock-in and accelerate their digital transformation efforts." diff --git a/src/blog/2025/08/orchestrating-virtual-power-plants-low-code-platforms.md b/src/blog/2025/08/orchestrating-virtual-power-plants-low-code-platforms.md index 5c10b802ad..069c2bc4af 100644 --- a/src/blog/2025/08/orchestrating-virtual-power-plants-low-code-platforms.md +++ b/src/blog/2025/08/orchestrating-virtual-power-plants-low-code-platforms.md @@ -1,4 +1,5 @@ --- +metaTitle: "Orchestrating Virtual Power Plants with Low-Code" title: "Orchestrating Virtual Power Plants: How Low-Code Platforms Bridge the Gap" subtitle: "Why low-code tools are the missing link in scaling distributed energy systems" description: "Learn how low-code platforms like FlowFuse and Node-RED simplify integrating and managing distributed energy resources at scale." diff --git a/src/blog/2025/08/pareto-chart-manufacturing-guide.md b/src/blog/2025/08/pareto-chart-manufacturing-guide.md index 19d282eb73..286dae5b7e 100644 --- a/src/blog/2025/08/pareto-chart-manufacturing-guide.md +++ b/src/blog/2025/08/pareto-chart-manufacturing-guide.md @@ -1,4 +1,5 @@ --- +metaTitle: "Pareto Chart & Diagram: Formula & Examples" title: "Pareto Chart & Diagram: What It Is, Formula, Examples & Manufacturing Applications" subtitle: "How the Pareto principle helps manufacturing teams focus where it matters most." description: "Learn how Pareto Charts and diagrams help manufacturing teams reduce defects by up to 80%, with formulas and real examples." diff --git a/src/blog/2025/09/ai-assistant-flowfuse-tables.md b/src/blog/2025/09/ai-assistant-flowfuse-tables.md index 2c00f1ba6d..33af06270b 100644 --- a/src/blog/2025/09/ai-assistant-flowfuse-tables.md +++ b/src/blog/2025/09/ai-assistant-flowfuse-tables.md @@ -1,4 +1,5 @@ --- +metaTitle: "Query Your Database with Natural Language" title: "Query Your Database with Natural Language Using FlowFuse Expert" subtitle: "A faster, more intuitive way to get data from your tables without writing a single line of SQL." description: "Learn the easiest way to connect to your database and get data using FlowFuse Expert, with no coding knowledge required." diff --git a/src/blog/2025/09/flowfuse-release-2-22.md b/src/blog/2025/09/flowfuse-release-2-22.md index 91585cd0a1..2c22e2795b 100644 --- a/src/blog/2025/09/flowfuse-release-2-22.md +++ b/src/blog/2025/09/flowfuse-release-2-22.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse 2.22: Expert for Node Editing & More" title: "FlowFuse 2.22: FlowFuse Expert for node editing, FlowFuse Broker schema autodetection, Improved Snapshots Interface, eCharts enablement, and FlowFuse Dashboard Updates" subtitle: "FlowFuse Expert for node editing, FlowFuse Broker schema autodetection, Improved Snapshots Interface, eCharts enablement, and FlowFuse Dashboard Updates" description: "FlowFuse Expert for node editing, FlowFuse Broker schema autodetection, Improved Snapshots Interface, eCharts enablement, and FlowFuse Dashboard Updates" diff --git a/src/blog/2025/09/installing-node-red.md b/src/blog/2025/09/installing-node-red.md index 6e6a2b5f06..7a1bd0514b 100644 --- a/src/blog/2025/09/installing-node-red.md +++ b/src/blog/2025/09/installing-node-red.md @@ -1,4 +1,5 @@ --- +metaTitle: "Download Node-RED for Production" title: "Download Node-RED for Production: Windows, Mac, Linux, Raspberry Pi (2026)" subtitle: Scale Node-RED from prototype to production with centralized management and 24/7 reliability description: "Learn how to install and run Node-RED on Windows, Mac, Linux, or Raspberry Pi, production-ready from the creators of Node-RED." diff --git a/src/blog/2025/09/it-vs-ot-difference-between-information-technology-and-operational-technology.md b/src/blog/2025/09/it-vs-ot-difference-between-information-technology-and-operational-technology.md index 5a9b80fb56..4f184b69ca 100644 --- a/src/blog/2025/09/it-vs-ot-difference-between-information-technology-and-operational-technology.md +++ b/src/blog/2025/09/it-vs-ot-difference-between-information-technology-and-operational-technology.md @@ -1,4 +1,5 @@ --- +metaTitle: "IT vs OT: Key Differences & Security Risks" title: "IT vs OT: Key Differences, Security Risks, and IT/OT Convergence" subtitle: "Two systems. Two priorities. One secure path to convergence." description: "IT vs OT explained for manufacturing in 2026: the key differences, security risks, and how to securely converge the two." diff --git a/src/blog/2025/09/poka-yoke-mistake-proofing.md b/src/blog/2025/09/poka-yoke-mistake-proofing.md index e195b8816a..102f617ac1 100644 --- a/src/blog/2025/09/poka-yoke-mistake-proofing.md +++ b/src/blog/2025/09/poka-yoke-mistake-proofing.md @@ -1,4 +1,5 @@ --- +metaTitle: "Poka Yoke Explained: Definition, Examples, Types" title: "Poka Yoke (Poke Yoke, Bokayoke) Explained: Definition, Examples, Types (2026)" subtitle: "How to mistake-proof your manufacturing processes" description: "Learn how poka yoke prevents manufacturing defects before they happen, and the four types of mistake-proofing you can use." diff --git a/src/blog/2025/09/preventive-maintenance-equipment-failure.md b/src/blog/2025/09/preventive-maintenance-equipment-failure.md index 643ad18aa7..79471eb657 100644 --- a/src/blog/2025/09/preventive-maintenance-equipment-failure.md +++ b/src/blog/2025/09/preventive-maintenance-equipment-failure.md @@ -1,4 +1,5 @@ --- +metaTitle: "Preventive Maintenance in Manufacturing" title: "Preventive Maintenance in Manufacturing: Avoid Multi-Million Dollar Equipment Failures" subtitle: "How industrial data platforms are turning equipment failures from crisis events into predictable, manageable costs" description: "Unplanned downtime costs manufacturers millions. Learn how preventive maintenance software and FlowFuse cut failures and boost OEE." diff --git a/src/blog/2025/09/what-is-5s-checklist.md b/src/blog/2025/09/what-is-5s-checklist.md index 85b755c0b3..e6b135e10c 100644 --- a/src/blog/2025/09/what-is-5s-checklist.md +++ b/src/blog/2025/09/what-is-5s-checklist.md @@ -1,4 +1,5 @@ --- +metaTitle: "What is 5S Checklist? Benefits & Template" title: "What is 5S Checklist: Definition, Benefits, Implementation, and Template" subtitle: "Understand 5S Checklists, Improve Work Area Efficiency, and Start with a Ready-to-Use FlowFuse Template" description: "Learn what a 5S checklist is, how it improves work area organization, and how to implement it easily with FlowFuse, plus get a ready-to-use template." diff --git a/src/blog/2025/09/what-is-takt-time.md b/src/blog/2025/09/what-is-takt-time.md index c8f88e55d9..2b756a7b26 100644 --- a/src/blog/2025/09/what-is-takt-time.md +++ b/src/blog/2025/09/what-is-takt-time.md @@ -1,4 +1,5 @@ --- +metaTitle: "Takt Time: Definition, Formula & Examples" title: "Takt Time: Definition, Formula, How to Calculate with Examples & More [2026 Edition]" subtitle: "Master takt time to synchronize production with customer demand using lean manufacturing principles" description: "A complete guide to takt time in manufacturing: the formula, calculation methods, implementation strategies, and examples." diff --git a/src/blog/2025/10/building-mcp-server-using-flowfuse.md b/src/blog/2025/10/building-mcp-server-using-flowfuse.md index 3e1548b371..ce5c95a2c7 100644 --- a/src/blog/2025/10/building-mcp-server-using-flowfuse.md +++ b/src/blog/2025/10/building-mcp-server-using-flowfuse.md @@ -1,4 +1,5 @@ --- +metaTitle: "Building MCP Servers for AI Agent Integration" title: "Building MCP Servers for AI Agent Integration in Node-RED with FlowFuse" subtitle: "Integrate AI into industrial systems FlowFuse new MCP nodes" description: "Learn how to build a fully functional MCP server in Node-RED, enabling AI agents to access data using a low-code approach." diff --git a/src/blog/2025/10/custom-onnx-model.md b/src/blog/2025/10/custom-onnx-model.md index f02919a492..3f00368bda 100644 --- a/src/blog/2025/10/custom-onnx-model.md +++ b/src/blog/2025/10/custom-onnx-model.md @@ -1,4 +1,5 @@ --- +metaTitle: "Deploy Custom-Trained AI Models with ONNX" title: "Deploy Custom-Trained AI Models: Using ONNX with Node-RED and FlowFuse" subtitle: "Using ONNX runtime to run inference in Node-RED" description: "Learn how to train and export an image classifier model, and integrate it with FlowFuse AI Nodes for low-code inference in Node-RED." diff --git a/src/blog/2025/10/flowfuse-release-2-23.md b/src/blog/2025/10/flowfuse-release-2-23.md index 1531ff263a..f2627e041e 100644 --- a/src/blog/2025/10/flowfuse-release-2-23.md +++ b/src/blog/2025/10/flowfuse-release-2-23.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse 2.23: MCP and ONNX Nodes & More" title: "FlowFuse 2.23: MCP and ONNX nodes, FlowFuse AI Expert on the homepage, Application-level Permission Control, FlowFuse Expert for Self-Hosted, and more!" subtitle: "MCP and ONNX nodes, FlowFuse AI Expert on the homepage, Application-level Permission Control, FlowFuse Expert for Self-Hosted, and more!" description: "MCP and ONNX nodes, FlowFuse AI Expert on the homepage, Application-level Permission Control, FlowFuse Expert for Self-Hosted, and more!" diff --git a/src/blog/2025/10/node-red-revolution.md b/src/blog/2025/10/node-red-revolution.md index f6a03f6617..fb81afd26e 100644 --- a/src/blog/2025/10/node-red-revolution.md +++ b/src/blog/2025/10/node-red-revolution.md @@ -1,4 +1,5 @@ --- +metaTitle: "The Node-RED Revolution in Low-Code" title: "The Node-RED Revolution: How Low-Code is Democratizing Industrial Automation" subtitle: "Looking back on where Node-RED came from to understand the impact it has had on industry" description: "Look back at where Node-RED came from and understand the impact it has had on industrial automation and low-code development." diff --git a/src/blog/2025/10/open-ai-agent-builder-versus-flowfuse.md b/src/blog/2025/10/open-ai-agent-builder-versus-flowfuse.md index c0be56148e..3d40b1167c 100644 --- a/src/blog/2025/10/open-ai-agent-builder-versus-flowfuse.md +++ b/src/blog/2025/10/open-ai-agent-builder-versus-flowfuse.md @@ -1,4 +1,5 @@ --- +metaTitle: "OpenAI's AgentKit or FlowFuse: Which to Choose" title: "OpenAI's AgentKit or FlowFuse: Choosing the Right Low-Code App for Your Needs" subtitle: "Understanding the key differences between AI-native agent development and edge-focused industrial automation" description: "Learn how OpenAI's AgentKit and FlowFuse differ in their approach to AI agents connecting the physical and digital worlds." diff --git a/src/blog/2025/10/the-ai-orchestration-hype.md b/src/blog/2025/10/the-ai-orchestration-hype.md index 4ecadebc4f..a9860cbeb6 100644 --- a/src/blog/2025/10/the-ai-orchestration-hype.md +++ b/src/blog/2025/10/the-ai-orchestration-hype.md @@ -1,4 +1,5 @@ --- +metaTitle: "Beyond Cloud AI: Hybrid Edge-Cloud Intelligence" title: "Beyond Cloud AI Orchestration: Why the Future is Hybrid Edge-Cloud Intelligence" subtitle: "While cloud orchestration excels in digital workflows, the industrial world needs a hybrid approach." description: "How edge-cloud hybrid AI architectures unlock new possibilities for industrial applications while leveraging the best of both worlds." diff --git a/src/blog/2025/10/using-ethernet-ip-with-flowfuse.md b/src/blog/2025/10/using-ethernet-ip-with-flowfuse.md index 9ad9cac12d..740a0b816b 100644 --- a/src/blog/2025/10/using-ethernet-ip-with-flowfuse.md +++ b/src/blog/2025/10/using-ethernet-ip-with-flowfuse.md @@ -1,4 +1,5 @@ --- +metaTitle: "EtherNet/IP Integration with Allen-Bradley PLCs" title: "EtherNet/IP Integration with FlowFuse: Communicating with Allen-Bradley PLCs" subtitle: "A guide to connected and unconnected EtherNet/IP communication with FlowFuse" description: "Learn how to integrate Allen-Bradley PLCs with FlowFuse using EtherNet/IP, covering messaging, tags, and automation workflows." diff --git a/src/blog/2025/11/building-label-scanner-with-flowfuse.md b/src/blog/2025/11/building-label-scanner-with-flowfuse.md index d8a4b1ec51..e7f7f94256 100644 --- a/src/blog/2025/11/building-label-scanner-with-flowfuse.md +++ b/src/blog/2025/11/building-label-scanner-with-flowfuse.md @@ -1,4 +1,5 @@ --- +metaTitle: "Building a Label Scanner for Product Labels" title: "Building a Label Scanner with FlowFuse for Product Labels & Serial Numbers" subtitle: "A practical guide to automating text recognition in manufacturing workflows" description: "Step-by-step guide to building an OCR system in FlowFuse for scanning product labels, extracting text, and validating serial numbers using Node-RED flows." diff --git a/src/blog/2025/11/flowfuse-release-2-24.md b/src/blog/2025/11/flowfuse-release-2-24.md index d04ccc05c5..f75db3b2f4 100644 --- a/src/blog/2025/11/flowfuse-release-2-24.md +++ b/src/blog/2025/11/flowfuse-release-2-24.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse 2.24: Expert in the Node-RED Editor" title: "FlowFuse 2.24: FlowFuse Expert in the Node-RED Editor, Scheduled Updates, Simpler Edge Device Addition, Store and Forward Blueprint, and what's next!" subtitle: "FlowFuse 2.24: FlowFuse Expert in the Node-RED Editor, Scheduled Updates, Simpler Edge Device Addition, Store and Forward Blueprint, and what's next!" description: "FlowFuse 2.24: FlowFuse Expert in the Node-RED Editor, Scheduled Updates, Simpler Edge Device Addition, Store and Forward Blueprint, and what's next!" diff --git a/src/blog/2025/11/industrial-data-validation-guide.md b/src/blog/2025/11/industrial-data-validation-guide.md index a8210e1307..61daea7295 100644 --- a/src/blog/2025/11/industrial-data-validation-guide.md +++ b/src/blog/2025/11/industrial-data-validation-guide.md @@ -1,4 +1,5 @@ --- +metaTitle: "Protect Your Factory From Bad Data" title: "How to Protect Your Factory From Bad Data: A Must-Have Read for IIoT" subtitle: "How to validate industrial data before it enters your systems." description: "Build a bulletproof data validation gateway that catches corrupted sensor readings and malformed MQTT payloads before they spread." diff --git a/src/blog/2025/11/optimize-industrial-data-protocol-buffers.md b/src/blog/2025/11/optimize-industrial-data-protocol-buffers.md index bf77c6deea..f6cb03c311 100644 --- a/src/blog/2025/11/optimize-industrial-data-protocol-buffers.md +++ b/src/blog/2025/11/optimize-industrial-data-protocol-buffers.md @@ -1,4 +1,5 @@ --- +metaTitle: "Optimize Industrial Data with Protocol Buffers" title: "How to Optimize Industrial Data Communication with Protocol Buffers" subtitle: "Cut network traffic by 60% with binary serialization, three nodes, one file, no complexity" description: "Stop transmitting waste. Learn how Protocol Buffers reduce industrial IoT data size by 60% using FlowFuse, no coding required." diff --git a/src/blog/2025/11/ptc-kepware-thingworx-divestment.md b/src/blog/2025/11/ptc-kepware-thingworx-divestment.md index 887ee8919c..4e54909a23 100644 --- a/src/blog/2025/11/ptc-kepware-thingworx-divestment.md +++ b/src/blog/2025/11/ptc-kepware-thingworx-divestment.md @@ -1,4 +1,5 @@ --- +metaTitle: "The Industrial IoT Market Shift: PTC Divestment" title: "The Industrial IoT Market Shift: What the PTC Divestment Means for Your Data Strategy" subtitle: "Understanding the bigger picture behind the $600M Kepware and ThingWorx sale" description: "PTC's $600M divestment of Kepware and ThingWorx to TPG raises critical questions for industrial data strategy going forward." diff --git a/src/blog/2025/11/store-and-forward-edge-data-buffering.md b/src/blog/2025/11/store-and-forward-edge-data-buffering.md index a11780253c..df4e585573 100644 --- a/src/blog/2025/11/store-and-forward-edge-data-buffering.md +++ b/src/blog/2025/11/store-and-forward-edge-data-buffering.md @@ -1,4 +1,5 @@ --- +metaTitle: "Store-and-Forward at the Edge" title: "Store-and-Forward at the Edge: Buffering Production Data During Network Outages" subtitle: "Keep collecting data when your network goes down" description: "Learn how to implement store-and-forward buffering with FlowFuse to maintain data continuity during network outages at the edge." diff --git a/src/blog/2025/12/five-whys-root-cause-analysis-definition-examples.md b/src/blog/2025/12/five-whys-root-cause-analysis-definition-examples.md index 7ce4433c84..21684a966a 100644 --- a/src/blog/2025/12/five-whys-root-cause-analysis-definition-examples.md +++ b/src/blog/2025/12/five-whys-root-cause-analysis-definition-examples.md @@ -1,4 +1,5 @@ --- +metaTitle: "Five Whys Root Cause Analysis: Steps & Examples" title: "Five Whys Root Cause Analysis: Definition, Steps & Examples (2026)" subtitle: "A proven root cause analysis technique for solving recurring problems in manufacturing, operations, and continuous improvement." description: "Learn the Five Whys root cause analysis method: step-by-step process, real Toyota examples, templates, and best practices." diff --git a/src/blog/2025/12/flowfuse-release-2-25.md b/src/blog/2025/12/flowfuse-release-2-25.md index b1a295a2b3..2d6cfdba98 100644 --- a/src/blog/2025/12/flowfuse-release-2-25.md +++ b/src/blog/2025/12/flowfuse-release-2-25.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse 2.25: MCP Resources in Expert & More" title: "FlowFuse 2.25: Interacting with MCP Resources in FlowFuse Expert, Improved Update Scheduling, and lots of UI improvements!" subtitle: "FlowFuse 2.25: Interacting with MCP Resources in FlowFuse Expert, Improved Update Scheduling, and lots of UI improvements!" description: "FlowFuse 2.25: Interacting with MCP Resources in FlowFuse Expert, Improved Update Scheduling, and lots of UI improvements!" diff --git a/src/blog/2025/12/node-red-buffer-parser-industrial-data.md b/src/blog/2025/12/node-red-buffer-parser-industrial-data.md index aabd6cf388..927fe31763 100644 --- a/src/blog/2025/12/node-red-buffer-parser-industrial-data.md +++ b/src/blog/2025/12/node-red-buffer-parser-industrial-data.md @@ -1,4 +1,5 @@ --- +metaTitle: "Node-RED Buffer Parser Guide for Modbus Data" title: "Node-RED Buffer Parser Guide: Decode Modbus and Industrial Device Data (2026)" subtitle: "A practical guide to visual buffer parsing in Node-RED" description: "Learn how to parse Modbus and industrial device buffers in Node-RED using the visual Buffer Parser node, no coding required." diff --git a/src/blog/2025/12/node-red-timer.md b/src/blog/2025/12/node-red-timer.md index cc36053fd3..3905800c45 100644 --- a/src/blog/2025/12/node-red-timer.md +++ b/src/blog/2025/12/node-red-timer.md @@ -1,4 +1,5 @@ --- +metaTitle: "Node-RED Timer Tutorial: Stopwatch & Countdown" title: "Node-RED Timer Tutorial: Create Stopwatch and Countdown Timers" subtitle: "Implement stopwatch and countdown timers for industrial automation and process control applications" description: "Node-RED timer tutorial showing how to implement stopwatch and countdown timers for industrial automation and IoT applications." diff --git a/src/blog/2025/12/read-s7-optimized-datablocks-flowfuse.md b/src/blog/2025/12/read-s7-optimized-datablocks-flowfuse.md index 62dd001345..f23da8b22e 100644 --- a/src/blog/2025/12/read-s7-optimized-datablocks-flowfuse.md +++ b/src/blog/2025/12/read-s7-optimized-datablocks-flowfuse.md @@ -1,4 +1,5 @@ --- +metaTitle: "Access Optimized Data Blocks in TIA Portal" title: "How to Access Optimized Data Blocks in TIA Portal (S7-1200/1500)" subtitle: "Use OPC UA to read optimized data blocks by name instead of fighting with memory addresses" description: "Learn how to read Siemens S7-1200/1500 optimized data blocks using OPC UA and FlowFuse, with reliable symbolic addressing." diff --git a/src/blog/2025/12/what-is-mttf.md b/src/blog/2025/12/what-is-mttf.md index b95085c4b2..8cf06bba20 100644 --- a/src/blog/2025/12/what-is-mttf.md +++ b/src/blog/2025/12/what-is-mttf.md @@ -1,4 +1,5 @@ --- +metaTitle: "Mean Time to Failure (MTTF): Formula & Calc" title: "Mean Time to Failure (MTTF): Formula, Calculation, MTTF vs MTBF vs MTTR, and More" subtitle: "Understanding equipment reliability and predicting failure patterns" description: "Learn what Mean Time to Failure (MTTF) means, how to calculate it with real examples, and how it improves maintenance planning." diff --git a/src/blog/2025/12/what-is-plc.md b/src/blog/2025/12/what-is-plc.md index 6f8e9c9fdd..2cfdaad0d1 100644 --- a/src/blog/2025/12/what-is-plc.md +++ b/src/blog/2025/12/what-is-plc.md @@ -1,4 +1,5 @@ --- +metaTitle: "What Is a PLC (Programmable Logic Controller) ? How It Works" title: "What Is a PLC (Programmable Logic Controller)? What It Does, How It Works, and Where It's Used" subtitle: "How Dick Morley's New Year's Day Hangover Changed Manufacturing Forever" description: "What a PLC is, the seven parts inside it, how the scan cycle works, which protocols PLCs speak, and how to get PLC data into the systems that need it." diff --git a/src/blog/2026/01/kepware-opcua-better-alternative.md b/src/blog/2026/01/kepware-opcua-better-alternative.md index 9b5907d0af..f30051a7cf 100644 --- a/src/blog/2026/01/kepware-opcua-better-alternative.md +++ b/src/blog/2026/01/kepware-opcua-better-alternative.md @@ -1,4 +1,5 @@ --- +metaTitle: "Beyond Kepware: A Modern Alternative" title: "Beyond Kepware: Why Modern Industrial Connectivity Demands a Second Look" subtitle: "Why per-tag pricing, scale penalties, and private-equity ownership change the risk equation" description: "Kepware became the default when industrial connectivity was hard. Learn why pricing and ownership changes make it risky now." diff --git a/src/blog/2026/01/node-red-history-community-industrial-iot-flowfuse.md b/src/blog/2026/01/node-red-history-community-industrial-iot-flowfuse.md index ea7e6909e5..4e4ce3772e 100644 --- a/src/blog/2026/01/node-red-history-community-industrial-iot-flowfuse.md +++ b/src/blog/2026/01/node-red-history-community-industrial-iot-flowfuse.md @@ -1,4 +1,5 @@ --- +metaTitle: "The Node-RED Story: From Lab to Industry" title: "The Node-RED Story: How Visual Programming Escaped the Lab and Conquered Industry" subtitle: "From a single weekend hack to millions of deployments across homes and industry." description: "Read how Node-RED evolved from a weekend IBM project into a global phenomenon powering a 4,300+ node community worldwide." diff --git a/src/blog/2026/01/opcua-vs-mqtt.md b/src/blog/2026/01/opcua-vs-mqtt.md index da65c5e38e..9254458868 100644 --- a/src/blog/2026/01/opcua-vs-mqtt.md +++ b/src/blog/2026/01/opcua-vs-mqtt.md @@ -1,4 +1,5 @@ --- +metaTitle: "MQTT vs OPC UA: Which One Should You Use?" title: "MQTT vs OPC UA: Why This Question Never Has a Straight Answer" subtitle: "Why comparing MQTT and OPC UA is a category error, and how to choose based on requirements rather than marketing" description: "MQTT vs OPC UA isn't a real choice; they solve different problems. Learn when to use each protocol based on your actual requirements, not vendor marketing." diff --git a/src/blog/2026/01/what-is-system-integrator.md b/src/blog/2026/01/what-is-system-integrator.md index 71913e5c28..cb8f3e59f9 100644 --- a/src/blog/2026/01/what-is-system-integrator.md +++ b/src/blog/2026/01/what-is-system-integrator.md @@ -1,4 +1,5 @@ --- +metaTitle: "What Is a System Integrator?" title: "What Is a System Integrator? Understanding Manufacturing's Most Misunderstood Role" subtitle: "The specialists who make your factory equipment talk to your business software" description: "System integrators connect factory equipment to business systems. Learn what they do and how modern tools are changing the role." diff --git a/src/blog/2026/02/flowfuse-release-2-27.md b/src/blog/2026/02/flowfuse-release-2-27.md index fadf4362a6..590bea4ea6 100644 --- a/src/blog/2026/02/flowfuse-release-2-27.md +++ b/src/blog/2026/02/flowfuse-release-2-27.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse 2.27: Editor in Remote Instances" title: "FlowFuse 2.27: Integrated Editor in Remote Instances & Context-Aware FlowFuse Expert" subtitle: "A more consistent Node-RED experience across environments and deeper live context for FlowFuse Expert." description: "FlowFuse 2.27 improves Remote workflows, simplifies rollback in developer mode, and adds a context-aware FlowFuse Expert." diff --git a/src/blog/2026/02/getting-started-with-canbus.md b/src/blog/2026/02/getting-started-with-canbus.md index b763594d39..6999ecc65e 100644 --- a/src/blog/2026/02/getting-started-with-canbus.md +++ b/src/blog/2026/02/getting-started-with-canbus.md @@ -1,4 +1,5 @@ --- +metaTitle: "CAN Bus Tutorial: Connect to Dashboards" title: "CAN Bus Tutorial: Connect to Dashboards, Cloud, and Industrial Systems" subtitle: "Build vehicle and industrial automation systems without low-level drivers or proprietary tools" description: "Learn how to set up SocketCAN on Linux, configure CAN interfaces, and build CAN bus applications using FlowFuse's visual programming platform." diff --git a/src/blog/2026/02/modbus-tcp-vs-modbus-rtu.md b/src/blog/2026/02/modbus-tcp-vs-modbus-rtu.md index 4a24357216..b93b03a174 100644 --- a/src/blog/2026/02/modbus-tcp-vs-modbus-rtu.md +++ b/src/blog/2026/02/modbus-tcp-vs-modbus-rtu.md @@ -1,4 +1,5 @@ --- +metaTitle: "Modbus TCP vs Modbus RTU: Key Differences" title: "Modbus TCP vs Modbus RTU: Reliability, Latency, and Failure Modes" subtitle: "What nobody tells you until the line goes down" description: "A practical engineering guide to choosing between Modbus RTU and Modbus TCP, covering real latency numbers and failure modes." diff --git a/src/blog/2026/02/motor-anomaly-detector-ai.md b/src/blog/2026/02/motor-anomaly-detector-ai.md index 8d46318859..f60f211dfb 100644 --- a/src/blog/2026/02/motor-anomaly-detector-ai.md +++ b/src/blog/2026/02/motor-anomaly-detector-ai.md @@ -1,4 +1,5 @@ --- +metaTitle: "AI Vibration Anomaly Detector for Motors" title: "Building an AI Vibration Anomaly Detector for Industrial Motors" subtitle: "Detect motor faults early using AI-driven vibration analysis and anomaly detection." description: "Learn how to monitor industrial motors continuously, train a custom autoencoder on healthy vibration data, and deploy real-time anomaly detection in Node-RED." diff --git a/src/blog/2026/02/what-is-event-driven-architecture-in-manufacturing.md b/src/blog/2026/02/what-is-event-driven-architecture-in-manufacturing.md index 484bb4f2aa..6ef76ae5d9 100644 --- a/src/blog/2026/02/what-is-event-driven-architecture-in-manufacturing.md +++ b/src/blog/2026/02/what-is-event-driven-architecture-in-manufacturing.md @@ -1,4 +1,5 @@ --- +metaTitle: "Event-Driven Architecture Explained" title: "Event-Driven Architecture: 99% of Your System Requests Are Worthless" subtitle: "What Happens When Your Factory Stops Asking and Starts Listening" description: "Learn how Event-Driven Architecture enables real-time responsiveness in manufacturing, replacing request-response models." diff --git a/src/blog/2026/03/edge-ai-vs-cloud-ai-in-iiot.md b/src/blog/2026/03/edge-ai-vs-cloud-ai-in-iiot.md index c3c61cc3de..02f8725198 100644 --- a/src/blog/2026/03/edge-ai-vs-cloud-ai-in-iiot.md +++ b/src/blog/2026/03/edge-ai-vs-cloud-ai-in-iiot.md @@ -1,4 +1,5 @@ --- +metaTitle: "Edge vs Cloud AI in Manufacturing" title: "Edge vs Cloud AI in Manufacturing: Where Each Actually Belongs" subtitle: "Should we run our AI at the edge or in the cloud?" description: "Industrial AI works best when edge and cloud are complementary layers combining real-time inference with cloud model training." diff --git a/src/blog/2026/03/flowfuse-release-2-28.md b/src/blog/2026/03/flowfuse-release-2-28.md index 56452e3e93..5428f50bd8 100644 --- a/src/blog/2026/03/flowfuse-release-2-28.md +++ b/src/blog/2026/03/flowfuse-release-2-28.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse 2.28: Troubleshoot Faster & More" title: "FlowFuse 2.28: Troubleshoot Faster, Manage Edge Devices Centrally, and More Self-Hosted Flexibility" subtitle: "Point FlowFuse Expert at your debug logs, configure Node.js runtime options for edge devices, and gain more control over self-hosted deployments." description: "FlowFuse 2.28 lets you troubleshoot flows faster with debug log context and manage Remote Instances centrally with more options." diff --git a/src/blog/2026/03/how-to-implement-dlq-and-retries.md b/src/blog/2026/03/how-to-implement-dlq-and-retries.md index e9cd7b1eb4..9b5fa33b1b 100644 --- a/src/blog/2026/03/how-to-implement-dlq-and-retries.md +++ b/src/blog/2026/03/how-to-implement-dlq-and-retries.md @@ -1,4 +1,5 @@ --- +metaTitle: "Stop Silent Pipeline Failures From Losing Data" title: "How to Stop Silent Pipeline Failures From Swallowing Your IIoT Data" subtitle: "When your pipeline fails, every dropped message is data you'll never get back, until now" description: "Most IIoT pipelines fail quietly. Learn how to build a fault-tolerant data pipeline that catches every failure and retries." diff --git a/src/blog/2026/04/cloud-edge-or-hybrid-how-to-choose-your-flowfuse-deployment.md b/src/blog/2026/04/cloud-edge-or-hybrid-how-to-choose-your-flowfuse-deployment.md index dcecf375f6..ab8edd2279 100644 --- a/src/blog/2026/04/cloud-edge-or-hybrid-how-to-choose-your-flowfuse-deployment.md +++ b/src/blog/2026/04/cloud-edge-or-hybrid-how-to-choose-your-flowfuse-deployment.md @@ -1,4 +1,5 @@ --- +metaTitle: "Cloud, Edge, or Both? Choosing Your Deployment" title: "Cloud, Edge, or Both? How to Choose Your Deployment Before an Outage Does It For You" subtitle: "Cloud, edge, or hybrid: a practical guide to FlowFuse deployment." description: "Cloud, edge, or hybrid? Learn how to choose the right FlowFuse deployment model for your industrial workflows - before an outage exposes the wrong architecture." diff --git a/src/blog/2026/04/diagnosing-modbus-degradation.md b/src/blog/2026/04/diagnosing-modbus-degradation.md index 66f8f4f224..3d673a2c22 100644 --- a/src/blog/2026/04/diagnosing-modbus-degradation.md +++ b/src/blog/2026/04/diagnosing-modbus-degradation.md @@ -1,4 +1,5 @@ --- +metaTitle: "Diagnosing Modbus Degradation" title: "Diagnosing Modbus Degradation: From CRC Errors to TCP Timeouts" subtitle: "CRC errors, connection exhaustion, dead poll lists, and the metrics that catch Modbus degradation early" description: "Modbus doesn't fail loudly, it drifts. Learn how to diagnose serial vs. TCP failures and build a metrics layer that warns you." diff --git a/src/blog/2026/04/flowfuse-release-2-29.md b/src/blog/2026/04/flowfuse-release-2-29.md index 395c1ea320..c4e7394d85 100644 --- a/src/blog/2026/04/flowfuse-release-2-29.md +++ b/src/blog/2026/04/flowfuse-release-2-29.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse 2.29: Expert Comes to Self-Hosted" title: "FlowFuse 2.29: FlowFuse Expert Comes to Self-Hosted Enterprise" subtitle: "Self-Hosted Enterprise customers can now enable FlowFuse Expert. Plus Azure DevOps Git support and clearer snapshot comparisons." description: "FlowFuse 2.29 brings FlowFuse Expert to self-hosted enterprise customers, adds Azure DevOps support, and clearer snapshot diffs." diff --git a/src/blog/2026/04/modbus-polling-best-practices.md b/src/blog/2026/04/modbus-polling-best-practices.md index bb2cff8911..10b2566d13 100644 --- a/src/blog/2026/04/modbus-polling-best-practices.md +++ b/src/blog/2026/04/modbus-polling-best-practices.md @@ -1,4 +1,5 @@ --- +metaTitle: "Modbus Polling Setups: How to Fix Yours" title: "Most Modbus Polling Setups Are Wrong: Here's How to Fix Yours" subtitle: "The configuration decisions made at setup time that cause problems you'll blame on hardware" description: "Most Modbus polling problems aren't hardware failures. They're three configuration mistakes made at commissioning and never revisited. Here's how to fix them." diff --git a/src/blog/2026/04/rosetta-stone-for-industrial-data.md b/src/blog/2026/04/rosetta-stone-for-industrial-data.md index bb006ca37e..7799fb0d66 100644 --- a/src/blog/2026/04/rosetta-stone-for-industrial-data.md +++ b/src/blog/2026/04/rosetta-stone-for-industrial-data.md @@ -1,4 +1,5 @@ --- +metaTitle: "The Rosetta Stone for Factories" title: "The Rosetta Stone for Factories: Why IIoT Needs a Common Language First" subtitle: "Your factory isn't data-poor. It's data-illiterate. Here's the difference." description: "Discover why IIoT data integration fails at scale and how Unified Namespace, OPC-UA, and MQTT create a common data language." diff --git a/src/blog/2026/04/stop-noisy-sensor-data-deadband-filter-flowfuse.md b/src/blog/2026/04/stop-noisy-sensor-data-deadband-filter-flowfuse.md index 96011132b1..6884d240bb 100644 --- a/src/blog/2026/04/stop-noisy-sensor-data-deadband-filter-flowfuse.md +++ b/src/blog/2026/04/stop-noisy-sensor-data-deadband-filter-flowfuse.md @@ -1,4 +1,5 @@ --- +metaTitle: "Stop Noisy Sensor Data From Flooding Systems" title: "How to Stop Noisy Sensor Data from Flooding Your Industrial System" subtitle: "A practical guide to suppressing sensor noise in industrial systems using FlowFuse" description: "Learn how to implement a deadband filter in FlowFuse to suppress noisy sensor data from PLCs and other connected field devices." diff --git a/src/blog/2026/05/git-snapshot-for-iiot-flows.md b/src/blog/2026/05/git-snapshot-for-iiot-flows.md index 9cceeeacec..ef4d707b14 100644 --- a/src/blog/2026/05/git-snapshot-for-iiot-flows.md +++ b/src/blog/2026/05/git-snapshot-for-iiot-flows.md @@ -1,4 +1,5 @@ --- +metaTitle: "Track Logic Changes with Git-Style Diffs" title: "See Every Logic Change in Your IIoT MOC Review with Git-Style Diffs" subtitle: "How FlowFuse snapshot comparison gives IIoT teams a verifiable, auditable review of every logic change before it reaches the machine" description: "FlowFuse's snapshot comparison shows reviewers exactly what shifted between deployments, node by node, and line by line." diff --git a/src/blog/2026/05/manufacturing-software-built-in-stages.md b/src/blog/2026/05/manufacturing-software-built-in-stages.md index 5fda978545..84fec6cbdd 100644 --- a/src/blog/2026/05/manufacturing-software-built-in-stages.md +++ b/src/blog/2026/05/manufacturing-software-built-in-stages.md @@ -1,4 +1,5 @@ --- +metaTitle: "All-or-Nothing Software Is Killing Your Agility" title: "All-or-Nothing Manufacturing Software Is Killing Your Agility" subtitle: "Deploy the capabilities you need today. Build the rest tomorrow." description: "Stop waiting years for manufacturing software projects to deliver value. See how FlowFuse enables composable applications." diff --git a/src/blog/2026/05/nis2-iec-62443-manufacturers.md b/src/blog/2026/05/nis2-iec-62443-manufacturers.md index c384f39452..1594a719c3 100644 --- a/src/blog/2026/05/nis2-iec-62443-manufacturers.md +++ b/src/blog/2026/05/nis2-iec-62443-manufacturers.md @@ -1,4 +1,5 @@ --- +metaTitle: "NIS2 Compliance: Why IEC 62443 Matters" title: "NIS2 Compliance for Manufacturers: Why IEC 62443 Is the Missing Standard" subtitle: "A practical starting point for mid-market manufacturers stuck on Article 21" description: "NIS2 tells you what to do, not how. IEC 62443 is the technical standard regulators, accredited bodies, and auditors keep pointing to. Here is where to start." diff --git a/src/blog/2026/05/opc-ua-security-attack-vectors.md b/src/blog/2026/05/opc-ua-security-attack-vectors.md index 2e64fec121..87b4f61e0f 100644 --- a/src/blog/2026/05/opc-ua-security-attack-vectors.md +++ b/src/blog/2026/05/opc-ua-security-attack-vectors.md @@ -1,4 +1,5 @@ --- +metaTitle: "OPC UA Security: How Attackers Exploit It" title: "OPC UA Security: How Threat Actors Exploit Industrial Protocol Vulnerabilities" subtitle: "The attacks that work in the field aren't broken cryptography, they're security that was never switched on" description: "Most OPC UA breaches don't crack encryption. Learn how attackers actually exploit disabled trust lists and stale ciphers." diff --git a/src/blog/2026/06/event-driven-downtime-escalation-workflow.md b/src/blog/2026/06/event-driven-downtime-escalation-workflow.md index 7ef37a9f56..f5a4ac0a0b 100644 --- a/src/blog/2026/06/event-driven-downtime-escalation-workflow.md +++ b/src/blog/2026/06/event-driven-downtime-escalation-workflow.md @@ -1,4 +1,5 @@ --- +metaTitle: "Why Downtime Spreadsheets Fail" title: "Why Downtime Spreadsheets Fail and How to Automate Detection and Escalation" subtitle: "Detect machine stops instantly, escalate automatically, and capture accurate downtime data." description: "Build an event-driven workflow in FlowFuse that detects machine stops instantly and auto-escalates downtime, no spreadsheet." diff --git a/src/blog/2026/06/flowfuse-release-2-31.md b/src/blog/2026/06/flowfuse-release-2-31.md index 0fa5fd82b1..9bf23541c3 100644 --- a/src/blog/2026/06/flowfuse-release-2-31.md +++ b/src/blog/2026/06/flowfuse-release-2-31.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse 2.31: Agentic Development in Open Beta" title: "FlowFuse 2.31: Agentic Development Now in Open Beta, FlowFuse Expert Builds Your Industrial App on Edge Devices" subtitle: "FlowFuse Expert can now build your industrial application on both Hosted and Remote Instances, on FlowFuse Cloud and now Self-Hosted Enterprise. Plus per-team and platform-level AI controls and real-time platform updates." description: "FlowFuse 2.31 puts FlowFuse Expert in open beta, building your industrial app for you on Cloud, Self-Hosted, and edge devices." diff --git a/src/blog/2026/06/opc-ua-security-best-practices.md b/src/blog/2026/06/opc-ua-security-best-practices.md index ca713fb40b..2cb68a8e89 100644 --- a/src/blog/2026/06/opc-ua-security-best-practices.md +++ b/src/blog/2026/06/opc-ua-security-best-practices.md @@ -1,4 +1,5 @@ --- +metaTitle: "OPC UA Security: A Defensible Architecture" title: "OPC UA Security: How to Establish a Defensible OPC UA Security Architecture" subtitle: "Part 1 showed how attackers walk in. This is the blueprint that locks every door behind them." description: "Turn every OPC UA attack vector into a configuration decision you control: Reverse Connect, trust lists, and SignAndEncrypt." diff --git a/src/blog/2026/06/plc-communication-latency-causes-and-fixes.md b/src/blog/2026/06/plc-communication-latency-causes-and-fixes.md index 053b8f420a..ae8e012f65 100644 --- a/src/blog/2026/06/plc-communication-latency-causes-and-fixes.md +++ b/src/blog/2026/06/plc-communication-latency-causes-and-fixes.md @@ -1,4 +1,5 @@ --- +metaTitle: "Fixing PLC Communication Latency" title: "Fixing PLC Communication Latency: Where the Milliseconds Really Go" subtitle: "Find the few settings draining your milliseconds and the timing follows." description: "Troubleshoot PLC communication latency by identifying common causes such as poll rates, timeout settings, connection limits, and protocol selection." diff --git a/src/blog/2026/06/scaling-manufacturing-data-integration.md b/src/blog/2026/06/scaling-manufacturing-data-integration.md index 5b742953d4..41133e591a 100644 --- a/src/blog/2026/06/scaling-manufacturing-data-integration.md +++ b/src/blog/2026/06/scaling-manufacturing-data-integration.md @@ -1,4 +1,5 @@ --- +metaTitle: "Arch Systems Connects 100+ Factory Databases" title: "How Arch Systems Connected 100+ Factory Databases with FlowFuse" subtitle: "Arch cut new-customer rollout time to a fraction of what it was, without adding operational complexity" description: "Arch Systems connects 100+ factory databases to a single analytics platform using FlowFuse, standardized subflows and pipelines." diff --git a/src/blog/2026/07/digital-work-instruction.md b/src/blog/2026/07/digital-work-instruction.md index f2532340db..d6e6b5fb2a 100644 --- a/src/blog/2026/07/digital-work-instruction.md +++ b/src/blog/2026/07/digital-work-instruction.md @@ -1,4 +1,5 @@ --- +metaTitle: "Digital Work Instructions Dashboard" title: "Building Digital Work Instructions Dashboard for the Shop Floor" subtitle: "Give every operator their own work instructions, progress, and production history." description: "Learn how to build digital work instructions with FlowFuse: personalized operator apps with guided steps and traceability." diff --git a/src/blog/2026/07/flowfuse-release-2-32.md b/src/blog/2026/07/flowfuse-release-2-32.md index 1cd0379211..08afdec2f6 100644 --- a/src/blog/2026/07/flowfuse-release-2-32.md +++ b/src/blog/2026/07/flowfuse-release-2-32.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse 2.32: Certified Redis & Git Pipelines" title: "FlowFuse 2.32: Certified Redis, Git Pipelines for Any Server, Insights on Remote Instances, and Dark Mode" subtitle: "Connect DevOps pipelines to any Git server, ask your live edge data questions in plain language, and give your eyes a break on long sessions." description: "FlowFuse 2.32 certifies the Redis node, extends Git pipelines to any HTTPS server, and adds Insights mode and dark theme." diff --git a/src/blog/2026/07/ishikawa-fishbone-diagram.md b/src/blog/2026/07/ishikawa-fishbone-diagram.md index efb65232c6..9eb86135fb 100644 --- a/src/blog/2026/07/ishikawa-fishbone-diagram.md +++ b/src/blog/2026/07/ishikawa-fishbone-diagram.md @@ -1,4 +1,5 @@ --- +metaTitle: "Ishikawa Fishbone Diagram: The 6Ms & Examples" title: "Ishikawa Fishbone Diagram: 6M, Manufacturing Example & Template" subtitle: "How a 60-year-old drawing still finds the root cause faster than most modern tools." description: "Learn what an Ishikawa (fishbone) diagram is, the 6Ms, and how to use it for root cause analysis in manufacturing settings." diff --git a/src/blog/2026/07/software-defined-manufacturing.md b/src/blog/2026/07/software-defined-manufacturing.md index 3e406f3860..8f3b51c55d 100644 --- a/src/blog/2026/07/software-defined-manufacturing.md +++ b/src/blog/2026/07/software-defined-manufacturing.md @@ -1,4 +1,5 @@ --- +metaTitle: "Software-Defined Manufacturing Explained" title: "Software-Defined Manufacturing: Improve Without Hardware Changes" subtitle: "Why manufacturing improvement is shifting from one-off hardware projects to a growing library of connected applications" description: "Software-defined manufacturing (SDM) is changing how factories improve operations. Learn what it means and how FlowFuse helps." diff --git a/src/changelog/2026/03/march-scheduled-maintenance.md b/src/changelog/2026/03/march-scheduled-maintenance.md index f19284876b..bde75a4e44 100644 --- a/src/changelog/2026/03/march-scheduled-maintenance.md +++ b/src/changelog/2026/03/march-scheduled-maintenance.md @@ -1,4 +1,5 @@ --- +metaTitle: "Scheduled Server Maintenance March 28th, 2026" title: "Updated: Upcoming Scheduled Server Maintenance on March 28th, 2026" description: Keeping the FlowFuse Cloud up to date with critical server maintenance. date: 2026-03-12 12:00:00.0 diff --git a/src/changelog/2026/06/july-scheduled-maintenance.md b/src/changelog/2026/06/july-scheduled-maintenance.md index 0b9dbada20..bf10b5f5bc 100644 --- a/src/changelog/2026/06/july-scheduled-maintenance.md +++ b/src/changelog/2026/06/july-scheduled-maintenance.md @@ -1,4 +1,5 @@ --- +metaTitle: "Scheduled Server Maintenance July 11th, 2026" title: "Updated: Upcoming Scheduled Server Maintenance on July 11th, 2026" description: Keeping the FlowFuse Cloud up to date with critical server maintenance. date: 2026-06-15 12:00:00.0 diff --git a/src/customer-stories/energinet-streamlining-critical-infrastructure-data-management.md b/src/customer-stories/energinet-streamlining-critical-infrastructure-data-management.md index e11f659a6b..f0b2e72c01 100644 --- a/src/customer-stories/energinet-streamlining-critical-infrastructure-data-management.md +++ b/src/customer-stories/energinet-streamlining-critical-infrastructure-data-management.md @@ -1,4 +1,5 @@ --- +metaTitle: "Critical Infrastructure Data for Denmark" title: Streamlining Critical Infrastructure Data Management for Denmark's Energy Transition description: Energinet, Denmark's national TSO, uses FlowFuse to govern real-time data pipelines across 7,000 km of grid infrastructure, connecting SCADA systems and IoT sensors to InfluxDB, MySQL, and Grafana. image: /images/stories/energinet.jpg diff --git a/src/customer-stories/leveraging-node-red-and-flowfuse-to-revolutionize-irrigation.md b/src/customer-stories/leveraging-node-red-and-flowfuse-to-revolutionize-irrigation.md index 51973ef220..4550c26b2d 100644 --- a/src/customer-stories/leveraging-node-red-and-flowfuse-to-revolutionize-irrigation.md +++ b/src/customer-stories/leveraging-node-red-and-flowfuse-to-revolutionize-irrigation.md @@ -1,4 +1,5 @@ --- +metaTitle: "Revolutionizing Irrigation with FlowFuse" title: Leveraging Node-RED and FlowFuse to Revolutionize Irrigation description: Discover how FlowFuse empowers Paloma Irrigation and Drainage District to streamline water management operations, enhancing efficiency and sustainability in agriculture. image: /images/stories/pidd-view.png diff --git a/src/customer-stories/manufacturing-digital-transformation.md b/src/customer-stories/manufacturing-digital-transformation.md index 5c183ce23f..62046cca3d 100644 --- a/src/customer-stories/manufacturing-digital-transformation.md +++ b/src/customer-stories/manufacturing-digital-transformation.md @@ -1,4 +1,5 @@ --- +metaTitle: "Node-RED Enables Digital Transformation" title: Node-RED Enables Digital Transformation of a Large US Manufacturing Company description: Read how a US manufacturing giant uses Node-RED and FlowFuse for digital transformation, deploying thousands of instances to boost operational efficiency and innovation. image: /images/stories/large-us-manufacturing.jpg diff --git a/src/customer-stories/reducing-costs-and-boosting-sales-performance-through-automated-digital-twin-demonstrations.md b/src/customer-stories/reducing-costs-and-boosting-sales-performance-through-automated-digital-twin-demonstrations.md index 119947f269..061199f2a2 100644 --- a/src/customer-stories/reducing-costs-and-boosting-sales-performance-through-automated-digital-twin-demonstrations.md +++ b/src/customer-stories/reducing-costs-and-boosting-sales-performance-through-automated-digital-twin-demonstrations.md @@ -1,4 +1,5 @@ --- +metaTitle: "Boosting Sales with Digital Twin Demonstrations" title: Reducing Costs and Boosting Sales Performance Through Automated Digital Twin Demonstrations description: Neoception uses FlowFuse to automate demos and enable self-service customer trials, reducing costs, accelerating sales cycles, and improving conversion rates. image: /images/stories/neoception.png diff --git a/src/customer-stories/scaling-industrial-iot-operations-while-maintaining-competitive-edge.md b/src/customer-stories/scaling-industrial-iot-operations-while-maintaining-competitive-edge.md index abc16ee465..0edf3f5c7a 100644 --- a/src/customer-stories/scaling-industrial-iot-operations-while-maintaining-competitive-edge.md +++ b/src/customer-stories/scaling-industrial-iot-operations-while-maintaining-competitive-edge.md @@ -1,4 +1,5 @@ --- +metaTitle: "Scaling Industrial IoT Operations" title: Scaling Industrial IoT Operations While Maintaining Competitive Edge description: Discover how Walter built a future-proof industrial application platform with FlowFuse, connecting machines, unifying data, and scaling operations without increasing IT overhead. image: /images/stories/walter.png diff --git a/src/customer-stories/un-wmo-nr-data-sharing.md b/src/customer-stories/un-wmo-nr-data-sharing.md index 708f30a10c..493fd2c681 100644 --- a/src/customer-stories/un-wmo-nr-data-sharing.md +++ b/src/customer-stories/un-wmo-nr-data-sharing.md @@ -1,4 +1,5 @@ --- +metaTitle: "WMO Uses Node-RED to Share Earth-System Data" title: World Meteorological Organization (WMO) Uses Node-RED to Modernize Sharing of Earth-System Data image: /images/stories/un-wmo.jpg date: 2023-09-07 diff --git a/src/index.njk b/src/index.njk index b7f03ee6c6..5d23421153 100644 --- a/src/index.njk +++ b/src/index.njk @@ -1,4 +1,5 @@ --- +metaTitle: "Build Industrial Applications at Scale" layout: default sitemapPriority: 1.0 sections: diff --git a/src/industries/aviation-aerospace.md b/src/industries/aviation-aerospace.md index 914562cafc..b0d391e2da 100644 --- a/src/industries/aviation-aerospace.md +++ b/src/industries/aviation-aerospace.md @@ -1,4 +1,5 @@ --- +metaTitle: "Aviation & Aerospace Manufacturing Platform" layout: layouts/industry.njk meta: title: "Aviation & Aerospace Manufacturing Operations Platform | FlowFuse" diff --git a/src/industries/semiconductors.md b/src/industries/semiconductors.md index b7ea9b6709..4e1649dbc9 100644 --- a/src/industries/semiconductors.md +++ b/src/industries/semiconductors.md @@ -1,4 +1,5 @@ --- +metaTitle: "Semiconductors & Electronics Manufacturing" layout: layouts/industry.njk meta: title: "Semiconductors & Electronics Manufacturing Platform | FlowFuse" diff --git a/src/landing/plc.njk b/src/landing/plc.njk index b45326c17f..4477a67f51 100644 --- a/src/landing/plc.njk +++ b/src/landing/plc.njk @@ -1,4 +1,5 @@ --- +metaTitle: "PLC Integration Platform: Connect to MQTT & SCADA" layout: page nohero: true meta: diff --git a/src/node-red/getting-started/library/index.md b/src/node-red/getting-started/library/index.md index f1c6f8e5a2..b6621c7e10 100644 --- a/src/node-red/getting-started/library/index.md +++ b/src/node-red/getting-started/library/index.md @@ -1,4 +1,5 @@ --- +metaTitle: "Node-RED Library: Curated List of Nodes" eleventyNavigation: key: Node-RED Library parent: Getting Started diff --git a/src/node-red/getting-started/string.md b/src/node-red/getting-started/string.md index da382c683c..399fb01cf3 100644 --- a/src/node-red/getting-started/string.md +++ b/src/node-red/getting-started/string.md @@ -1,4 +1,5 @@ --- +metaTitle: "Strings in Node-RED: Convert, Split & Trim" eleventyNavigation: key: String order: 6 diff --git a/src/node-red/integration-technologies/index.md b/src/node-red/integration-technologies/index.md index 5bb71dce3f..a42dba234b 100644 --- a/src/node-red/integration-technologies/index.md +++ b/src/node-red/integration-technologies/index.md @@ -1,4 +1,5 @@ --- +metaTitle: "Building Applications with Node-RED" eleventyNavigation: key: "Integration Technologies" order: 10 diff --git a/src/node-red/peripheral/barcodescanner.md b/src/node-red/peripheral/barcodescanner.md index b8f84f0db6..a72acb1b9e 100644 --- a/src/node-red/peripheral/barcodescanner.md +++ b/src/node-red/peripheral/barcodescanner.md @@ -1,4 +1,5 @@ --- +metaTitle: "How to Connect a Barcode Scanner to Node-RED" eleventyNavigation: key: "Barcode Scanner" parent: "Peripheral Devices" diff --git a/src/node-red/protocol/index.md b/src/node-red/protocol/index.md index 18012bb3c0..592ca23281 100644 --- a/src/node-red/protocol/index.md +++ b/src/node-red/protocol/index.md @@ -1,4 +1,5 @@ --- +metaTitle: "Using Different Protocols with Node-RED" eleventyNavigation: key: "Communication Protocols" order: 9 diff --git a/src/webinars/2023/building-scalable-ha-node-red.md b/src/webinars/2023/building-scalable-ha-node-red.md index 5f1382b8c7..f8f9efb986 100644 --- a/src/webinars/2023/building-scalable-ha-node-red.md +++ b/src/webinars/2023/building-scalable-ha-node-red.md @@ -1,4 +1,5 @@ --- +metaTitle: "Node-RED Apps for Scalability & High Availability" title: "Building Node-RED Applications for Scalability and High Availability" subtitle: Join Marian Demme, FlowFuse Product Manger, to learn how to build Node-RED applications that can scale and be highly available. description: Join Marian Demme in a webinar on building scalable and highly available Node-RED applications with FlowFuse. Gain insights and best practices for robust Node-RED deployments. diff --git a/src/webinars/2023/flowforge-device-management.md b/src/webinars/2023/flowforge-device-management.md index ddb8b2c8ab..e0a9284f6d 100644 --- a/src/webinars/2023/flowforge-device-management.md +++ b/src/webinars/2023/flowforge-device-management.md @@ -1,4 +1,5 @@ --- +metaTitle: "Deploy Node-RED to Hundreds of Edge Devices" title: "How to deploy Node-RED to hundreds of PLCs and IoT edge devices" subtitle: Discover how to deploy and managed hundreds of devices running Node-RED on PLCs and IoT edge computers. description: Join Rob Marcer to learn efficient deployment and management of Node-RED on hundreds of PLCs and IoT edge devices. Discover FlowFuse’s automation and troubleshooting features. diff --git a/src/webinars/2023/industrial-data-node-red.md b/src/webinars/2023/industrial-data-node-red.md index 7a65043ba9..56aed95ddb 100644 --- a/src/webinars/2023/industrial-data-node-red.md +++ b/src/webinars/2023/industrial-data-node-red.md @@ -1,4 +1,5 @@ --- +metaTitle: "Visualize Industrial Production Metrics" title: "Connect, Integrate & Visualize Industrial Production Metrics with Node-RED" subtitle: Join FlowFuse's Steve McLaughlin as he showcases how easy it is to use Node-RED to visualize popular production metrics using Node-RED. description: Learn to connect PLCs, integrate MQTT data, create production dashboards, sanitize data, and generate reports using Node-RED with Steve McLaughlin from FlowFuse. diff --git a/src/webinars/2023/node-red-10-years.md b/src/webinars/2023/node-red-10-years.md index ccccf0b1cb..a49ac5b4b5 100644 --- a/src/webinars/2023/node-red-10-years.md +++ b/src/webinars/2023/node-red-10-years.md @@ -1,4 +1,5 @@ --- +metaTitle: "Celebrate 10 Years of Node-RED" title: "Celebrate 10 Years of Node-RED and What’s New in 3.1 and Beyond" subtitle: Join FlowFuse's CTO Nick O'Leary and co-creator of Node-RED to learn about what's new in the new release of Node-RED and what is next for the community. description: Join Nick O'Leary, co-creator of Node-RED, to celebrate 10 years of Node-RED and explore what's new in version 3.1 and beyond. Get a sneak peek of Dashboard 2.0 and the future of Node-RED. diff --git a/src/webinars/2023/sync-music-to-fireworks.md b/src/webinars/2023/sync-music-to-fireworks.md index bdde6521fe..5fb6e61fa1 100644 --- a/src/webinars/2023/sync-music-to-fireworks.md +++ b/src/webinars/2023/sync-music-to-fireworks.md @@ -1,4 +1,5 @@ --- +metaTitle: "Sync Music with Fireworks or Light Shows" title: "New Year Celebration - Sync Music with Fireworks or Light Shows" subtitle: DIY Guide to Synchronizing Music with Light Shows or Digital Fireworks for New Year's Eve description: Celebrate New Year's Eve with our DIY guide on synchronizing music with light shows or digital fireworks. Learn to use MQTT, Dashboard 2.0, and open-source tools. diff --git a/src/webinars/2024/balena.md b/src/webinars/2024/balena.md index fd7b4d0c03..3704fd64b4 100644 --- a/src/webinars/2024/balena.md +++ b/src/webinars/2024/balena.md @@ -1,4 +1,5 @@ --- +metaTitle: "Enterprise Edge Fleet Management with balena" title: "Enterprise-grade Edge Device Fleet Management with balena and FlowFuse" subtitle: Join FlowFuse's Grey Dziuba and balena's Marc Pous to learn about Fleet Management. description: Join Grey Dziuba and Marc Pous to learn about enterprise-grade edge device fleet management with balena and FlowFuse. diff --git a/src/webinars/2024/building-a-foundation-for-enterprise-agility-and-process-optimization.md b/src/webinars/2024/building-a-foundation-for-enterprise-agility-and-process-optimization.md index bd13090926..81f33ec260 100644 --- a/src/webinars/2024/building-a-foundation-for-enterprise-agility-and-process-optimization.md +++ b/src/webinars/2024/building-a-foundation-for-enterprise-agility-and-process-optimization.md @@ -1,4 +1,5 @@ --- +metaTitle: "Building a Foundation for Enterprise Agility" title: Building a Foundation for Enterprise Agility and Process Optimization subtitle: Unlock innovation and efficiency with low-code platforms. description: Join our webinar on June 26, 2024, as Grey Dziuba explores how low-code platforms empower enterprises to overcome digital challenges by combining domain expertise with user-friendly development tools. diff --git a/src/webinars/2024/flowfuse-mqtt-broker-for-industrial-transformation.md b/src/webinars/2024/flowfuse-mqtt-broker-for-industrial-transformation.md index dbd1405206..3ad7d91fcd 100644 --- a/src/webinars/2024/flowfuse-mqtt-broker-for-industrial-transformation.md +++ b/src/webinars/2024/flowfuse-mqtt-broker-for-industrial-transformation.md @@ -1,4 +1,5 @@ --- +metaTitle: "Unlocking Real-Time Data with FlowFuse MQTT" title: "Unlocking the Power of Real-Time Data: FlowFuse MQTT Broker for Industrial Transformation" subtitle: This webinar introduces the new FlowFuse MQTT Broker service which helps simplify access to real-time data for optimizing your industrial processes. image: /images/webinars/flowfuse-mqtt-broker-for-industrial-transformation.jpg diff --git a/src/webinars/2024/node-red-dashboard-multi-user.md b/src/webinars/2024/node-red-dashboard-multi-user.md index 2f0cc67484..323cca8141 100644 --- a/src/webinars/2024/node-red-dashboard-multi-user.md +++ b/src/webinars/2024/node-red-dashboard-multi-user.md @@ -1,4 +1,5 @@ --- +metaTitle: "Personalised Multi User Dashboards" title: Personalised Multi User Dashboards with Node-RED Dashboard 2.0 subtitle: Join Joe Pavitt, lead developer on Node-RED Dashboard 2.0, as he discusses the new Personalised Multi User Dashboards feature, and how to get started with it. image: /images/webinars/multi-user-dashboard-with-node-red-dashboard-2-0-webinar-2024-february.jpg diff --git a/src/webinars/2025/be-an-industry-4-0-hero-from-shop-floor-data-to-real-time-dashboards.md b/src/webinars/2025/be-an-industry-4-0-hero-from-shop-floor-data-to-real-time-dashboards.md index 042a9f557d..69573b6750 100644 --- a/src/webinars/2025/be-an-industry-4-0-hero-from-shop-floor-data-to-real-time-dashboards.md +++ b/src/webinars/2025/be-an-industry-4-0-hero-from-shop-floor-data-to-real-time-dashboards.md @@ -1,4 +1,5 @@ --- +metaTitle: "Be an Industry 4.0 Hero: Shop Floor to Dashboards" title: "Be an Industry 4.0 Hero: From Shop Floor Data to Real-Time Dashboards" subtitle: Transform your manufacturing operations from data chaos to competitive advantage with real-time insights from your shop floor. meta: diff --git a/src/webinars/2025/develop-manage-and-deploy-complex-node-red-projects-at-scale-with-flowfuse.md b/src/webinars/2025/develop-manage-and-deploy-complex-node-red-projects-at-scale-with-flowfuse.md index 32528079de..b8c687b2d2 100644 --- a/src/webinars/2025/develop-manage-and-deploy-complex-node-red-projects-at-scale-with-flowfuse.md +++ b/src/webinars/2025/develop-manage-and-deploy-complex-node-red-projects-at-scale-with-flowfuse.md @@ -1,4 +1,5 @@ --- +metaTitle: "Deploy Complex Node-RED Projects at Scale" title: "Develop, Manage, and Deploy Complex Node-RED Projects at Scale, with FlowFuse" subtitle: Watch Rob Marcer show how to easily develop complex, multi-instance Node-RED applications, test them in development, and then deploy to production environments with confidence. meta: diff --git a/src/webinars/2025/flowfuse-and-hivemq-powering-the-core-components-of-a-unified-namespace.md b/src/webinars/2025/flowfuse-and-hivemq-powering-the-core-components-of-a-unified-namespace.md index 145e269623..1b12dee4bc 100644 --- a/src/webinars/2025/flowfuse-and-hivemq-powering-the-core-components-of-a-unified-namespace.md +++ b/src/webinars/2025/flowfuse-and-hivemq-powering-the-core-components-of-a-unified-namespace.md @@ -1,4 +1,5 @@ --- +metaTitle: "FlowFuse & HiveMQ: Building a Unified Namespace" title: "FlowFuse & HiveMQ: Powering the Core Components of a Unified Namespace" meta: description: Watch this webinar to learn how to use FlowFuse (Node-RED) and HiveMQ (MQTT) platforms to build a Unified Namespace (UNS) that integrates enterprise and control domain data for improved production scheduling and machine performance monitoring. diff --git a/src/webinars/2025/from-node-red-to-flowfuse-it-ot-integration-and-automation-in-container-terminals.md b/src/webinars/2025/from-node-red-to-flowfuse-it-ot-integration-and-automation-in-container-terminals.md index 8d8432d935..625bd6d98c 100644 --- a/src/webinars/2025/from-node-red-to-flowfuse-it-ot-integration-and-automation-in-container-terminals.md +++ b/src/webinars/2025/from-node-red-to-flowfuse-it-ot-integration-and-automation-in-container-terminals.md @@ -1,4 +1,5 @@ --- +metaTitle: "Node-RED to FlowFuse: IT/OT Integration" title: "From Node-RED to FlowFuse: IT/OT Integration and Automation in Container Terminals" subtitle: Turning siloed data into real-time intelligence for heavy-duty industrial operations meta: diff --git a/src/webinars/2025/live-from-the-shop-floor-scaling-from-digital to-smart-with-flowfuse-and-revolution-pi.md b/src/webinars/2025/live-from-the-shop-floor-scaling-from-digital to-smart-with-flowfuse-and-revolution-pi.md index 8a24cc14e4..3470a51a4a 100644 --- a/src/webinars/2025/live-from-the-shop-floor-scaling-from-digital to-smart-with-flowfuse-and-revolution-pi.md +++ b/src/webinars/2025/live-from-the-shop-floor-scaling-from-digital to-smart-with-flowfuse-and-revolution-pi.md @@ -1,4 +1,5 @@ --- +metaTitle: "Scaling from Digital to Smart with Revolution Pi" title: "Live from the Shop Floor: Scaling from Digital to Smart with FlowFuse & Revolution Pi" subtitle: Transforming industrial operations with FlowFuse and Revolution Pi, live demo from a real production site meta: diff --git a/src/webinars/2025/simplifying-opc-ua/index.md b/src/webinars/2025/simplifying-opc-ua/index.md index 7bd4716414..5d4bb2a5a3 100644 --- a/src/webinars/2025/simplifying-opc-ua/index.md +++ b/src/webinars/2025/simplifying-opc-ua/index.md @@ -1,4 +1,5 @@ --- +metaTitle: "Simplifying OPC UA: Scalable Information Models" title: "Simplifying OPC UA: Implement Scalable Information Models with FlowFuse " subtitle: Tackle industrial communication challenges with OPC UA, using the P4NR (PLUS for Node-RED) package and FlowFuse’s Enterprise features to build secure, scalable solutions meta: diff --git a/src/webinars/2025/the-ptc-tpg-deal.md b/src/webinars/2025/the-ptc-tpg-deal.md index 8a50e0f03d..d920f7d5d1 100644 --- a/src/webinars/2025/the-ptc-tpg-deal.md +++ b/src/webinars/2025/the-ptc-tpg-deal.md @@ -1,4 +1,5 @@ --- +metaTitle: "The PTC/TPG Deal: What It Means for Industry" title: "The PTC/TPG Deal: What It Means for the Industry (And Your Next Move)" subtitle: meta: diff --git a/src/webinars/2026/the-agile-factory-on-the-connected-edge.md b/src/webinars/2026/the-agile-factory-on-the-connected-edge.md index 025bc35f1e..bee86babe4 100644 --- a/src/webinars/2026/the-agile-factory-on-the-connected-edge.md +++ b/src/webinars/2026/the-agile-factory-on-the-connected-edge.md @@ -1,4 +1,5 @@ --- +metaTitle: "The Agile Factory on the Connected Edge" title: "The Agile Factory on the Connected Edge: Streamlining Operational Complexity into High-Value Insights" subtitle: Unifying Uncoordinated Edge Assets into a Centralized Smart Farm Alongside Custom Endpoints, and Beyond meta: diff --git a/src/webinars/2026/the-bus-factor-in-real-life.md b/src/webinars/2026/the-bus-factor-in-real-life.md index b7ae0d2fdb..7703885435 100644 --- a/src/webinars/2026/the-bus-factor-in-real-life.md +++ b/src/webinars/2026/the-bus-factor-in-real-life.md @@ -1,4 +1,5 @@ --- +metaTitle: "How FlowFuse Deployed Stack Resilience" title: "Applying The Bus Factor - How FlowFuse Deployed Stack Resilience in Real Life" subtitle: What the Bus Factor Reveals About Industrial System Resilience - and What Happened When We Had to Find Out the Hard Way meta: diff --git a/src/webinars/2026/turning-data-into-knowledge-with-flowfuse-ai-mcp.md b/src/webinars/2026/turning-data-into-knowledge-with-flowfuse-ai-mcp.md index 0ec1727d75..dd267585bd 100644 --- a/src/webinars/2026/turning-data-into-knowledge-with-flowfuse-ai-mcp.md +++ b/src/webinars/2026/turning-data-into-knowledge-with-flowfuse-ai-mcp.md @@ -1,4 +1,5 @@ --- +metaTitle: "Turning Industrial Data into Knowledge with AI" title: "Turning Industrial Data into Knowledge with FlowFuse AI and MCP" subtitle: Building and Deploying MCP Applications with FlowFuse meta: From 5b0d771b6bec5931cb89edcf17264108bcbd481c Mon Sep 17 00:00:00 2001 From: sumitshinde-84 Date: Fri, 14 Aug 2026 17:40:19 +0530 Subject: [PATCH 2/2] Revert accidental package-lock.json churn and remove stray blog file copies package-lock.json picked up unrelated dependency-metadata churn from a local npm install; two blog posts were also accidentally duplicated under nuxt/content/blog/ instead of only living in src/blog/. Co-Authored-By: Claude Sonnet 5 --- .../blog/2026/07/ishikawa-fishbone-diagram.md | 144 ------ .../08/manufacturing-dashboard-examples.md | 175 ------- package-lock.json | 439 +++++++++++++++--- 3 files changed, 363 insertions(+), 395 deletions(-) delete mode 100644 nuxt/content/blog/2026/07/ishikawa-fishbone-diagram.md delete mode 100644 nuxt/content/blog/2026/08/manufacturing-dashboard-examples.md diff --git a/nuxt/content/blog/2026/07/ishikawa-fishbone-diagram.md b/nuxt/content/blog/2026/07/ishikawa-fishbone-diagram.md deleted file mode 100644 index 59853a1966..0000000000 --- a/nuxt/content/blog/2026/07/ishikawa-fishbone-diagram.md +++ /dev/null @@ -1,144 +0,0 @@ ---- -title: 'Ishikawa Fishbone Diagram: 6M, Manufacturing Example & Template' -authors: - - sumit-shinde -cta: - type: contact - title: Turn suspected causes into verified ones - description: Talk to our team about connecting your PLCs, sensors, and quality systems to FlowFuse, so you can verify which root cause is real with live production data and confirm your fixes actually hold. -date: '2026-07-27' -description: Learn what an Ishikawa (fishbone) diagram is, the 6Ms, and how to use it for root cause analysis in manufacturing settings. -image: /blog/2026/07/images/what-is-ishikawa-fishbone-diagram.png -lastUpdated: '2026-07-29' -metaTitle: 'Ishikawa Fishbone Diagram: The 6Ms & Examples' -subtitle: How a 60-year-old drawing still finds the root cause faster than most modern tools. -tags: - - flowfuse -tldr: An Ishikawa diagram, better known as a fishbone or cause-and-effect diagram, finds the real cause of a problem instead of chasing symptoms by sorting possible causes into categories branching off a central spine. The 6Ms are a starting point for manufacturing, but you swap them for whatever fits your problem. It works because it forces a team to externalize and argue their theories on paper before spending money on a fix, and it fails when people stop at labeling empty branches and call that analysis. The diagram surfaces suspects; verifying which one is real, with data, is what actually fixes the problem. -excerpt: - type: minimark - value: - - - p - - {} - - 'The most dangerous words in a root cause investigation are often the ones spoken with the most confidence: "We already know what caused it." That assumption sends teams straight to a fix before they''ve explored the system behind the failure. When the same issue returns a few weeks later, it becomes clear they fixed the symptom, not the cause.' ---- - -The most dangerous words in a root cause investigation are often the ones spoken with the most confidence: "We already know what caused it." That assumption sends teams straight to a fix before they've explored the system behind the failure. When the same issue returns a few weeks later, it becomes clear they fixed the symptom, not the cause. - -Kaoru Ishikawa built a drawing in the 1960s to kill that exact reflex. It looks like a fish skeleton, which is why almost nobody calls it by his name. Sixty years and a dozen fancier root-cause tools later, engineers still reach for it first. Not because it's clever. Because it forces every theory in the room onto one wall, where the weak ones have nowhere to hide. - -## What Is a Fishbone Diagram? - -Strip away the terminology and a fishbone diagram is a structured way to brainstorm causes without letting the loudest person in the room decide the answer. - -You write the problem, the effect you want to eliminate, on the right side. That's the fish's head. A horizontal line runs left into it: the spine. Off that spine you draw diagonal branches, the ribs, and each rib is a category of causes. Under each category you hang the specific things that might be going wrong. When you're done, you're looking at every plausible cause for one problem, sorted into groups, on a single page. - -The naming gets confusing, so here it is plainly. Ishikawa diagram, fishbone diagram, and cause-and-effect diagram all refer to the same tool. The names are used interchangeably in practice, though purists will point out that not every cause-and-effect sketch follows the fishbone shape. It's one of the [seven basic quality tools](https://en.wikipedia.org/wiki/Seven_basic_tools_of_quality), the club of simple techniques quality engineers lean on before pulling out anything statistical. - -What it does *not* do is prove anything. A fishbone diagram generates hypotheses. It tells you where to look, not what the answer is. That distinction is the whole difference between a diagram that helps and one that wastes an afternoon, and we'll come back to it. - -## Who Invented the Ishikawa Diagram? - -The diagram is named after [Kaoru Ishikawa](https://en.wikipedia.org/wiki/Kaoru_Ishikawa) (1915–1989), a Japanese engineer, University of Tokyo professor, and one of the founding fathers of modern quality management. He popularized it in the 1960s while developing quality processes at the Kawasaki shipyards, and formalized it in his 1968 book *Guide to Quality Control*. His aim was democratic: he wanted quality improvement in the hands of ordinary workers, not locked inside a specialist team, so he built a diagram simple enough that anyone on the line could use it, which is a big part of why the [American Society for Quality](https://asq.org/quality-resources/fishbone) still lists it among the seven basic tools sixty years on. - -Its reach since has been broad. One famous case is Mazda, whose engineers reportedly used an Ishikawa diagram to map every factor behind the "Jinba Ittai" (horse and rider as one) feel of the original MX-5 Miata. - -## What Are the 6Ms in a Fishbone Diagram? - -Ishikawa suggested generic labels for the rib categories so teams would have somewhere to start instead of staring at a blank spine. In manufacturing, those defaults became the 6Ms: - -- **Manpower** (people): training gaps, unclear responsibilities, communication breakdowns, fatigue. -- **Method** (process): missing standards, steps performed inconsistently, procedures that no longer match reality. -- **Machine** (equipment): worn parts, skipped maintenance, wrong tooling, calibration drift. -- **Material** (inputs): out-of-spec raw material, supplier variation, wrong batch, storage damage. -- **Measurement** (data): miscalibrated instruments, wrong gauge, inconsistent inspection, bad data collection. -- **Mother Nature** (environment): temperature, humidity, vibration, dust, anything the surroundings do to the process. - -Here is the part most guides bury: Ishikawa himself told people to rename these categories to fit their problem. The 6Ms are training wheels, not scripture. They map cleanly onto a factory floor, but even there you'll often want to tweak them, and outside a production line they can fall apart entirely. - -Some teams add a seventh M, Money, when cost drivers matter. Process industries sometimes swap in categories like Environment, Equipment, and Procedures. For a service or business problem, the 7Ps (Product, Price, Place, Promotion, People, Process, Physical Evidence) fit better than machinery and materials. The right categories are the ones that make your team say "oh, we haven't thought about that bucket yet." If a category sits empty because it doesn't apply, delete it. An empty rib is not a sign you missed something; it's a sign the label was wrong for your problem. - -## How to Make a Fishbone Diagram - -The mechanics take five minutes. Doing it well takes discipline. Here's the sequence. - -**Write a problem statement, not a topic.** "Machine downtime" is a topic. "Line 3 filler stops an average of 4 times per shift, each stop lasting 6 to 12 minutes" is a problem statement. The second one gives the team something specific to explain. Vague heads produce vague ribs. - -**Draw the spine and pick your categories.** Four to six is the sweet spot. Fewer and you're not really sorting; more and the diagram turns into a wall of branches nobody can read. Start from the 6Ms if you're in manufacturing, adapt hard if you're not. - -**Brainstorm causes under each category.** This is where the tool earns its keep. Go category by category and ask what, under this heading, could produce the effect. Write everything down, even the theories you doubt. The point of sorting into buckets is that it triggers ideas you'd never reach with an open-ended "what's wrong?" - -**Push each cause deeper with "why."** A first-level cause is rarely the root. Pair the fishbone with the [5 Whys](/blog/2025/12/five-whys-root-cause-analysis-definition-examples/): for each rib entry, ask why that happens, and hang the answer as a sub-branch. "Bearing failed" becomes "bearing failed → lubrication skipped → PM schedule not followed → no one owns the schedule." Now you're looking at a root, not a symptom. - -**Then stop drawing and start verifying.** This is the step that separates analysis from theater. A finished fishbone is a list of *suspects*, and every suspect is a hypothesis you can test against data. Circle the two or three most likely causes, then go check them: pull the maintenance log, measure the material, watch the operator. The diagram points the flashlight. It doesn't tell you what's in the dark. - -## Fishbone Diagram Example - -Abstract diagrams teach nothing, so here's the kind of case that plays out on a real line. A packaging line is rejecting cartons because the printed date code is smearing. That's the head of the fish. The team runs 6M categories: - -- **Machine:** print head height drifted, print head overdue for cleaning, conveyor speed increased last month. -- **Material:** new ink supplier introduced two weeks ago, carton stock switched to a glossier finish. -- **Method:** no standard for print-head-to-carton distance, cleaning interval never written down. -- **Manpower:** night shift not trained on the new ink's dry time. -- **Measurement:** no check on ink cure before cartons stack. -- **Mother Nature:** plant humidity up since the HVAC repair. - -Six categories, roughly a dozen suspects. Now the 5 Whys on the strongest lead: the glossier carton stock. Why does gloss smear? Ink doesn't absorb. Why not? The new stock is non-porous. Why did we switch? Purchasing found a cheaper supplier. Why didn't anyone flag the print impact? No one owns print-compatibility sign-off on material changes. - -Notice what happened. The obvious fix, "clean the print head," would have bought a day of relief and then the smearing returns. The fishbone surfaced two causes that interacted, a material change and a missing sign-off process, that a single-thread investigation would have walked right past. That's the entire value of the tool: it makes interacting causes visible instead of letting you commit to the first plausible one. - -## Fishbone vs. 5 Whys vs. Pareto: Which One, When - -The fishbone rarely works alone, and it's easy to reach for the wrong tool. Here's how the three most common root-cause techniques divide the labor. - -| Tool | What it does | Use it when | Where it falls short | -| ------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | -| **Fishbone diagram** | Goes wide. Surfaces every plausible cause across several categories so nothing obvious gets missed. | You don't yet know where the problem lives and want the team's collective knowledge on one page. | Treats every branch as equally worth investigating. Says nothing about which cause matters most. | -| **[5 Whys](/blog/2025/12/five-whys-root-cause-analysis-definition-examples/)** | Goes deep. Drills a single cause chain, asking "why" until you hit something fixable rather than another symptom. | After the fishbone, on the two or three branches you think are strongest. | It's a single thread. Drill the wrong cause and you'll reach a confident, well-reasoned, wrong answer. | -| **[Pareto chart](/blog/2025/08/pareto-chart-manufacturing-guide/)** | Ranks. Sorts candidate causes by frequency or impact so you fix the vital few, not the trivial many. | You can count occurrences and need to decide where to act first. | Needs data you may not have early on, and only ranks what you already thought to measure. | - -The sequence is: fishbone to find suspects, 5 Whys to reach the root of the best ones, Pareto to decide which roots are worth fixing first. They're not competitors. They're a pipeline. - -## Fishbone Diagram Template - -You don't need software. Here's a text skeleton you can drop into any doc and fill in: - -```text -Method Machine Measurement - \ | / - cause ─────\ cause ──| cause ───/ - cause ──────\ cause ──| cause ──/ - \ | / - ══════════════════════════════════════════════════════════► [ PROBLEM ] - / | \ - cause ──────/ cause ──| cause ──\ - cause ─────/ cause ──| cause ───\ - / | \ - Manpower Material Mother Nature -``` - -Rules for using it: replace the six labels with categories that fit *your* problem, keep the problem statement specific, and treat every "cause" line as something you'll later verify with data. If you prefer digital, any diagramming tool works, but the paper-and-marker version on a wall is often better because it gets the whole team pointing at the same branch. - -## Common Fishbone Diagram Mistakes - -Most failed fishbone sessions fail the same handful of ways. - -**Labeling empty branches and calling it done.** Six categories with two vague words under each is a brainstorming template, not root-cause analysis. If the diagram doesn't contain specific, checkable causes, you've drawn a fish, not found a problem. - -**Confusing the diagram with the answer.** The single most common error. The fishbone lists suspects; it does not convict any of them. Teams that skip verification and just "fix" the most-discussed branch are gambling, not analyzing. - -**Using the 6Ms where they don't fit.** Forcing every problem into the manufacturing 6Ms produces empty ribs and missed causes. Pick categories that match your failure surface, and drop the ones that don't apply. - -**Vague problem statements.** A fuzzy head produces a fuzzy diagram. Spend the extra two minutes writing what actually happened, where, and how often. - -**Stopping at the first level.** "Operator error" is where lazy analysis ends and real analysis begins. Ask why five times before you believe you've hit a root. - -## Where the Fishbone Fits - -The Ishikawa diagram survives because it does one job well: it gets a group of people to externalize their theories, sort them, and argue about them on paper before spending money. It's cheap, it's visual, and it needs no training to read. Those are the same reasons the simplest tools tend to outlast the sophisticated ones. - -It has limits. It shows causes but not their relative weight or how they interact over time; for that you'd reach for a [Pareto chart](/blog/2025/08/pareto-chart-manufacturing-guide/), fault tree, or statistical analysis. And it's only as good as the verification that follows it. Draw the fish, then go prove which bone is broken. - -Used that way, as a hypothesis generator that hands off to real investigation, it remains one of the fastest ways to stop treating symptoms and start fixing causes. Sixty years in, that's still a rare thing for a tool to do. - -The catch is that verification needs data the whiteboard can't give you: how often the machine actually stalls, whether the material batch really shifted, what the sensor logged when the defect appeared. That's the step where [FlowFuse](/) fits, connecting your PLCs, sensors, and quality systems into dashboards so you can test which suspected cause is real and confirm the fix held. It won't draw the fishbone for you, but it settles which bone was broken. diff --git a/nuxt/content/blog/2026/08/manufacturing-dashboard-examples.md b/nuxt/content/blog/2026/08/manufacturing-dashboard-examples.md deleted file mode 100644 index f5ed0817bc..0000000000 --- a/nuxt/content/blog/2026/08/manufacturing-dashboard-examples.md +++ /dev/null @@ -1,175 +0,0 @@ ---- -title: 5 Manufacturing Dashboard Examples for Production, OEE & Quality -authors: - - sumit-shinde -cta: - type: demo - title: Build Your Manufacturing Dashboard - description: Connect factory data and create real-time dashboards for production, OEE, downtime, and quality with FlowFuse. -date: '2026-08-05' -description: Learn what makes an effective manufacturing dashboard and see five examples for tracking production performance, equipment efficiency, downtime, and quality. -image: /blog/2026/08/images/manufacturing-dashbaord-examples.png -subtitle: Manufacturing dashboard examples for modern shop-floor operations. -tags: - - posts - - dashboard - - flowfuse -tldr: Manufacturing dashboards give teams real-time visibility into production, OEE, downtime, quality, and calibration. Explore five dashboard examples and the key metrics that help manufacturers improve operations. -excerpt: - type: minimark - value: - - - p - - {} - - A manufacturing dashboard brings machine data, production metrics, downtime, and quality information into one real-time view, so teams can understand what's happening on the shop floor and act on it. ---- - -A manufacturing dashboard brings machine data, production metrics, downtime, and quality information into one real-time view, so teams can understand what's happening on the shop floor and act on it. - -This guide covers what manufacturing dashboards do, the metrics they should track, and five dashboard examples, for production, OEE, downtime, quality, and calibration, built with [FlowFuse](/). - -## What Is a Manufacturing Dashboard? - -A manufacturing dashboard is a visual interface for monitoring production performance in real time. It pulls data from factory equipment and business systems ([PLCs](/blog/2025/12/what-is-plc/), [SCADA](/use-cases/scada/), [MES](/blog/2025/06/what-is-mes/), [ERP](/blog/2025/06/connect-shop-floor-to-odoo-erp-flowfuse/), [databases](/blog/2025/08/getting-started-with-flowfuse-tables/), sensors, or operator input) into a single view built around production output, machine status, downtime, OEE, quality, and targets. FlowFuse's own [Dashboard platform](/platform/dashboard/) is built specifically for assembling these views without writing custom front-end code. - -The key difference between a dashboard and a report is timing. A report tells you what happened after the shift ends. A dashboard shows you what's happening now, while there's still time to change the outcome. - -That's also what separates a good dashboard from a cluttered one: it doesn't try to show everything. It shows the specific person using it what they need in order to act, which is exactly why dashboards have become so central to how manufacturers run production. - -## Why Dashboards Matter in Manufacturing - -Production problems get expensive when they stay invisible. A machine that stops, a line falling behind target, or a defect that goes unnoticed can quietly erode throughput, cost, and delivery schedules before anyone catches it. - -A shared dashboard closes that gap. Operators see production status as it happens, supervisors track performance across the line, and maintenance teams spot equipment issues sooner. The value isn't the dashboard itself; it's the time saved between a problem occurring and someone responding to it. That's the shift FlowFuse is built to support: turning raw factory data into faster decisions on the floor, whether the source is an MES system or a SCADA historian. - -Knowing dashboards matter is one thing. Knowing what belongs on them is another, and that comes down to the metrics behind the view. - -## Key Metrics Every Manufacturing Dashboard Should Track - -The right KPIs depend on the role and the goal, but most production dashboards center on [four categories: output, equipment performance, downtime, and quality](/blog/2025/06/shop-floor-kpis-for-mes/). - -- **Production output:** actual output against the planned target -- **OEE:** equipment effectiveness across availability, performance, and quality -- **Downtime:** lost production time and its biggest contributing causes -- **Cycle time:** whether machines and processes are running at expected speed -- **Quality performance:** defects, scrap, rework, and first-pass yield -- **WIP levels:** where bottlenecks are forming in the production flow - -These metrics exist to answer a small set of operational questions: Are we producing at the required rate? Are machines running effectively? Where is time being lost? Are we producing quality parts? If a dashboard can't answer those quickly, it's showing too much, or the wrong things. - -What that looks like in practice varies by where the metrics are applied. Here's how these same building blocks show up across five common manufacturing dashboards. - -::cta-image{alt="Wenco deploys new dashboard pages in days with FlowFuse - book a demo" cta="demo" src="/images/cta/wenco-book-demo.png"} -:: - -## Manufacturing Dashboard Examples - -Dashboards work best when they're designed around a specific decision, not a general audience. A production team needs visibility into output and downtime; quality and maintenance teams need a different lens entirely. The five examples below show common patterns, all built with FlowFuse using data from machines, production systems, databases, and industrial protocols, but for using it purpose it uses demo data - -### 1. Production Dashboard (Andon Live) - -A production dashboard answers one question in real time: is the line hitting its target? FlowFuse's **Andon Live Dashboard** gives operators and supervisors a shop-floor view of actual output against target, shift progress, and current line status, so a gap can be caught and addressed before it grows. - -![FlowFuse Andon Live dashboard showing a target of 100 against an actual count of 84, a delta of 16, stoppage timers, and the current shift for Production Line 33](/blog/2026/08/images/andon-live-dashboard.png)*FlowFuse Andon Live dashboard showing a target of 100 against an actual count of 84, a delta of 16, stoppage timers, and the current shift for Production Line 33* - -It typically shows actual production count, target vs. actual output, shift progress, and stoppage information, the same building blocks behind FlowFuse's [Andon Task Manager](/blog/2025/06/building-andon-task-manager-dashboard-with-ff/). Because every production environment is different, FlowFuse connects this same dashboard pattern to whatever data sources are already in place, including PLCs, MES systems, production counters, [MQTT](/blog/2024/06/how-to-use-mqtt-in-node-red/), and [OPC UA](/blog/2025/07/reading-and-writing-plc-data-using-opc-ua/). - -**Ready to deploy:** [Andon Live Dashboard](/blueprints/manufacturing/andon-live/) - -### 2. OEE Dashboard - -Where a production dashboard tells you whether output is on target, an OEE dashboard explains *why* it isn't. FlowFuse's **OEE Dashboard** combines production and downtime data into one view covering OEE, availability losses, performance losses, quality losses, and trend data over time. - -![FlowFuse OEE dashboard with gauges for OEE, performance, availability and quality above a downtime summary, production totals, and a table of underperforming machines](/blog/2026/08/images/oee-dashboard--1-f77f847f.png)*FlowFuse OEE dashboard with gauges for OEE, performance, availability and quality above a downtime summary, production totals, and a table of underperforming machines* - -That breakdown matters because a low OEE score can come from very different root causes, frequent stops, slow cycle times, or defect rates, and each one needs a different fix. Separating them lets teams target the actual source of the loss instead of [chasing a misleading number](/blog/2026/05/fixing-oee-measurement-in-manufacturing/). - -**Ready to deploy:** [OEE Dashboard](/blueprints/manufacturing/oee-dashboard/) - -### 3. Downtime Dashboard - -Availability losses are usually the biggest piece of that OEE picture, which is why they tend to warrant a dedicated view of their own. Downtime is the single biggest drain on production capacity, and the real question isn't just *when* machines stop, it's *why*. FlowFuse's **Downtime Tracking Dashboard** captures stop events as they happen and turns them into a live view of downtime duration, causes, and impact on availability, rather than [something pieced together from manual spreadsheets after the fact](/blog/2026/06/event-driven-downtime-escalation-workflow/). - -![FlowFuse downtime tracking dashboard listing open stoppages by machine with start times, how long each has been open, and a button to close the event and log a reason](/blog/2026/08/images/downtime-logger.png)*FlowFuse downtime tracking dashboard listing open stoppages by machine with start times, how long each has been open, and a button to close the event and log a reason* - -That shift, from reviewing downtime after a shift to tracking it in real time, is what lets teams move from reacting to failures toward reducing what causes them. - -**Build it:** [Build a Machine Downtime Tracking Application](/blog/2026/07/build-downtime-logger/) - -### 4. Quality Dashboard (Defect & Quality Monitoring) - -Quality losses need the same treatment. A quality dashboard shows where defects are happening and what's driving them. FlowFuse's **Defect & Quality Monitoring Dashboard** combines defect data, production information, and quality KPIs, including defect trends, defect categories, first-pass yield, cost of poor quality, and a Pareto breakdown of causes, into one view. - -![FlowFuse defect and quality monitoring dashboard with a Pareto chart of defect types, a root cause breakdown, severity and disposition splits, and SLA resolution times](/blog/2026/08/images/flowfuse-defect-monitoring-dashboard.png)*FlowFuse defect and quality monitoring dashboard with a Pareto chart of defect types, a root cause breakdown, severity and disposition splits, and SLA resolution times* - -The [Pareto view](/blog/2025/09/creating-pareto-chart/) tends to be the most useful part: it isolates the small number of issues responsible for most of the quality loss, so improvement effort goes where it actually pays off, instead of spreading thin across every defect type. Pairing it with [statistical process control](/blog/2025/07/quality-control-automation-spc-charts/) catches quality drift before it produces a defect at all. - -**Build it:** [Build a Defect Tracking and Quality Monitoring Dashboard](/blog/2026/07/defect-and-quality-monitoring/) - -### 5. Calibration Dashboard - -Defects aren't always caused by the process itself; sometimes the measurement equipment used to catch them is the problem. Where measurement accuracy affects product quality and compliance, [instrument calibration](/blog/2026/07/what-is-instrument-calibration/) tracking can't run on spreadsheets. FlowFuse's **Calibration Management Dashboard** gives teams a live view of measurement equipment status (what's ready, what's due, what's overdue) along with calibration history and compliance status, cutting the risk of equipment running outside its required window. - -![FlowFuse calibration management dashboard showing 120 instruments split into valid, due soon and overdue, a 73.3% compliance rate, and a table of overdue tools by department](/blog/2026/08/images/calibration-management-dashboard.png)*FlowFuse calibration management dashboard showing 120 instruments split into valid, due soon and overdue, a 73.3% compliance rate, and a table of overdue tools by department* - -**Build it:** [Tracking Instrument Calibration with a Digital Dashboard](/blog/2026/07/calibration-management-dashboard/) - -## Manufacturing Dashboard Design Best Practices - -Having the right dashboard type for the job is only half the equation. How it's designed determines whether anyone actually uses it. A manufacturing dashboard should make decisions easier, not add more information to review, and the best dashboards are designed around the people using them and the actions they need to take. - -Key principles include: - -- **Design for the user:** operators, supervisors, and managers need different views based on their responsibilities -- **Focus on actionable metrics:** every KPI should help identify a problem, measure progress, or support a decision -- **Keep important information visible:** production status, downtime, and quality issues should be clear without searching through multiple screens -- **Avoid unnecessary complexity:** too many charts and metrics make important information harder to find -- **Support drill-downs:** start with a clear overview, then allow users to investigate the details behind an issue - -A successful manufacturing dashboard is not the one with the most data. It is the one that helps the right person understand the situation and act quickly. - -One design decision worth calling out on its own is timing: not every dashboard should show the same moment in time. - -## Real-Time vs. Historical Manufacturing Dashboards - -Not every manufacturing decision requires the same type of dashboard: - -- **Real-time dashboards** are built for immediate action, showing what is happening on the shop floor right now, such as current production output, machine status, downtime events, and quality issues -- **Historical dashboards** are [built for analysis](/blog/2025/08/time-series-dashboard-flowfuse-postgresql/), helping teams identify trends, compare performance over time, and understand recurring problems - -Manufacturers often need both. Real-time dashboards keep production running today, while historical dashboards help improve how production runs tomorrow. - -Timing is one axis a dashboard can vary on. Who it's built for is another, and that's a separate design decision entirely. - -## Single Source of Truth vs. User-Specific Dashboards - -Manufacturing dashboards can follow two common [design patterns](https://dashboard.flowfuse.com/getting-started#design-patterns) depending on how they are used. - -A **single source of truth dashboard** gives everyone the same operational view. This works well for Andon boards, production displays, and OEE dashboards, where teams need a shared understanding of factory performance. - -![Single source of truth pattern: a device populates both a ui-chart and a database, and the chart displays the same dashboard to all clients](/blog/2026/08/images/design-pattern-single.png)*Single source of truth pattern: a device populates both a ui-chart and a database, and the chart displays the same dashboard to all clients* - -A **user-specific dashboard** provides different information based on the user's role or workflow. Operators, for example, may see production status and tasks, while maintenance teams see equipment issues and service information. This pattern relies on the dashboard knowing who's looking at it, which is what FlowFuse's [multi-user addon](https://flows.nodered.org/node/@flowfuse/node-red-dashboard-2-user-addon) is built to support. - -![User-specific pattern: opening the dashboard fires a ui-event that queries the database using the viewer's client ID, so the chart displays data for that user only](/blog/2026/08/images/design-pattern-multi-user.png)*User-specific pattern: opening the dashboard fires a ui-event that queries the database using the viewer's client ID, so the chart displays data for that user only* - -The right approach depends on the decision the dashboard needs to support. Some manufacturing applications use one shared view; others combine shared visibility with role-specific information. Either way, someone has to actually connect the underlying data and build the thing, which is where FlowFuse comes in. - -## Building Manufacturing Dashboards with FlowFuse - -The challenge in manufacturing is rarely a lack of data. Most factories already generate information from machines, PLCs, sensors, and business systems. The real challenge is connecting that data and turning it into something teams can use, whether that's a single shared view or a set of role-specific ones. - -FlowFuse helps manufacturers build operational dashboards by connecting industrial data sources, processing production information, and creating applications for the shop floor. A typical workflow includes: - -- **Connect data:** bring in data from PLCs, machines, databases, and protocols such as MQTT, OPC UA, and [Modbus](/blog/2023/05/integrating-modbus-with-node-red/) -- **Process data:** convert production events, downtime, and quality records into useful metrics -- **Build dashboards:** create views for operators, supervisors, and managers - -Once a dashboard is built, teams can manage and deploy it across multiple lines, or facilities without rebuilding it from scratch, to keep every deployment in sync. The goal is simple: turn factory data into [reusable applications that improve operational visibility](/platform/features/). - -## Conclusion - -Manufacturing dashboards give teams a shared view of what is happening on the shop floor. They help operators respond faster, supervisors understand performance, and engineers identify opportunities for improvement. - -From production tracking and OEE monitoring to downtime analysis, quality management, and calibration control, the right dashboard connects operational data with the decisions teams need to make, whether that decision needs a real-time or historical view, a shared display or a role-specific one. - -The goal is not to create more screens. It is to create better visibility into production and give teams the information they need to keep improving. With [FlowFuse](/platform/why-flowfuse/), manufacturers can connect existing factory data, build operational applications, and scale successful dashboards across machines, lines, and facilities. diff --git a/package-lock.json b/package-lock.json index 22291396ef..cea98af5c2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1347,7 +1347,6 @@ "version": "1.10.0", "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", - "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -1359,7 +1358,6 @@ "version": "1.10.0", "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", - "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -1370,7 +1368,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", - "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -1397,7 +1394,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1414,7 +1410,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1431,7 +1426,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1448,7 +1442,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1465,7 +1458,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1482,7 +1474,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1499,7 +1490,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1516,7 +1506,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1533,7 +1522,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1550,7 +1538,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1567,7 +1554,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1584,7 +1570,6 @@ "cpu": [ "loong64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1601,7 +1586,6 @@ "cpu": [ "mips64el" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1618,7 +1602,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1635,7 +1618,6 @@ "cpu": [ "riscv64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1652,7 +1634,6 @@ "cpu": [ "s390x" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1669,7 +1650,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1686,7 +1666,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1703,7 +1682,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1720,7 +1698,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1737,7 +1714,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1754,7 +1730,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1771,7 +1746,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1788,7 +1762,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1805,7 +1778,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1822,7 +1794,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2177,6 +2148,9 @@ "arm" ], "dev": true, + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -2194,6 +2168,9 @@ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -2211,6 +2188,9 @@ "ppc64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -2228,6 +2208,9 @@ "riscv64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -2245,6 +2228,9 @@ "s390x" ], "dev": true, + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -2262,6 +2248,9 @@ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -2279,6 +2268,9 @@ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -2296,6 +2288,9 @@ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -2313,6 +2308,9 @@ "arm" ], "dev": true, + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -2336,6 +2334,9 @@ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -2359,6 +2360,9 @@ "ppc64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -2382,6 +2386,9 @@ "riscv64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -2405,6 +2412,9 @@ "s390x" ], "dev": true, + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -2428,6 +2438,9 @@ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -2451,6 +2464,9 @@ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -2474,6 +2490,9 @@ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -2883,7 +2902,6 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.2.3.tgz", "integrity": "sha512-UMduMbqO5s5zF2NkNacMT/yK5Y5QiKvWr2+50bzIIxFDwVJ2h49b+oyjaCGPhJxd2/gC2x39EHv/gHVuu36x2Q==", - "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -4524,6 +4542,9 @@ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -4541,6 +4562,9 @@ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -4558,6 +4582,9 @@ "ppc64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -4575,6 +4602,9 @@ "riscv64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -4592,6 +4622,9 @@ "riscv64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -4609,6 +4642,9 @@ "s390x" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -4626,6 +4662,9 @@ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -4643,6 +4682,9 @@ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -4746,7 +4788,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4763,7 +4804,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4780,7 +4820,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4797,7 +4836,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4814,7 +4852,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4831,7 +4868,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4848,7 +4884,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4865,7 +4900,9 @@ "cpu": [ "arm64" ], - "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -4882,7 +4919,9 @@ "cpu": [ "arm64" ], - "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -4899,7 +4938,9 @@ "cpu": [ "ppc64" ], - "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -4916,7 +4957,9 @@ "cpu": [ "riscv64" ], - "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -4933,7 +4976,9 @@ "cpu": [ "riscv64" ], - "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -4950,7 +4995,9 @@ "cpu": [ "s390x" ], - "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -4967,7 +5014,9 @@ "cpu": [ "x64" ], - "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -4984,7 +5033,9 @@ "cpu": [ "x64" ], - "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -5001,7 +5052,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5018,7 +5068,6 @@ "cpu": [ "wasm32" ], - "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -5037,7 +5086,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5054,7 +5102,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5071,7 +5118,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5218,6 +5264,9 @@ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -5235,6 +5284,9 @@ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -5252,6 +5304,9 @@ "ppc64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -5269,6 +5324,9 @@ "riscv64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -5286,6 +5344,9 @@ "riscv64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -5303,6 +5364,9 @@ "s390x" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -5320,6 +5384,9 @@ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -5337,6 +5404,9 @@ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -5561,6 +5631,9 @@ "arm" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -5582,6 +5655,9 @@ "arm" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -5603,6 +5679,9 @@ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -5624,6 +5703,9 @@ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -5645,6 +5727,9 @@ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -5666,6 +5751,9 @@ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -5953,6 +6041,9 @@ "cpu": [ "arm64" ], + "libc": [ + "glibc" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -5969,6 +6060,9 @@ "cpu": [ "arm64" ], + "libc": [ + "musl" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -5985,6 +6079,9 @@ "cpu": [ "x64" ], + "libc": [ + "glibc" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -6001,6 +6098,9 @@ "cpu": [ "x64" ], + "libc": [ + "musl" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -6145,6 +6245,9 @@ "cpu": [ "arm64" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -6161,6 +6264,9 @@ "cpu": [ "arm64" ], + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -6177,6 +6283,9 @@ "cpu": [ "ppc64" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -6193,6 +6302,9 @@ "cpu": [ "s390x" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -6209,6 +6321,9 @@ "cpu": [ "x64" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -6225,6 +6340,9 @@ "cpu": [ "x64" ], + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -6478,7 +6596,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6492,7 +6609,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6506,7 +6622,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6520,7 +6635,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6534,7 +6648,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6548,7 +6661,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6562,7 +6674,9 @@ "cpu": [ "arm" ], - "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -6576,7 +6690,9 @@ "cpu": [ "arm" ], - "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -6590,7 +6706,9 @@ "cpu": [ "arm64" ], - "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -6604,7 +6722,9 @@ "cpu": [ "arm64" ], - "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -6618,7 +6738,9 @@ "cpu": [ "loong64" ], - "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -6632,7 +6754,9 @@ "cpu": [ "loong64" ], - "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -6646,7 +6770,9 @@ "cpu": [ "ppc64" ], - "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -6660,7 +6786,9 @@ "cpu": [ "ppc64" ], - "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -6674,7 +6802,9 @@ "cpu": [ "riscv64" ], - "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -6688,7 +6818,9 @@ "cpu": [ "riscv64" ], - "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -6702,7 +6834,9 @@ "cpu": [ "s390x" ], - "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -6716,7 +6850,9 @@ "cpu": [ "x64" ], - "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -6730,7 +6866,9 @@ "cpu": [ "x64" ], - "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -6744,7 +6882,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6758,7 +6895,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6772,7 +6908,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6786,7 +6921,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6800,7 +6934,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6814,7 +6947,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -7212,6 +7344,9 @@ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -7229,6 +7364,9 @@ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -7246,6 +7384,9 @@ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -7263,6 +7404,9 @@ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -7505,6 +7649,9 @@ "cpu": [ "arm64" ], + "libc": [ + "glibc" + ], "license": "(MIT OR Apache-2.0)", "optional": true, "os": [ @@ -7521,6 +7668,9 @@ "cpu": [ "arm64" ], + "libc": [ + "musl" + ], "license": "(MIT OR Apache-2.0)", "optional": true, "os": [ @@ -7537,6 +7687,9 @@ "cpu": [ "x64" ], + "libc": [ + "glibc" + ], "license": "(MIT OR Apache-2.0)", "optional": true, "os": [ @@ -7553,6 +7706,9 @@ "cpu": [ "x64" ], + "libc": [ + "musl" + ], "license": "(MIT OR Apache-2.0)", "optional": true, "os": [ @@ -8297,7 +8453,6 @@ "version": "0.10.3", "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", - "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -15094,6 +15249,9 @@ "arm" ], "dev": true, + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -15111,6 +15269,9 @@ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -15128,6 +15289,9 @@ "ppc64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -15145,6 +15309,9 @@ "riscv64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -15162,6 +15329,9 @@ "s390x" ], "dev": true, + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -15179,6 +15349,9 @@ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -15196,6 +15369,9 @@ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -15213,6 +15389,9 @@ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -15230,6 +15409,9 @@ "arm" ], "dev": true, + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -15253,6 +15435,9 @@ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -15276,6 +15461,9 @@ "ppc64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -15299,6 +15487,9 @@ "riscv64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -15322,6 +15513,9 @@ "s390x" ], "dev": true, + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -15345,6 +15539,9 @@ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -15368,6 +15565,9 @@ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -15391,6 +15591,9 @@ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -16467,6 +16670,9 @@ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -16488,6 +16694,9 @@ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -16509,6 +16718,9 @@ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -16530,6 +16742,9 @@ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -19572,6 +19787,9 @@ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -19593,6 +19811,9 @@ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -19614,6 +19835,9 @@ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -19635,6 +19859,9 @@ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -19879,6 +20106,9 @@ "arm" ], "dev": true, + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -19896,6 +20126,9 @@ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -19913,6 +20146,9 @@ "ppc64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -19930,6 +20166,9 @@ "riscv64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -19947,6 +20186,9 @@ "s390x" ], "dev": true, + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -19964,6 +20206,9 @@ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -19981,6 +20226,9 @@ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -19998,6 +20246,9 @@ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -20015,6 +20266,9 @@ "arm" ], "dev": true, + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -20038,6 +20292,9 @@ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -20061,6 +20318,9 @@ "ppc64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -20084,6 +20344,9 @@ "riscv64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -20107,6 +20370,9 @@ "s390x" ], "dev": true, + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -20130,6 +20396,9 @@ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -20153,6 +20422,9 @@ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -20176,6 +20448,9 @@ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "Apache-2.0", "optional": true, "os": [ @@ -26893,6 +27168,9 @@ "cpu": [ "arm64" ], + "libc": [ + "glibc" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -26913,6 +27191,9 @@ "cpu": [ "arm64" ], + "libc": [ + "musl" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -26933,6 +27214,9 @@ "cpu": [ "x64" ], + "libc": [ + "glibc" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -26953,6 +27237,9 @@ "cpu": [ "x64" ], + "libc": [ + "musl" + ], "license": "MPL-2.0", "optional": true, "os": [