Make the docs state things rather than argue them
Docs / docs (push) Successful in 37s
Playwright Tests / test-playwright (1, 2) (push) Failing after 1m35s
Playwright Tests / test-playwright (2, 2) (push) Failing after 17s
pre-commit / pre-commit (push) Failing after 2m8s
Test Backend / test-backend (push) Failing after 2m48s
Compose Smoke Test / test-compose (push) Failing after 13s
Playwright Tests / merge-reports (push) Failing after 2m25s

The site read as a design journal: rationale paragraphs, hedges
("deliberately", "on purpose", "genuinely"), meta-commentary about the docs
themselves, and one em-dash every ten lines carrying an aside.

Roughly twenty rationale blocks are gone or reduced to what a reader needs
in order to use the thing. Em-dashes go from 507 to 135, and what is left is
structural rather than prose: list and definition separators, table cells,
and four inside code blocks that quote what the CLI actually prints.

Also: api.example.com becomes api.fluksio.com (the emails stay, since
bootstrap.py really defaults to admin@example.com and RFC 2606 reserves it);
the mqtt table gains the two settings it had drifted behind on and inject's
wording matches the engine; llms.txt lists the two connector pages that were
in the nav but not in it; and the two device/device_policy notes now agree.

Builds clean under `zensical build --strict`.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015YrQnKV3bnQd4K342y8tKj
This commit is contained in:
2026-08-31 10:49:58 +02:00
co-authored by Claude Opus 5
parent 2422a9b22b
commit bdad6d7fc2
25 changed files with 450 additions and 479 deletions
+18 -23
View File
@@ -1,45 +1,40 @@
# Fluksio
Fluksio is a node-based automation engine. You describe what should happen as a
graph of small pieces of logic, and it keeps that graph running reacting to
graph of small pieces of logic, and it keeps that graph running: reacting to
what arrives, or executing once from parameters to a result.
Two very different jobs turn out to be the same shape, which is why the same
engine does both:
It runs two kinds of graph:
- **A house, a lab or a plant** produces values forever. A sensor publishes, a
rule fires, a relay closes, a dashboard on the wall shows what happened. The
flow never ends.
- **An experiment** produces a value once. Parameters go in, stages execute,
and at some point it is *done* and has left behind metrics, artifacts and a
record you can compare against last month's.
- A **live flow** produces values forever. A sensor publishes, a rule fires, a
relay closes, a dashboard on the wall shows what happened. It never ends.
- A **run** produces a value once. Parameters go in, stages execute, and it
finishes, leaving metrics, artifacts and a record to compare against.
The first is a **live flow**, the second is a **run**. Both are the same nodes,
the same type checking, the same editor and the same API.
Both use the same nodes, the same type checking, the same editor and the same
API.
## What you actually get
## What you get
- A **flow engine** that owns your graph, checks the types on every edge, and
keeps running when a node fails rather than taking the rest down with it.
keeps running when a node fails.
- A **canvas** that lays flows out for you and an editor for the Python inside
each node with the running values drawn on the wires while you work.
each node, with the running values drawn on the wires while you work.
- **Dashboards** built next to the logic that feeds them, including ones you
can hang on a wall tablet that has no keyboard.
- **Runs**: parameters, metrics, artifacts, sweeps, and a queryable history
without a second server and without paying a project bootstrap per execution.
- **Runs**: parameters, metrics, artifacts, sweeps and a queryable history, with
no second server and no project bootstrap per execution.
- **Distributed workers**: a node marked `device: gpu` runs on the machine that
has one, which dials out to the engine rather than needing to be reachable.
- An **HTTP API** that came first — everything the browser does, you can do from
a script — plus an MCP endpoint for agents.
- An **HTTP API** covering everything the browser does, plus an MCP endpoint for
agents.
## Start here
The setup is genuinely different depending on what you are here for, so
[Getting started](getting-started/index.md) splits in two: one path installs a
Python package and gets out of your way, the other stands up a server you will
be running for years. Everything after that is shared.
[Getting started](getting-started/index.md) has two paths: one installs a Python
package, the other stands up a server. Everything after that is shared.
If you would rather look before installing, the hosted demo at
To look before installing, the hosted demo at
[fluksio.com](https://fluksio.com) runs a real instance with a small-house panel
and a training pipeline on it.