29Court · Dillo’s perfect companion tool
Dillo holds your backend still: your files, your database, your functions, armored. Dillo Flows is the companion that moves everything around it. Data flows to the places you name. Triggers start it. Relay hands it off and fans it out. And when a person has to decide, the flow stops, waits, and puts their answer on the record.
One account for everything 29Court · your flows live in your own space · provider keys are yours, sealed on paste, never shown again.
Output, verbatim from the run: “Found the post: ‘sunt aut facere repellat provident occaecati excepturi optio reprehenderit’”
Output, verbatim from the run: “No post came back — the lookup answered status 404.”
A real run, both ways. The flow fetched, checked what came back, and took the path the data chose. Both outputs are quoted from the run itself. This demo is waiting in your space when you sign in.
The companion
Dillo’s promise is the definition: three files describe your whole backend, and everything stands on them. Flows keeps the same discipline for everything that moves. A flow is a definition too, and it is yours outright.
Dillo’s three files, named exactly as Dillo names them. The backend is at dillo.29court.com.
What it does
A flow fetches from any API on the web and carries what it finds onward: into the next step, out to your Dillo board, onto your event feed, or back to whoever called it. Your connections present their sealed secrets by name alone. A key is never pasted into a flow.
A webhook knocks and a run begins. An event lands and the flows watching for it consume it. You press run. Or the flow is published, and a call to its own endpoint is the trigger. Events are typed, deduplicated, and carry their provenance: what changed, where it came from, when. No flow step polls a mailbox or an API to see if anything changed. Change arrives as an event, or it does not arrive.
One piece of work, handed onward. Relay fans a single message out to every channel at once, passes a result onward to your board, your feed, or the next person, and the record shows what each leg actually did. The relay demo below is pre-rendered in your space exactly as a fresh account sees it: one channel live, three iced.
A dispatch over iced channels still runs the live ones and reports each iced channel by name. Ice is enforced on the server, in the engine. Never faked.
Any step can stop and ask: an approval, a question, a task, a choice. A review gate can sit in front of any step at all, even a machine step. The run parks, durably, and a signed link carries the question to the person. Rejecting requires a comment, enforced by the server. The decision (who, when, what they said) resumes the run and stays in its audit trail.
Text-to-workflow
Describe the workflow in plain words. The house drafter builds a real flow: the same steps, the same engine, nothing drawn on. Every channel in the draft is born iced and wakes only when its key proves live.
The drafter is a pattern clerk, not a mind reader. It writes its assumptions on the draft, where you can read them before anything runs.
What actually runs
No vapor. If it is listed here, it runs today. If it needs your key, it says so and stays iced until the key proves itself.
Labeled, not hidden
The gaps are printed here for the same reason they are printed inside the product: a claim you cannot check is worth nothing.
Pieces for Google, Microsoft, Notion, Slack, and GitHub are drawn in the step catalog: read a calendar, search mail, draft a message. Not one of them is live. The connections behind them are mock until real sign-ins land, and a flow containing an app step is refused at the door, by name, before anything runs. Google Drive and Sheets are not even in the current Google grant.
Simulated providers, labeled in every result and metered like the real thing. Wiring a real model is a host decision, not a format change. It has not been taken yet.
A decision link needs no account: whoever holds the signed link can answer before it expires. Binding a decision to a verified, named person is not built yet, and this page will not pretend otherwise.
A parked run resumes when a person answers or taps resume. It does not wake itself on a schedule yet. When any of this lands, it lands real, and this section shrinks.
Bring your own keys
Flows never holds a master key to your life. Each provider is your account, connected with your key, sealed the moment you paste it and never shown again. Steps ask for it by name alone.
Pasting a key does not wake a channel. We call the provider, live, and the key has to answer. Iced, then validating, then live. Or failed, with the reason written on the step in plain words and what to do next.
Revoke a connection and its sealed secret is destroyed, not disabled. The name stays as a tombstone, and any step naming it fails by name.
One door
Sign in with the 29Court account you already have. Your space is yours alone: your flows, your keys, your record, and the relay demo pre-rendered, waiting for its first key.