Repository navigation
official URLs on product pages: 157 added, 30 repaired, 4 phantom pages removed - #2913
Merged
Merged
Conversation
…es removed (#2912) * fold the cold-start slugs into their vendor, and let a URL ship without prose Two things stood between 192 product pages and an official outbound link. The cold-start cohort added yesterday gave each of its four `-cold` slugs its own product page: /products/alchemy-cold and three siblings, indexable, in the sitemap, duplicates of the real vendor with no description and no link, because the registry has no entry for a measurement arm. They are the same four vendors on a connection that is never reused, so they belong on the vendor's page. PRODUCT_ALIASES folds them, which collapses their bench appearances onto /products/alchemy and removes the four pages from generateStaticParams and the sitemap. It also restores parity with the logo-manifest ALIASES entries these slugs already carry, which the comment on PRODUCT_ALIASES says it mirrors. The other 188 were blocked by the registry type: `description` was required, so nobody could publish a provider's verified homepage without also writing a sober one-liner for it, and the result was pages with no outbound link at all. A verified URL is worth publishing on its own and the description can follow, so `description` is now optional. Every consumer already guarded it except two, both fixed here: the product page's paragraph, and the parent page's "related products" list, which took the child's display name from the first sentence of its description and now falls back to the slug. The link list also stops floating right when there is no paragraph to sit beside it, since a lone link pushed to the far edge with nothing on its left reads as a stray element. No link changes shape: withUtm already tags every rendered outbound href with utm_source=openchainbench, and the registry keeps clean URLs so the JSON, the citations and the structured data stay canonical. tsc --noEmit clean. 22 tests pass across the registry, providers and utm suites. * official URLs for 157 product pages, and repair 30 rotten ones /products/chainstack has an official link. Most product pages did not: the link block needs a registry entry, and a fetch of all 563 published pages found 192 rendering no outbound link at all. Seven of those were my own measurement error (a registry key written in quotes was invisible to the script that read the file, so aster, standx, unigox, conduit, mvx-api, mvx-gateway and xlayer-official were counted as missing while serving a link all along). The rest were real. ADDED: 157 url-only entries. Each URL was researched, then fetched and held to five conditions before it went in: it answers, its final host is the one we asked for and not somewhere it bounced to, the page carries no domain-broker boilerplate, the page names the product, and where several slugs share a host that sharing is deliberate. Several rows of one brand do share a host on purpose, which is what market-category rows (kalshi-crypto, polymarket-sports) and numbered validators (hyper-foundation-1..5) are. UPDATED: 20 existing URLs that no longer point where they should. These had rotted silently, because nothing in the build ever fetches them: ParaSwap is Velora, Avantis is Veranta, Algonode is Nodely, Swirlds Labs is Hashgraph, and avax.network, debridge.finance, everstake.one, gelato.network, moralis.io, nspcc.ru, ramp.network, smartpy.io, kamino.finance and ostium.app have all moved. OpenOcean's apex no longer serves; its app subdomain does. Nozomi's page moved from /products/ to /services/. And oktc-official pointed at www.okx.com/oktc, which 404s today along with /okc and /en/oktc, so OKT Chain falls back to the parent brand. polymarket.com is worth a note because it nearly got "fixed": it failed with an expired certificate here, and the certificate turns out to be CN=*.anj.fr, the French gambling regulator's block page served by DNS interception. The site is fine; the URL stays. DROPPED: 10 URLs whose domain is gone. Seven have no A record at all (ckbapp.dev, echosync.io, iconblockchain.xyz, trysuper.co, trojan.bot, tzbeta.net, wavesnodes.com); three resolve and serve nothing (flowbot.pro, superstack.xyz, kinto.xyz). Each was re-checked against 8.8.8.8 before being called dead, because this machine's resolver blackholes some domains and that looks exactly like an expired one: apex.exchange read as a refused connection locally and is in fact alive, so its link stays. NOT PUBLISHED, on purpose: taiyorobotics.com for graphite-protocol, which never names Graphite; hypurrscan.io for hypurrscanning, where the operator is inferred from the validator's name alone; vibeliquid.xyz, which answers 503. Joint-venture validators written a-x-b-x-c mostly have no site of their own and keep none. neutron.org is left as it is and flagged instead: every host under it, apex and www and app and docs, redirects to one tweet, and guessing a replacement would be worse than reporting it. Links need no change to carry attribution: withUtm already tags every rendered outbound href with utm_source=openchainbench, and leaves the stored URL clean so the JSON, the citations and the structured data stay canonical. The product page now renders the link only when there is one and the section only when it holds something, so a dropped URL leaves no empty row. tsc --noEmit clean. pnpm validate clean. 492 tests pass.
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.
/products/chainstackshows an official link. Most product pages did not.A fetch of all 563 published product pages found 192 rendering no outbound
link at all. The link block needs a provider registry entry, and these
providers had none; the registry type then required a
description, so nobodycould publish a verified homepage without also writing prose for it.
What this does
/products/alchemy-coldand siblings)Verification
Nothing went in because research reported it. Every URL had to answer, land on
the host we asked for rather than somewhere it bounced to, carry no
domain-broker boilerplate, and name the product on the page. Where several
slugs share a host that sharing had to be deliberate, which is what
market-category rows (
kalshi-crypto,polymarket-sports) and numberedvalidators (
hyper-foundation-1..5) are.Three checks caught my own errors rather than bad URLs, which is the reason
they exist:
apex.exchangeread as a refused connection. This machine's resolverblackholes it to 127.0.0.1; it resolves and answers through 8.8.8.8. The
site is alive and its link stays. Every "dead" domain was re-checked against
an external resolver for exactly this reason.
polymarket.comfailed with an expired certificate. The certificate isCN=*.anj.fr— the French gambling regulator's block page, served by DNSinterception. The URL stays.
invisible to the script that read the file, so
aster,standx,unigox,conduit,mvx-api,mvx-gatewayandxlayer-officialwere counted asmissing while serving a link all along. They were skipped, not overwritten.
Rot found in what was already published
Nothing in the build ever fetches these, so a link rots in silence. ParaSwap
is Velora, Avantis is Veranta, Algonode is Nodely, Swirlds Labs is Hashgraph,
and
avax.network,debridge.finance,everstake.one,gelato.network,moralis.io,nspcc.ru,ramp.network,smartpy.io,kamino.financeandostium.apphave all moved.www.okx.com/oktc404s. Ten domains are simplygone, seven of them without an A record anywhere.
Not published, on purpose
taiyorobotics.comforgraphite-protocol, whose page never names Graphite;hypurrscan.ioforhypurrscanning, where the operator is inferred from thevalidator's name alone;
vibeliquid.xyz, which answers 503. Joint-venturevalidators written
a-x-b-x-cmostly have no site of their own and keep none.neutron.orgis flagged rather than changed: every host under it, apex andwwwandappanddocs, redirects to a single tweet. Guessing areplacement would be worse than reporting it (
neutron.fiis a differentproject).
utm_source
No change needed.
withUtmalready tags every rendered outbound href withutm_source=openchainbench, and deliberately leaves the stored URL clean sothe JSON, the citations and the structured data stay canonical. It skips RPC
endpoint URLs, which a reader pastes into a config.
The phantom pages
Yesterday's cold-start cohort gave each
-coldslug its own product page:four indexable duplicates of the real vendor, with no description and no link.
They are a measurement arm, not a product.
PRODUCT_ALIASESfolds them ontothe vendor, which also restores parity with the logo-manifest aliases these
slugs already carry.
tsc --noEmitclean.pnpm validateclean. 492 tests pass.