What vitrinka offers
An artifacts library and an annotation-board platform in a single Go binary. Recorders and agents publish what they made; humans and agents meet on a live board to mark it up; the fix comes back with its proof attached.
The loop
One sentence from a tester becomes a work item with the screen, the region and the branch already attached. A listening agent takes it off the queue, fixes it, and hangs the after-shot beside the original.
- Capture — a recorder or a CI job publishes a set — screenshots, a session, an HTML report, any files.
- Mark — anyone with the link draws a region on the thing itself and says what is wrong.
- Fix — an attached agent reads the item, changes the code, and publishes the proof back to the same board.
The surfaces
Six things a board can hold, each with its own page in this documentation set.
| Surface | What it is |
|---|---|
| Boards | An infinite canvas where the screen is the ticket — draw a region, write one sentence. |
| Sessions | A replayable recording: DOM, network waterfall and console on one timeline. |
| Journeys | Screens wired in the order somebody walked them, branches rendered as signposts. |
| Artifacts | Self-contained interactive pages, live on the canvas, updated in place at the same URL. |
| Diagrams | Architecture generated from docker-compose, OpenAPI, a SQL schema or a live database. |
| Documents | Markdown pages bound to repo files, deep-linked to the diagram nodes they explain. |
The three pieces
There is a server, the things you install on your machines, and the boards engine that renders the canvas.
| Piece | What it is |
|---|---|
| Server | One static Go binary: HTTP API, web UI and SQLite, with blobs on disk or S3. |
| Clients | The vitrinka CLI, the Claude Code / Codex plugin and its skills, and the recorders. |
| Boards engine | A no-build vendored JS island that renders the canvas in the browser. |
Where your data goes
Wherever you put the binary. Metadata in SQLite, blobs on your own disk or any S3-compatible store, and an air-gapped mode for networks that never reach the internet.
- No third-party telemetry — the recorders send exclusively to the server URL you configure.
- Every request authenticated — browsers carry a session cookie, machine clients a workspace-scoped bearer token.
- Audited — sign-ins, role changes and break-glass use are recorded.