# Roadmap What is planned, in rough order. Each item is a self-contained pull request or two; none of them changes the deployment contract (one image, Postgres, optional S3) unless it says so. Dates are deliberately absent — the order is the commitment. Open an issue to argue for a reordering. The theme of the next stretch: 0.2.0 made the platform wide — publishing, versions, sharing, RBAC, comments, search, MCP. What follows closes the loop that none of the hosted alternatives have — **an agent publishes, people review, the agent addresses the feedback** — and makes published work easier to find and to show. ## Next ### Notifications and webhooks Comments exist; nobody hears about them. First cut: the site owner and thread participants get an email (via the existing OIDC identity's address) when a thread is opened, replied to or resolved, and when a site they own or follow gets a new version — batched, at most one message per site per hour. Then a per-site **webhook** (`POST` with a signed JSON body for `comment.created`, `comment.resolved`, `version.published`, `official.changed`) so a chat bot or an agent runner can react. The webhook is what lets "a comment arrives → an agent wakes up and fixes it" happen without polling. Delivery is at-least-once with retries and a visible log in site settings. ### Server-side search on the home page The home and Explore search boxes filter titles in the browser. Point them at `/api/search` so they find sites by content too, with the same scope rules. Small. ### Link previews and thumbnails A share link pasted into Slack, Feishu or a wiki renders as a bare title today: the viewer sets `og:title` but no image. Capture a screenshot of the current version after publish (Gotenberg already ships Chromium; a deployment without Gotenberg gets a generated typographic card instead), store it next to the version, serve it as `og:image`, and use it on site cards so Explore and My sites become a wall of work rather than a list of names. Screenshots run after the response, like text extraction, and are never in the publish path. ### Compare two versions Official versions and exact-version review exist; comparing them means switching back and forth. Add a side-by-side view of any two versions of a site — rendered previews in sync, plus a text diff of the extracted content — reachable from version history and from a comment's "addressed in vN" link. Reviewing what an agent changed becomes one screen. ### GitHub and Google sign-in An adapter over the existing OIDC flow for the two providers most self-hosters and every visitor to the hosted demo already have. Today the demo only accepts the operator's own identity provider, so a visitor who clicks *Sign in* stops there. Deployments keep their OIDC provider; these are additional buttons, off unless configured. ## Then ### Feedback for agents, in one call Per-thread agent context exists (`/api/sites/:slug/comments/:thread/agent-context`). Add the site-level view an agent actually asks for — `artifact_site_feedback` in MCP and `GET /api/sites/:slug/feedback`: every unresolved thread with its anchor, quoted text, version and replies, in one authorized response — and let `artifact_site_update` name the threads it addresses so they are marked *addressed in vN* and link to the compare view. This is the story the README should open with. ### Tags and a team showcase Sites accumulate; folders are one dimension. Add free-form tags on sites (owner-editable, agent- settable at publish), filter and search by tag, and a tenant-level **showcase** page that lists only official versions, optionally public, so a team can hand out one URL for "what we have built". Tags ride the existing text index. ### Analytics for owners Total views exist. Give owners the breakdown the count implies: per share link, per version, per day, unique readers versus opens, and where readers came from (referrer host). Same retention switch as view details today; nothing is collected that is not already recorded. ### Embedding An `