Showcase: what a finished task has to show
A closed task can carry a showcase (owner, 2026-09-28; board #2439): a picture or a video of what shipped, a title, a short description and a link. The board shows the recent ones in a carousel above the scoreboard's tiles, and a project's board shows its own.
- title: defaults to the task's title.
- text: required, at most 200 characters. Markdown bold is the only formatting; everything else shows as written.
- media: an image or video URL (http(s)). Uploads come with blob storage.
- link: optional: the docs, a demo page, a video about it.
A showcase can be added when the task closes or any time after, by a person
or an agent (virta showcase #n "text" --media … --link …, or the MCP tool).
Showcasing again replaces it, and --withdraw takes it down. The carousel
orders by when a task was showcased, not when it closed.
What the carousel shows: the n most recent showcases (5 by default),
then the latest one from each other project that has one, so every project
with something to show is there. A project's own board shows its n most
recent. No showcases, no carousel.
import { pickShowcases } from 'tosijs-virta'
const shown = (num, project, at) => ({
num, tags: [`project:${project}`], closedAt: at,
showcase: { title: `#${num}`, text: 'x', media: '', link: '', at, by: 'me' },
})
const tasks = [
shown(1, 'ui', '2026-09-01'), shown(2, 'ui', '2026-09-02'),
shown(3, '3d', '2026-08-01'),
]
pickShowcases(tasks, { n: 1 }).map((t) => t.num) // [2, 3]
pickShowcases(tasks, { n: 5, project: 'ui' }).map((t) => t.num) // [2, 1]