Branching AI chat, defined.
A plain-English glossary of the terms that show up across the Nodea app, the blog, and the rest of the branching-AI ecosystem. Bookmark it, link it, copy from it.
Branching AI chat
Also known as: non-linear chat, tree-shaped chat, forking chat
A conversation interface where each message is a node in a tree, and any node can spawn a new branch.
In a branching AI chat, the conversation is stored as a directed tree of messages instead of a flat list. From any reply, the user can fork a new branch — a divergent path that explores an alternative response without overwriting or losing the original. The current "chat view" is the path from the root of the tree to the currently selected node.
Linear chat
Also known as: thread-based chat, linear thread
A conversation interface where messages are appended to a single ordered list, with no first-class branching.
Linear chat is the default shape for products like ChatGPT and Claude.ai. To explore an alternative, the user must either edit a prior message (destroying the original) or start a new conversation (losing all prior context). There is no first-class "branch" operation.
Node
A single message in a branching conversation, with a parent and zero or more children.
A node represents one message — from either the user or the AI — in the conversation tree. Each node has exactly one parent (or null if it is the root) and any number of children. In Nodea, nodes live in the Postgres `nodes` table with columns for role, content, parent_id, and position coordinates for canvas layout.
Branch
Also known as: fork, alternative path
A divergent path from a node, created by attaching a new child to an existing message.
A branch is born the moment a node has more than one child. From that point, the original child remains and a new child (a new question or a regenerated answer) is attached alongside it. Each branch is independent — only the path from root to the currently selected node is sent to the AI on the next turn, so sibling branches never bleed into each other.
Fork (a conversation)
The action of creating a new branch from an existing node — the verb form of "branch."
To fork a conversation is to pick a node and attach a new child to it, opening a parallel exploration. In Nodea, forking is a one-click action on any message. In linear chat tools, forking is approximated by editing a previous message or by opening a new conversation and re-pasting context — both lossy workarounds.
Canvas
A pan-and-zoom visual surface that renders the entire conversation tree as a graph.
The canvas is the visual representation of the conversation tree. Each node is drawn as a card, parent-child relationships are drawn as edges, and the user can pan, zoom, and click any node to instantly switch the chat view to that branch. In Nodea, the canvas is built on XYFlow (React Flow) over a deterministic breadth-first layout.
Tree of thought (ToT)
Also known as: ToT, tree-of-thoughts
A prompting and reasoning pattern where a model explores multiple alternative continuations and selects among them.
Tree of thought, introduced in a 2023 research paper, is a prompting technique that improves on chain-of-thought by having the model generate several candidate next steps, evaluate them, and continue with the most promising. A branching chat interface is the natural human-facing analogue: instead of one linear chain of reasoning, the user explores multiple branches and keeps the best paths.
Path (in a conversation tree)
The ordered chain of nodes from the root of the tree down to a selected node.
A path is what gets sent to the AI model on each turn. In Nodea, when the user selects a node, the system walks the tree backwards from that node to the root, collects every message along the way, and sends that ordered sequence as the conversation history. Sibling branches are never included — each path is independent.
Project
Also known as: conversation, chat tree
A single top-level conversation tree — a discrete topic or workspace.
In Nodea, a project is one conversation tree: one root node and everything that branches from it. A user has many projects, listed in the sidebar. Projects are stored in the `projects` table and their nodes are stored in the `nodes` table, linked by `project_id`.
Streaming (AI response)
The pattern of delivering a model’s output token-by-token as it is generated, instead of waiting for the full response.
Streaming uses HTTP server-sent events (or similar) to push each token to the client as soon as the model produces it. This makes long responses feel responsive. In Nodea, streaming is implemented via the Vercel AI SDK’s `streamText` function over the Anthropic provider.
Model routing
Automatically choosing which underlying AI model to call for a given prompt, based on complexity and plan tier.
Model routing trades off cost, latency, and capability per request. In Nodea, simple short prompts go to Claude Haiku 4.5 (fast, cheap); reasoning-heavy or longer prompts upgrade to Sonnet 4.6; and Pro users’ hardest prompts go to Opus 4.7. The routing rule looks at message length and a regex of reasoning verbs like "analyze," "compare," and "design."
Anonymous sign-in
A real user account created without requiring an email address, claimable later by linking credentials.
Anonymous sign-in (a Supabase feature Nodea uses) creates a row in `auth.users` with no email — the user gets a stable identity and can save data, but never had to commit a real email. Later, the same user can "link" credentials (email + password, OAuth) and the data carries over without migration.