← Projects

Aside

Branching LLM chat with tree-based threading.

The idea

Linear chat is a poor fit for the way I actually use language models. A single response usually contains three or four threads worth pulling on, but following any one of them pollutes the main conversation and makes the rest harder to recover. Aside treats a chat as a tree instead of a line.

How it works

Any message can be branched into a side chat. Highlight a span of text inside a response and start a sub-conversation scoped to just that excerpt. Edits to a prompt don't overwrite — they fork, creating a new branch with its own history, so the full evolution of a thought is preserved and navigable.

The tree is the first-class object. The UI renders it as a navigable structure rather than a feed, with collapse, search, and the ability to merge context from one branch into another.

Why

The interface you use to think with an LLM shapes the kind of thinking you do with it. Aside is a bet that branching, scoping, and explicit history will produce better thinking than the autobiographical scroll that's become the default.

Status

Phase 1 in progress. Postgres + Fastify monorepo on the backend, React on the front.

TypeScript, Fastify, Postgres, React, Tailwind.