Cut the landing page back to a landing page - #25
Merged
Merged
Conversation
Two lockfiles for one package cannot both be right, and the one that is not installed from is the one that goes stale without anybody noticing. pnpm-lock is the one in use, so package-lock goes. Prettier no longer checks the lockfile: it is generated, and reformatting it would only make the next install rewrite it back. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The first version restated the documentation. Refusals with their reasoning, the version state machine, eleven exit codes, the safety guarantees, the argument for one vump.toml per repository — all of it lifted from README.md and DESIGN.md, which means two copies of the same claims to keep true and a first-time visitor reading a specification before learning what the tool is. The page now answers three questions and stops: what does it do, does it handle my files, how do I start. Eight sections become four. Everything deeper is a link to the repository, which stays the only place the behaviour is written down. Gone: the defect essay, the prompting rule in long form, the transition table, the refusals, the exit codes, the safety grid, the lock-file and .NET explanations. Monorepos survive as a single block, because "does it handle my repo" is a question someone evaluating the tool actually has. What replaced them is shorter and aimed outward: three cards saying what it does, a file picker showing the one line that changes, a workflow snippet, and a three-step start. The page is 4,400px instead of 10,000, and the headline commits to a plain claim — one command — rather than a promise about tags that means nothing before you know what it is. Section numbering went with it. Numbered sections read as a document, and this is not one. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The three woff2 files were being decompressed with Promise.all, which was a change made to satisfy no-await-in-loop. The decompressor is a single emscripten module with one heap, so overlapping calls corrupt each other's output: two of the three fonts came back as invalid TrueType, differently on each run. The renderer does not report a font it cannot parse — it silently falls back — so the failure showed up only in the image, which rendered every line in whichever face survived. One run produced an all-sans card, the next an all-mono one. Sequential decompression is the fix, with the rule disabled on those three lines and the reason written above them. Same hashes every run. The card also takes the new headline, so it still matches the page it advertises. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
A grid or flex item defaults to min-width:auto, so it refuses to shrink below its content. An item holding a pane that scrolls sideways — a terminal, a snippet, the file strip — therefore sizes its track to the pane's full width and drags the document, fixed masthead included, wider than a phone screen. This was fixed once per item and came straight back with the monorepo block, which is the argument for making min-width:0 the default for children of grid and flex containers instead. It is written with :where(), so anything that genuinely wants a minimum still overrides it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The first version of the page restated the documentation. Refusals with their
reasoning, the version state machine, eleven exit codes, the safety guarantees,
the argument for one
vump.tomlper repository — all lifted fromREADME.mdand
DESIGN.md. That is two copies of the same claims to keep true, and afirst-time visitor reading a specification before learning what the tool is.
This cuts it back to a landing page: what does it do, does it handle my files,
how do I start. Everything deeper is a link to the repository, which stays the
only place the behaviour is written down.
What went
The defect essay, the prompting rule in long form, the transition table, the
"Refused, deliberately" cards, the exit-code grid, the safety guarantees, the
lock-file and .NET explanations, and the numbered sections — numbering reads as
a document, and this is not one.
Monorepos survive as a single block, because "does it handle my repo" is a
question someone evaluating the tool actually has.
What is there now
Four sections. Three cards saying what it does, a file picker showing the one
line that changes in your own file, a workflow snippet with the failure it
catches, and a three-step start. The page is 4,400px instead of 10,000, and the
headline commits to a plain claim — one command — instead of a promise about
tags that means nothing before you know what the tool is.
Two bugs fixed along the way
The social card was rendering from corrupted fonts. The three woff2 files
were decompressed with
Promise.all, a change made earlier to satisfyno-await-in-loop. The decompressor is a single emscripten module with oneheap, so overlapping calls corrupt each other's output — two of the three fonts
came back as invalid TrueType, differently on each run. The renderer falls back
silently rather than reporting a font it cannot parse, so the only symptom was
an image that rendered every line in whichever face survived. Sequential
decompression, with the rule disabled on those lines and the reason above them.
Layout items sized to their scrolling content. A grid or flex item defaults
to
min-width: autoand will not shrink below its content, so an item holding aterminal or snippet dragged the document wider than a phone screen. Fixed once
per item in the first branch and back immediately with the monorepo block, so it
is now the default for children of grid and flex containers, written with
:where()so anything that wants a minimum still overrides it.pnpm
Both lockfiles were in the tree after
pnpm-lock.yamllanded onmain.package-lock.jsonis gone, Prettier no longer checks the lockfile, and thecommands and the deployment workflow in
website/README.mdare pnpm.Still not deployed
Unchanged from the last branch: the base path is baked into every asset URL at
build time and the domain is not settled.
website/README.mdhas the table ofwhat to set and the workflow ready to paste.