Tecto documentation
Tecto is a kanban project manager built on real documents. A card is not a title with a description field — it is a page, with a body you can write in, a version history, comments, mentions and workspace fields. And a card can sit on several boards at once, in a different column on each, without being copied.
Read this first
There is a Tecto application, and this is its manual. app.tectoapp.io
serves it: a sidebar of the collections and the boards inside them, the board
itself with its columns and lanes, cards you move with a mouse, a pen or a
finger, and a card panel that opens over the board at an address of its own.
Signup is not open yet; the early-access list is still the way in.
The same boards are reachable over the REST API, and the app writes through it: creating a board, renaming it, moving a card from one column to the next — all of that goes over the routes documented here. Only the free text takes another path: a card's body, and the board's own, travel on the editor's live connection.
So this documentation describes both halves: the product you open, and the system you drive programmatically. There is one board and one card behind them, not two.
If you are here from the waiting list: what you were promised is being built on foundations that are already load-bearing, and the pages below are the exact shape of them.
The model
- Boards, columns and lanes — what a board is, how its grid is configured, and why a column is not a select option.
- Cards — cards are pages, what "on two boards at once" actually means, and how a card moves.
Build on it
- API — authentication, access tokens, errors, pagination, webhooks, and pages as Markdown.
- API reference — every endpoint, generated from the OpenAPI document the server emits.
- Markdown specification — the canonical dialect every card body serializes to and parses back from, loss-free.
- MCP server — the first-party Model Context Protocol server, through which an agent reads boards and moves cards.
What exists, precisely
In the app:
- A sidebar of collections and the boards inside them, the trash, and a search over boards and cards (⌘K, or the row above the collections).
- The board: columns and lanes, cards moved with a mouse, a pen or a finger — and the same moves in the card's own menu (up, down, to another column, to another lane), for anyone not using a pointer.
- A card panel at an address of its own, holding the card's title, icon, its column on each board it is on, its fields, the full collaborative body, comments and the version history.
- The board's own body above the grid, with cards pinned into it.
- Who else is looking: a presence roster on the board and inside a card.
- Personal access tokens, in settings — the credential the API below wants.
And over the API:
- Boards inside a collection: create, read, rename, re-icon, trash.
- Columns and lanes: configured as a list on the board.
- Cards: create a new one, attach a page that already exists, move it between columns and lanes, remove it from a board.
- Reading a board as one grouped query — cards grouped by column and lane, with a window and a count per group. Measured against a 10,000-card board.
- Everything a card inherits by being a page: comments, mentions, search, history, the trash, workspace fields, events and webhooks.
- Markdown export of a board, with its cards under their columns.
Deliberately not built — these are decisions on record, not a backlog you should expect to shrink soon:
- WIP limits.
- Filtering or sorting a board. A board is in board order, always.
- Board templates, automations, card covers, public board shares.
- Comments on the board's own body (comments on cards work).
- Cross-product embedding: no wiki page inside a board, no card inside a wiki page, no search across products. A card can NAME a project kept elsewhere — a link, not an embed; see Cards.
- Import from another tool.
In another language
Every page here exists in English and German; the switch is in the top bar. The API reference is the exception: its endpoint descriptions come straight from the server's route table and stay English in both.