Local and account-free. No account, no sign-up: whatever you type into the tools stays in this browser's localStorage and never reaches a server.
Our own counter records page opens and finishes: the address leaves, plus one tenth-of-the-text figure. No cookies, no outside trackers, your IP is not stored, Do Not Track is honoured. How to check that
The portal's own repository is not published, so we do not call it open source. What is open:
What has changed on the portal since your last visit. The full list of deployments is in the “What has changed” section on the About page.
New here1
Конструктор научной статьи
Easier now3
ArticlesВысшее образование как личная исследовательская программа
Courses and learningCourses
Digitable tools
Architect
Panel on the left, canvas in the middle, the model in the language on the right. What you draw turns into category-theory declarations and is checked right away by the same compiler that backs flang check. What you write is laid back out as shapes.
Canvas and model
What are we doing
Canvas palette
Whole tasks
Arrows and objects
Sets
There is no difference among them, and that is not an omission: a difference is a crescent, and the geometry reader knows only a circle inside a circle and a labelled lens. A button would drop a shape the page cannot read back. A set on the canvas is hatched while an object frame is not, and this is not decoration: a set has an inside, an object does not. That is why the three cases read before their labels do — where circles overlap the hatching doubles and the lens is darker than either; a nested circle is doubled all over; circles apart leave no dark spot anywhere. Circles are deliberately not dashed: on this canvas a dash already means a derived arrow — a composition — and besides, a dash changes only the boundary, while embedding and common part live in the area.
A sticker is a rectangle with a label, a column is an editor frame: both are native here, so stickers drag, recolour and undo like everything else. The board lives in the address of the link, not on a server and not in this browser. Whoever gets the whole link gets the board; a tab closed without a built link saves nothing. While the mode is on, the model in the language is not read from the canvas: thirty stickers would make thirty declarations and as many complaints.
Three links, three different promises. Read what actually travels: the wrong link says nothing about being the wrong one — that is discovered at the other end, once the time is already spent.
A link to the board
THE BOARD ITSELF travels: it lives in the address fragment, after the «#», and exists on no server at all. The limit is 2000 characters, roughly 120 stickers; beyond that no link is produced and you are told by how much it overran. This is a snapshot, not shared work: edits made at the other end never come back here.
A shared session
A ROOM KEY on the workbench travels, not the canvas. You draw together in real time, but the room lives on the workbench and the link takes you there: the session cookie is SameSite=Lax, so a socket opened from the portal would arrive without it. We will not weaken the cookie for convenience — it is an access check, not a setting.
The room is open in the next tab. Invite people with this link — the room key lives in it after the hash and is never sent to any server. Anyone with the link and access to the stand can join; nobody else sees the room or the drawing. What you drew here does not travel by itself — save the file and open it there.
A conversation
THE CONVERSATION ROOM travels, and nothing else: words, not the canvas. The chat lives on chat.digitable.life — a separate service, and it cannot see the canvas at all. Inviting someone to the canvas and inviting them to the conversation are two different invitations, and never one link.
Whatever is selected is what travels. Nothing selected — the whole canvas goes; a part selected — only that part, together with the labels inside the shapes. .digitable is our own format and the scene itself: the very file that used to travel as .excalidraw, plus a note carrying the model in the language. Rename it to .excalidraw and it opens in Excalidraw (excalidraw.com, the Obsidian plugin); dragged onto the canvas it is taken without renaming. The .excalidraw files exported earlier still open here. .fp is the model in the language, exactly the one in the column on the right: the specification of the drawing, read by a person and by the compiler. The extensions .flang, .fp, .фп and .фланг are equal to it; Cyrillic file names break for some people, hence .fp by default; a directory walk (flang test) sees only .flang. SVG is for foreign boards: Boardmix, Miro, draw.io and Figma do not accept the .excalidraw format, but they do take SVG; ours also carries the scene inside itself, so it comes back into Excalidraw losslessly. PNG is just a picture at twice the screen size: everyone takes it, FigJam included, but it opens back nowhere. The sticker board has its own file in the «Board» drawer — that one comes back only here.
Loading the editor — about 430 KB over the wire.
The editor opens by itself and costs about 430 KB over the wire.
Tracks. The search groups publications by learning track and compares your query against titles, descriptions, tags, headings and article fragments.
Articles. This mode ranks individual articles and videos, for when you already know the topic or the title.
Your query is not sent to a server or to any external ML system. This is a statistical model, not generative AI: it recommends what already exists and invents nothing.