feat(supported-networks): table refactor, tiered support chips, and per-network custom pages - #1123
Open
brandonleekramer wants to merge 11 commits into
Open
brandonleekramer wants to merge 11 commits into
brandonleekramer wants to merge 11 commits into
Conversation
Supported networks table refactor: - Merge the separate Substreams and Firehose columns into a single "Firehose/Substreams" column (they already derive from one shared support signal). Adds the firehoseSubstreams i18n header key and exposes firehoseSubstreamsSupportLevel; per-service aliases are kept for the network details page. - Render all network icons with the white "mono" variant instead of branded, so icons are uniform and legible on the dark background. Removes the MONO_ICON_NETWORKS per-network workaround list. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XdQZoMoncvZ6pNtp1d8yYT
…support chips - Add custom Supported Networks landing pages for BSC and Polygon (customContent/bsc.mdx, customContent/polygon.mdx), registered in customContent/index.ts. Each covers finding existing Subgraphs (six curated protocol cards), building your own Subgraph, and consuming data with Substreams. - Show tiered support chips in the Supported Networks table — Subgraphs (Studio/Community/Rewards) and Firehose/Substreams (Non-EVM/Base/ Extended) — in NetworksTable.tsx and utils.ts, with matching legend copy in en/index.json. - Render the "Guides" heading via Heading.H3 for consistent sizing (NetworkDetailsPage.tsx). - Load the published networks registry directly in utils.ts. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0196BWSuDAPjD34gXd1CiRXB
… redirects - Add Substreams-only custom pages for chains with Substreams (but no Subgraph) support: Ink, HyperEVM, Robinhood, Monad, World Chain, Zora, Bitcoin, Blast, Ethereum/Sepolia/Hoodi/Gnosis beacon chains, Injective, Litecoin, MegaETH, Solana (mainnet, devnet, accounts), Starknet, Stellar, TRON, TRON EVM, Vaulta, and WAX. Copy is tailored per chain family (EVM base, SVM, UTXO, Cosmos, Antelope, consensus-layer) with the correct base block model and substreams init flow. - Add a docs-only slug layer (slugs.ts) so selected networks render at friendly URLs (bitcoin, blast, ethereum-beacon, ethereum-hoodi, ethereum-sepolia, vaulta, injective, solana); getStaticPaths/getStaticProps and the table row links resolve through it. Registry ids are unchanged. - Add nginx 301 redirects from the old registry-id URLs to the new slugs. - Trim the Supported Networks CTA copy and align the tier chip blue with the CTA (galactic-500). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0196BWSuDAPjD34gXd1CiRXB
…stom pages Network header table (NetworkDetailsPage): add Subgraphs and Substreams rows above Type. Subgraphs shows Subgraph Studio linked, with a Community Indexing / Network Rewards suffix by tier; Substreams shows the block model in the label and its services.substreams providers (The Graph Market, Pinax Network) separated by a dot. Rename the last table label to "Chain Docs". Guides cards (ResourceCards): add subgraphsAndSubstreamsCards (3x3, both products), rename evmSubgraphsOnlyCards -> subgraphsOnlyCards and nonEvmCards -> substreamsOnlyCards, and remove evmCards (substreams-only EVM chains now use substreamsOnlyCards). Custom pages: add Studio-only pages for kaia, kaia-testnet, neox, neox-testnet, viction, zetachain; normalize all customContent filenames to their network id. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ms4WKyDtYzfNzYZCBorRZE
…tions
The four reusable customContent partials opened and closed their leading
JSX comment with backslash-escaped asterisks ({/\* ... \*/}), which MDX/acorn
cannot parse ("Could not parse expression with acorn"), failing the pnpm build.
Replace with valid {/* ... */} delimiters.
Verified: all 103 customContent .mdx files compile against @mdx-js/mdx 3.1.1.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ms4WKyDtYzfNzYZCBorRZE
Prettier (3.9.6) rewrites the leading {/* ... */} JSX comment in the four
reusable customContent partials into {/\* ... \*/}, escaping the asterisks.
MDX/acorn cannot parse the escaped form ("Could not parse expression with
acorn"), which failed `pnpm build` — and every `prettier` run re-introduced it,
reverting the earlier delimiter fix (commit 91423a2).
Add the four partials to .prettierignore so prettier no longer rewrites them,
and restore valid {/* ... */} delimiters.
Verified: prettier --write leaves the partials untouched, and all 103
customContent .mdx files compile against @mdx-js/mdx 3.1.1.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ms4WKyDtYzfNzYZCBorRZE
Four .fuse_hidden* files (FUSE artifacts created when open files were unlinked over the mount) were accidentally committed under customContent in 50d2f1f. Remove them from the repo and add a .gitignore rule so they can't be committed again. The real Fuse network pages (fuse.mdx, fuse-testnet.mdx) are unaffected. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ms4WKyDtYzfNzYZCBorRZE
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.
Summary
Overhauls the Supported Networks experience end to end: the
/supported-networkstable and its data model, the top-of-page network detail table, the "Guides" card
sets, and per-network custom landing pages — now componentized and expanded so
every network in the table has a custom page. Custom-page files are named by
their registry
id; all URL friendliness lives in a docs-only slug layer, and thenetworks registry itself is unchanged.
Supported Networks table (
NetworksTable.tsx,utils.ts)Firehose/Substreams column (both derived from the same support signal). The
table is now Name · Subgraphs · Firehose/Substreams.
background; removed the old
MONO_ICON_NETWORKSper-network workaround list.REWARDS(issuanceRewards: true) ·COMMUNITY(abackstopSupportprovider inservices.subgraphs, e.g. InfraDAOor StreamingFast) ·
STUDIO(Studio deploy URL only).NON-EVM·EXTENDED(
firehose.evmExtendedModel) ·BASE.STUDIO/NON-EVMwhite ·COMMUNITY/BASE#4C9EFF·REWARDS/EXTENDED#4BCA81.Network detail header table (
NetworkDetailsPage.tsx)logic as the table above.
COMMUNITY→ "Subgraph Studio (API Keys)" + "Community Indexing";REWARDS→"Subgraph Studio" + "Network Rewards";
STUDIO→ "Subgraph Studio".Non-EVM/Base EVM/Extended EVM)plus the
services.substreamsproviders (The Graph Market, Pinax Network),dot-separated.
index.jsonstring table).
Guides cards (
ResourceCards.tsx)subgraphsAndSubstreamsCards(3×3 layout for chains with both products).evmSubgraphsOnlyCards→subgraphsOnlyCardsandnonEvmCards→substreamsOnlyCards; removesevmCards(substreams-only EVM chains now usesubstreamsOnlyCards).Per-network custom pages (
customContent/)props (
chainName,title,networkId,slug,explorerUrl,explorerName,rpcUrl):_substreams-extended.mdx— extended EVM block model_substreams-base.mdx— base EVM block model_subgraph-community.mdx— publish + curation so select Indexers pick it up(
customNetwork/noStudioflags for the Anubis variant)_subgraph-studio.mdx— publishing enabled but no guaranteed network indexing yet;develop/test/query via Subgraph Studio, with a prominent caveat callout
bsc.mdx,matic.mdx) full landing pages: both Subgraph andSubstreams sections, all Subgraph Studio support language removed, a six-card grid
of verified currently-published subgraphs per chain, and an "Indexing {Chain} with
Substreams" section.
(extended); Bitcoin, Blast, Ethereum/Hoodi/Sepolia/Gnosis Beacon, Injective,
Litecoin, MegaETH, Solana (Devnet/Mainnet/Accounts), Starknet, Stellar, TRON,
TRON EVM, Vaulta, WAX (base). Copy is tailored per chain family (EVM, SVM, UTXO,
Cosmos, Starknet, Stellar, TRON, Antelope, beacon) so non-EVM/consensus pages never
reference EVM contracts or DeFi-swap examples.
kaia,kaia-testnet,neox,neox-testnet,viction,zetachain— closing the gap so every network in the table now has a custom page.xdaiidentifier should now usegnosis(redundant line removed fromsupported-networks.mdx).customContentfilenames named by their registryid(e.g.btc.mdx,eos.mdx,mainnet-cl.mdx,injective-mainnet.mdx,solana-mainnet-beta.mdx).Friendly URLs & redirects (
slugs.ts,[id].mdx,nginx.conf)slugs.ts) maps registry IDs to friendly URLs without touchingthe registry:
btc→bitcoin,blast-mainnet→blast,mainnet-cl→ethereum-beacon,hoodi-cl→ethereum-hoodi,sepolia-cl→ethereum-sepolia,eos→vaulta,injective-mainnet→injective,solana-mainnet-beta→solana(solana-accountskeepsits own page;
slugCanonicalIddisambiguates the sharedsolanaslug).getStaticPaths/getStaticPropsemit and resolve slugs; the table links to slugs.nginx.conf) from the old registry-id URLs to thenew slugs (the site uses static export).
Copy (
pages/en/index.json)firehoseSubstreamscolumn title, and theshortened callout: "Contact The Graph Foundation to integrate or request a new
network, discuss indexing rewards, or learn more about custom data solutions."
Dependency note
The
COMMUNITYtier readsbackstopSupportinsideservices.subgraphs, which shipsin the networks-registry
add-infra-backstopbranch. The docs read the registry viafromLatestVersion(), soCOMMUNITYchips populate automatically once that data ispublished; field access is narrowed at runtime, so it compiles against the current
@pinax/graph-networks-registry(string[]) types today.Testing
tsc/pnpm typecheckpasses (0 errors); Prettier clean. MDX compiles via Nextra;customContent/index.tsstays consistent (imports ↔ map ↔ files).Reviewer notes & follow-ups
returned all zeros, so query-volume ranking wasn't available).
studiochains intentionally show a "publishing enabled, no guaranteed indexing" callout.studiovariant (non-EVMgraph initflowwouldn't be accurate) — NEAR-specific variant is a follow-up.
arcscan.app, blank in registry), Snowscan,Chiliscan, Seitrace, Subscan, Stablescan, OKLink, Neo X Explorer, and Blockscout-style
explorers (Etherlink/Hemi/Japan Open Chain).
rewardssubgraph variant (indexing-rewards chains), componentizingnon-EVM Substreams sections, and the NEAR subgraph (studio) variant.
🤖 Generated with Claude Code
https://claude.ai/code/session_01Ms4WKyDtYzfNzYZCBorRZE