[{"data":1,"prerenderedAt":337},["ShallowReactive",2],{"application-guide-nav":3,"agmd-flowfuse-overview":118},[4,12,16,22,25,31,36,42,47,53,58,64,70,75,81,87,93,98,103,108,112],{"guide":5,"slug":6,"title":7,"navOrder":8,"parent":9,"blurb":10,"path":11},"flowfuse","overview","Overview",1,null,"The map of the FlowFuse guide — apps, architectures, and a worked example.","\u002Fapplication-guide\u002Fflowfuse\u002Foverview\u002F",{"guide":13,"slug":6,"title":7,"navOrder":8,"parent":9,"blurb":14,"path":15},"node-red","The map of the Node-RED guide — the pattern families that turn an app into a clean flow.","\u002Fapplication-guide\u002Fnode-red\u002Foverview\u002F",{"guide":5,"slug":17,"title":18,"navOrder":19,"parent":9,"blurb":20,"path":21},"foundations","Foundations",2,"The foundation to build on: what FlowFuse is, its core pieces, and how code is shared across teams.","\u002Fapplication-guide\u002Fflowfuse\u002Ffoundations\u002F",{"guide":13,"slug":17,"title":18,"navOrder":19,"parent":9,"blurb":23,"path":24},"The handful of concepts you need to build with Node-RED, and how they fit together.","\u002Fapplication-guide\u002Fnode-red\u002Ffoundations\u002F",{"guide":5,"slug":26,"title":27,"navOrder":28,"parent":9,"blurb":29,"path":30},"app-delivery-methods","App delivery methods",3,"Two different units of code, delivered two ways. Ship the whole app — a complete, versioned project promoted through environments — or publish one reusable piece — a package the whole team installs and upgrades in one place. Pick by what you're shipping: the app, or a part of it.","\u002Fapplication-guide\u002Fflowfuse\u002Fapp-delivery-methods\u002F",{"guide":13,"slug":32,"title":33,"navOrder":28,"parent":9,"blurb":34,"path":35},"patterns","Patterns","The moves that turn an architecture into a clean, reusable flow — find the seams and reuse well, then handle data on the right paths.","\u002Fapplication-guide\u002Fnode-red\u002Fpatterns\u002F",{"guide":5,"slug":37,"title":38,"navOrder":39,"parent":26,"blurb":40,"path":41},"hardware-apps","Hardware apps",3.1,"The three shapes a FlowFuse app takes when it runs on a device. Pick by how much varies per site: nothing (Packaged App), a few settings (Configurable App), or you assemble it yourself (Edge Building Block).","\u002Fapplication-guide\u002Fflowfuse\u002Fhardware-apps\u002F",{"guide":13,"slug":43,"title":44,"navOrder":39,"parent":32,"blurb":45,"path":46},"design-patterns","Design patterns","The structural choices you select for a flow: find the seams it breaks into, then reuse each piece at the lightest level that solves it — link in\u002Fout, link call, subflow, or packaged node.","\u002Fapplication-guide\u002Fnode-red\u002Fdesign-patterns\u002F",{"guide":5,"slug":48,"title":49,"navOrder":50,"parent":26,"blurb":51,"path":52},"software-apps","Software apps",3.2,"The three shapes a FlowFuse app takes when it runs on the platform. Pick by what it needs: a headless job (Packaged App), a user-facing app driven by data (Data-Driven App), or a reusable piece other apps embed (Shared Building Block).","\u002Fapplication-guide\u002Fflowfuse\u002Fsoftware-apps\u002F",{"guide":13,"slug":54,"title":55,"navOrder":50,"parent":32,"blurb":56,"path":57},"handling-data","Handling data","Classify each signal by shape, purpose and direction, then pick the methods it needs — separate the paths, pace the flow, hold state in context, and manage config. The methods you select to move a flow's data.","\u002Fapplication-guide\u002Fnode-red\u002Fhandling-data\u002F",{"guide":13,"slug":59,"title":60,"navOrder":61,"parent":32,"blurb":62,"path":63},"good-form","Good form",3.3,"A clean flow isn't luck — it's a handful of habits. Wire for reading, lay it out on a grid, decouple UI from logic, catch errors where you can see them, and keep data on a stable contract. Follow these and a flow stays readable, reusable, and out of spaghetti.","\u002Fapplication-guide\u002Fnode-red\u002Fgood-form\u002F",{"guide":5,"slug":65,"title":66,"navOrder":67,"parent":9,"blurb":68,"path":69},"data-plane","Data plane",4,"Before you pick where things run, decide how data is handled. Two stores come built into every FlowFuse server install — the Team Broker and relational Tables — exposed to every instance with nothing extra to stand up. Everything else you bring your own: run it (a time-series DB, an existing database, a model) and expose it to the fleet over Project Link, no inbound ports. This is the data plane the architectures on the next pages all sit on.","\u002Fapplication-guide\u002Fflowfuse\u002Fdata-plane\u002F",{"guide":13,"slug":71,"title":72,"navOrder":67,"parent":9,"blurb":73,"path":74},"worked-examples","Worked examples","Turn an app concept into a Node-RED flow — or a few — leaning on the design patterns and data handling. The method, then the OEE apps end to end.","\u002Fapplication-guide\u002Fnode-red\u002Fworked-examples\u002F",{"guide":13,"slug":76,"title":77,"navOrder":78,"parent":71,"blurb":79,"path":80},"oee-edge-aggregator","OEE - Edge Aggregator",4.1,"The edge app from the OEE use case as a Node-RED flow — a straight-line flow packaged as a subflow and configured per line (its PLC tags, via a config UI and a get-config node), with the data treated as a stream and its counts held in context.","\u002Fapplication-guide\u002Fnode-red\u002Foee-edge-aggregator\u002F",{"guide":13,"slug":82,"title":83,"navOrder":84,"parent":71,"blurb":85,"path":86},"oee-central-dashboard","OEE - Central Dashboard",4.2,"The cloud app from the OEE use case as a Node-RED flow — one link out fanning to two link ins on separate tabs (dashboard and batched history), so the live and history paths stay separate and easy to read.","\u002Fapplication-guide\u002Fnode-red\u002Foee-central-dashboard\u002F",{"guide":5,"slug":88,"title":89,"navOrder":90,"parent":9,"blurb":91,"path":92},"architectures","Architectures",5,"Every FlowFuse deployment is the same building blocks arranged for where it runs — pick the world you're designing for.","\u002Fapplication-guide\u002Fflowfuse\u002Farchitectures\u002F",{"guide":5,"slug":94,"title":95,"navOrder":96,"parent":88,"blurb":9,"path":97},"it-architectures","IT architectures",5.1,"\u002Fapplication-guide\u002Fflowfuse\u002Fit-architectures\u002F",{"guide":5,"slug":99,"title":100,"navOrder":101,"parent":88,"blurb":9,"path":102},"ot-architectures","OT architectures",5.2,"\u002Fapplication-guide\u002Fflowfuse\u002Fot-architectures\u002F",{"guide":5,"slug":104,"title":105,"navOrder":106,"parent":88,"blurb":9,"path":107},"iiot-architectures","IIoT architectures",5.3,"\u002Fapplication-guide\u002Fflowfuse\u002Fiiot-architectures\u002F",{"guide":5,"slug":71,"title":72,"navOrder":109,"parent":9,"blurb":110,"path":111},6,"Start from a use case, break it into apps, and draw the architecture that ties them together — the same method a FlowFuse Proof of Value runs.","\u002Fapplication-guide\u002Fflowfuse\u002Fworked-examples\u002F",{"guide":5,"slug":113,"title":114,"navOrder":115,"parent":71,"blurb":116,"path":117},"worked-example","OEE, end to end",6.1,"One use case — OEE across three lines — broken into two apps and two shared services, then drawn out end to end.","\u002Fapplication-guide\u002Fflowfuse\u002Fworked-example\u002F",{"id":119,"title":7,"blurb":10,"body":120,"description":129,"extension":330,"guide":5,"meta":331,"navOrder":8,"navTitle":7,"navigation":332,"parent":9,"path":333,"seo":334,"slug":6,"stem":335,"__hash__":336},"applicationGuideDoc\u002Fapplication-guide\u002Fflowfuse\u002Foverview.md",{"type":121,"value":122,"toc":317},"minimark",[123,126,130,145,150,155,175,179,205,209,234,236,242,276,280,303,307],[124,125,7],"h1",{"id":6},[127,128,129],"p",{},"Turn an app idea into FlowFuse pieces you can name and say in one sentence.",[131,132,134],"callout",{"icon":133},"i-lucide-flag",[127,135,136,144],{},[137,138,139,140],"strong",{},"New to FlowFuse? Start with the ",[141,142,143],"a",{"href":21},"Foundations →"," — what FlowFuse is and its core pieces, the grounding for everything in this guide.",[146,147,149],"h2",{"id":148},"apps","Apps",[151,152,153],"h3",{"id":26},[141,154,27],{"href":30},[156,157,158,167],"ul",{},[159,160,161,166],"li",{},[137,162,163],{},[141,164,165],{"href":30},"Whole app"," — A complete, versioned project promoted through dev, staging and prod — via snapshots & pipelines.",[159,168,169,174],{},[137,170,171],{},[141,172,173],{"href":30},"Pieces"," — A reusable piece packaged to the Team Library, installed like a shared library — via subflow export.",[151,176,177],{"id":37},[141,178,38],{"href":41},[156,180,181,189,197],{},[159,182,183,188],{},[137,184,185],{},[141,186,187],{"href":41},"Packaged App"," — Sealed product on a Remote Instance, identical on every device.",[159,190,191,196],{},[137,192,193],{},[141,194,195],{"href":41},"Configurable App"," — Same build on a Remote Instance, tuned by a per-site config file that lives on the device.",[159,198,199,204],{},[137,200,201],{},[141,202,203],{"href":41},"Edge Building Block"," — A reusable edge block you wire into your own upstream flows.",[151,206,207],{"id":48},[141,208,49],{"href":52},[156,210,211,218,226],{},[159,212,213,217],{},[137,214,215],{},[141,216,187],{"href":52}," — Headless job on a Hosted or Remote Instance, no screen.",[159,219,220,225],{},[137,221,222],{},[141,223,224],{"href":52},"Data-Driven App"," — User-facing app on a Hosted Instance, backed by data.",[159,227,228,233],{},[137,229,230],{},[141,231,232],{"href":52},"Shared Building Block"," — Reusable UI or logic many Hosted Instances embed.",[146,235,89],{"id":88},[151,237,239],{"id":238},"data-plane-how-data-is-handled",[141,240,241],{"href":69},"Data plane — how data is handled",[156,243,244,252,260,268],{},[159,245,246,251],{},[137,247,248],{},[141,249,250],{"href":69},"Built in — Tables"," — Relational records — built into every FlowFuse install, exposed to every instance.",[159,253,254,259],{},[137,255,256],{},[141,257,258],{"href":69},"Built in — Broker \u002F UNS"," — Team Broker — built into every FlowFuse install; publish once, many subscribe.",[159,261,262,267],{},[137,263,264],{},[141,265,266],{"href":69},"Time-series"," — External today — no built-in TSDB; run Timescale\u002FQuest and expose it to the fleet.",[159,269,270,275],{},[137,271,272],{},[141,273,274],{"href":69},"Bring your own"," — Expose any other store or service (SQL, ML, gateway) over Project Link.",[151,277,279],{"id":278},"execution-plane-where-it-runs","Execution plane — where it runs",[156,281,282,289,296],{},[159,283,284,288],{},[137,285,286],{},[141,287,100],{"href":102}," — Near the equipment — edge with the server in IT or an OT\u002FDMZ, hardware-saving consolidation, and air-gapped sites.",[159,290,291,295],{},[137,292,293],{},[141,294,95],{"href":97}," — Hosting & governing — on-prem, your cloud per-site, hosting choice at scale, and enterprise governance.",[159,297,298,302],{},[137,299,300],{},[141,301,105],{"href":107}," — The live data backbone — a Unified Namespace where edge publishes once and many subscribe, across every site.",[146,304,306],{"id":305},"examples","Examples",[156,308,309],{},[159,310,311,316],{},[137,312,313],{},[141,314,315],{"href":117},"Worked example"," — OEE, end to end — the full chain from edge to broker to cloud to history.",{"title":318,"searchDepth":67,"depth":67,"links":319},"",[320,325,329],{"id":148,"depth":19,"text":149,"children":321},[322,323,324],{"id":26,"depth":28,"text":27},{"id":37,"depth":28,"text":38},{"id":48,"depth":28,"text":49},{"id":88,"depth":19,"text":89,"children":326},[327,328],{"id":238,"depth":28,"text":241},{"id":278,"depth":28,"text":279},{"id":305,"depth":19,"text":306},"md",{},true,"\u002Fapplication-guide\u002Fflowfuse\u002Foverview",{"title":7,"description":129},"application-guide\u002Fflowfuse\u002Foverview","YvbzfT-qgGcFefdvYW8sZFcO7flh71n8KxI5Q5zRVcg",1787068105852]