Treeno
Tree-structured notes on five surfaces, with an agent inside
A note-taking product where everything is a node in one tree — outlines, task breakdowns, kanban boards, structured fields. The same tree runs on the web, a Tauri desktop build, a Flutter mobile app, a Telegram Mini App and a Telegram bot, staying editable offline and reconciling when the network returns.
- Role
- Solo — product, architecture, every client and the backend
- Period
- Feb 2026 — present

The problem
Most note tools make you choose a container first — a page, a folder, a board — and then fit the thought into it. The structure ends up in the file system while the content sits inside files, so reorganising means moving things between two different places.
Treeno collapses that. A node has a value, and nodes have children. That is the entire core model. Outlines, task breakdowns, knowledge bases, key-value data and meeting notes are all the same shape, so restructuring is just moving a node.
How it works
Everything else layers on top of that one model without adding conceptual weight:
- Views decide how a node’s own value renders. Text, links, emails, passwords, code, shell commands and dates are detected automatically; checkboxes and numbering can be set explicitly.
- Layouts decide how a node’s children are arranged — a list, a kanban board, or a focused page of their own.
- Structure is data. Tags, fields, field values and node links are first-class database entities. Rename a tag once and every node using it updates; share a field value across a dozen nodes and the link survives export, sync and paste.
- Keyboard first. Arrow keys to move, Enter to edit, Tab to indent, Cmd+Right for a child. The whole app is operable without a mouse.
The hard parts
Five clients, one tree. A web app, a Tauri 2 desktop build with its own auto-update feed, a Flutter mobile app, a Telegram Mini App and a Telegram bot all talk to the same Express API and the same WebSocket stream. Ordering between siblings uses fractional indexing, so two clients can insert next to each other without renumbering the branch or fighting over positions.
Offline is the default, not a mode. Writes are applied locally first and queued; when connectivity returns, deltas replay and reconcile. Losing the network mid-edit is not an error path — it is the normal path with a slower flush.
The agent is a client too. The backend exposes an MCP server, so Claude can search the tree, create and move nodes, manage boards and fields, and answer questions about the data using exactly the same primitives the UI uses. The Telegram bot wraps the same agent for capture on the go.
Own your data. The whole thing self-hosts with Docker, and the full tree exports as JSON. That constraint shaped the architecture more than any feature did — nothing may live only in a managed service.
Where it stands
In daily use and under active development, with an end-to-end Playwright suite covering the tree editor, kanban layouts, offline behaviour and onboarding. The source is private; the desktop release feed is public and linked above, and the screenshots on this page are from the current build.
Inside the product
Click any frame to enlarge · ← → to move