Your documents in git. Git nowhere in sight.
Every page is a Markdown file in a real repository. Every proposed change is a branch and a pull request underneath — and the person making it sees a document, a review and an approval, never a diff, a merge or a remote.
Git is present at every step and visible at none.
Not hidden — translated. Underneath, the machinery is ordinary git, which is why the escape hatch is real. On top, there are nine nouns: page, site, section, change, review, approve, publish, suggestion, and who can see this.
The people who do know git keep it. They clone, branch, push, and their commits arrive in the same review as everyone else's. That combination is the whole product: git-canonical, and people without git treated as first-class contributors.
- Connect a GitHub repository. Get a receipt that names every file. What was imported, what was left alone, and the reason for each — nothing is silently dropped.
- Images live in the repository, and they leave with it. An escape hatch that drops the pictures is not an escape hatch.
- Pages that do something. A form is part of the document, not an embed, and the answers go to email, Slack, or a webhook.
- It works behind a login — which is where most documents live. Search, the AI answer, contribution and review are the features the category switches off on private content. Verso's don't switch off.
- One corpus, several audiences: the public docs, a customer-only surface behind login, and the internal wiki and runbooks.
Review ordered by what a change will do, not by where it sits on the page.
A redline answers which characters differ. That is a real question and it is not the reviewer's question.
The reviewer is asking what will this do, and the two answers come apart most sharply where the stakes are highest. The hardest class is a pointer whose target moved while its own words did not: the link now goes somewhere else, and a character-level comparison of the sentence carrying it is blank, because nothing in it changed. The Change Ledger puts that case at the top of the list, in words.
Six fixed groups, always in this order.
The approve bar says what it is about to record
Reviewers approve in bulk. Everyone knows this, and most systems pretend otherwise, which produces item-by-item clicking that looks diligent and is not.
Removing the shortcut only creates workarounds; what changes behaviour is being honest about the number, and keeping it.
The person who knows the page is wrong usually has no account. They open the page and edit it. No account, no licence, no git remote. The suggestion lands in triage first, and triage is a different act from review with a different word, a different button and a different route.
Every page ends in proof.
One line under the last paragraph: when this text became current, who approved it, and a mark that it is on the record. It is not a badge and it is not a byline — it is the review above, read back.
The facts on that line are the ones the approval already established: the commit that put the current text in place, and the person who approved the proposal that carried it. A page whose approver was never recorded — a seed, an import, a direct push to the repository — drops that clause rather than naming somebody, because a provenance line that guesses is worse than one that is short.
…the supplier must hold the certificate for the full term of the contract, and produce it on request within five working days.
The line is set in the record's voice: mono, fixed inks, not themeable.
The exit is the feature.
Your brand is a file in your repository. There is no badge.
What gets stored is theme/tokens.json and theme/theme.css,
committed into your site's git repository with an author and a message. A rebrand
is a change like any other change: reviewable, revertable, and undo our rebrand
is
a git revert rather than a support ticket.
Clone the repository and you have the documents as plain Markdown, in real directories, with real history and real authorship — plus the images, plus the theme, plus the form definitions. Open it in any editor. Grep it. Diff it. Hand it to somebody in 2050 who has never heard of this product.
Publishing squashes: a proposal becomes one commit carrying intent, with the contributor recorded as a co-author — attribution survives, the intermediate commit-by-commit sequence does not survive as commits. And git is the documents, not the audit log: what was opened, what was approved without being opened, and under which classifier version, lives in the application's own database.