Viewer

Host and review prototypes on your own server.

Everything it keeps lives in one database and one folder on disk, and sign-in comes from GitHub. No managed service, no vendor, and no prototype leaving your network.

A prototype open for review, with comment pins on the page and the comment list beside it
What a reviewer opens: the prototype, and everything said about it.

How it runs

From a repository to a reviewable link.

01

Connect a repository

A GitHub App provides both sign-in and repository access. Nothing else needs an account.

02

It builds in-process

Clone, run your project’s own install and build commands, publish the output. Logs stream live while it runs.

03

Share the review link

Reviewers open the prototype and click anywhere to leave a comment pinned to that element.

Comments

Pinned to elements, not coordinates.

A comment anchors to the element it was left on. Rebuild the prototype, change the layout, and the pin is still on the thing it was about.

Threads support replies, resolve, and @-mentions that send email, with a one-click unsubscribe that needs no account.

Self-hosting posture

  • Everything it keeps is one folder, so a backup is a copy
  • Built assets live on local disk, not object storage
  • Path serving by default; optional subdomain isolation per prototype
  • Machine tokens for scripting, scoped read or write
A pin is clicked, its thread opens beside the element, and a reply is written and sent
A thread stays with its element, so a reply lands on the thing being discussed.

Get started

One command, and it is running.

The image carries everything it needs, and a demo prototype is already inside it. When you are ready to host it for your team, there is a short guide to who gets in and where to run it.

docker run --rm -p 3100:3100 -v desde-viewer:/data ghcr.io/desde-design/viewer:latest