feat: the detail-page skeleton, built for real on network pages - #66
Merged
Conversation
The mockup was a picture. This is the thing.
/networks/[slug] was the weakest of the three detail pages — 184 lines,
no section headings, no JSON-LD, no verification status, and nothing
telling a reader how you actually join. It now fills all seven slots, so
it is the reference the other two get rewritten against.
What appeared:
Identity gains a kind badge. Marketplaces publish a directory you
browse; affiliate software has none, the brand runs its
own program on it. /networks/dub and
/networks/partnerstack looked like the same kind of page
and a reader had no way to learn there is nothing to
browse on the first.
Answer one sentence at the top, the line a reader or an engine
would quote.
Facts reads the typed commission. "Average" became "Verified" —
an average taken across a set where a quarter published
no figure is not a number worth showing.
Questions three h2s answered in their first sentence, generated
from the registry so they cannot go stale. Including one
that explains why rows say "Not published", which is the
obvious question the typed field creates.
Status N of M verified, stated rather than implied.
Machine CollectionPage JSON-LD with the program list. Program
pages have carried this since launch; category and
network pages never did, so an assistant had nothing
structured to cite them from.
Averages now come from programs that published a figure. Counting an
unknown as zero is how a network of mostly-unpublished programs ends up
advertising an average it never earned.
Four things the first render exposed that reading the code would not
have: "dub is affiliate software" mid-sentence, since stored values are
lowercase slugs and CSS capitalize cannot reach inside a generated
string; "1 of 3 program" from agreeing the noun with the difference
instead of the total; and the Highest card blown out by a hybrid rate
string, now showing the typed number.
tsc 0, build 884 static pages.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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 mockup was a picture. This is the thing — click the Vercel preview below.
/networks/[slug]was the weakest of the three detail pages: 184 lines, no section headings, no JSON-LD, no verification status, and nothing telling a reader how you actually join. It now fills all seven slots, so it becomes the reference the other two get rewritten against.What appeared
Identity gains a kind badge. Marketplaces publish a directory you browse; affiliate software has none — the brand runs its own program on it.
/networks/duband/networks/partnerstacklooked like the same kind of page, and a reader had no way to learn there is nothing to browse on the first.Answer — one sentence at the top, the line a reader or an engine would quote.
Facts read the typed commission. "Average" became "Verified" — an average taken across a set where a quarter published no figure is not a number worth showing.
Questions — three h2s answered in their first sentence, generated from the registry so they cannot go stale. Including one that explains why rows say "Not published", which is the obvious question the typed field creates.
Status — N of M verified, stated rather than implied.
Machine — CollectionPage JSON-LD with the program list. Program pages have carried this since launch; category and network pages never did, so an assistant had nothing structured to cite them from.
A correctness fix that came with it
Averages now come from programs that published a figure. Counting an unknown as zero is how a network of mostly-unpublished programs ends up advertising an average it never earned.
Four things only rendering it caught
dub is affiliate softwaremid-sentence — stored values are lowercase slugs and CSScapitalizecannot reach inside a generated string1 of 3 program— the noun agreed with the difference instead of the totalReading the code would not have surfaced any of them.
tsc0 · build 884 static pages.🤖 Generated with Claude Code