Migrate /lp/agents to design tokens + shared components - #124
Merged
Conversation
Rewrite AgentsLandingPage from ~60 inline fontFamily/hex-color style
objects to the shared token components (Hero, LandingPrimitives,
Button, Pill, IconTile, TextLink, FeatureList, CodeBlock, Table),
matching the /lp/* pattern established by Barcelona/backup-dr/egress.
Replace the hand-rolled tabbed code viewer and regex syntax
highlighter with the shared CodeBlock component, and the raw <table>
cost breakdown with the shared Table primitive. Drop dead code
(PricingCtaBlock, unused DEV_FEATURES/COST_ROWS data).
Extend two shared components to cover gaps surfaced by this page:
- Pill: add a `neutral` tone (zinc tokens) for status pills with no
brand meaning, e.g. "Coming soon" on a card that isn't a highlight.
- LandingPrimitives: add a `size` override to SectionHeading, mirroring
SectionSub's existing override, for headings in narrower columns.
Correct marketing copy against the console technical source-of-truth
per FIL-843: the "Storage your agents can rely on" card and the
routeMeta.mjs unfurl description both claimed unsupported
verifiability ("audit-ready visibility into storage integrity",
"integrity proven daily") and geo-redundancy ("worldwide",
"distributed and redundant") — pivoted to the real GA regions (US +
EU) and standard S3 durability/no-egress framing.
Part of FIL-690.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Convert GenomicsLandingPage from a hand-rolled 218-line page (radial glow div, inline fontFamily/hex everywhere, raw <table>) to a LandingPageConfig on the shared LandingPage shell. Extend LandingPage with an optional `features` section (icon/title/ description grid via the existing FeatureCard), since this shape recurs across the remaining /lp/* pages and the shell didn't have it. Correct copy against the console technical source-of-truth (FIL-843): the hero, a problem card, and the features grid claimed "recurring integrity verification" every ~24 hours and "11 nines durability" — neither is implemented or documented anywhere in the source-of-truth doc (no CID/proof/seal on any object; no durability figure exists). Pivoted to real capabilities instead: Object Lock retention (1 day - 100 years), $0 egress on re-analysis, and flat per-TB pricing at any scale. Replaced the "integrity assumption" problem card (also premised on the fabricated verification claim) with a real differentiator (archive-tier retrieval delay). Fixed the matching routeMeta.mjs unfurl description. Part of FIL-690. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Convert MlTrainingLandingPage from a hand-rolled 237-line page to a LandingPageConfig. Dropped the fsspec/PyArrow code sample from the "proof" section — the same fsspec-compatibility claim is already stated in the features grid, and the shell has no side-by-side code+table section shape, so keeping it would mean a one-off custom section for a single page. No FIL-843 copy hits on this page — all claims are pricing math and framework compatibility, both verifiable as-is. Part of FIL-690. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Convert AgentLoopsLandingPage from a hand-rolled 266-line page to a LandingPageConfig. Dropped the boto3 code sample from the "proof" section for the same reason as ml-training: the S3-compatibility claim is already stated in the features grid, and the shell has no side-by-side code+table section shape. No FIL-843 copy hits — all claims are pricing math and framework compatibility, both verifiable as-is. Part of FIL-690. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Convert MetroLandingPage from a hand-rolled 230-line page to a LandingPageConfig. This page's whole premise was a FIL-843 hit: the hero, all three problem cards, and the features grid built the value prop around "a global network of storage providers" removing a proximity/speed tradeoff. Per the console source-of-truth doc, only two regions are GA (eu-west-1 France, us-east-1 Michigan) — there is no global network to point to. Repositioned the page's argument from geography to tiering: the real differentiator is that Fil One is always-hot, S3-compatible storage with no egress, unlike hyperscalers who charge a premium for hot storage or push you to archive tiers with retrieval delays. Rewrote the hero description, all three problem cards, and the "Global network of providers" feature accordingly. The pricing comparison table itself was untouched (pure rate-card math, no geo claim). Fixed the matching routeMeta.mjs unfurl description. Part of FIL-690. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Convert MediaLandingPage from a hand-rolled 220-line page to a LandingPageConfig. No FIL-843 copy hits — all claims are pricing math and S3-compatibility. Also fixed a real correctness bug found while converting the comparison table: the source file's own code comments recomputed the GCP and Azure 50 TB egress figures ($5,734.40 and $4,290.56) after finding the original EGRESS_ROWS values wrong, but the corrected numbers were never actually applied to the rendered table — it still showed the stale $5,222/$5,427 (GCP) and $4,096/$4,280 (Azure) figures the comments say are incorrect. Used the corrected math, which now matches the footnote's methodology exactly. Part of FIL-690. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Convert CostTickerLandingPage from a hand-rolled 172-line page to a LandingPageConfig. No FIL-843 copy hits — all claims are pricing math. No redundant pricing section to drop; this page was already lean (problem, comparison, features, closing CTA). Part of FIL-690. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Convert GamingLandingPage from a hand-rolled 195-line page to a LandingPageConfig. Reshaped the cost-at-scale table: the original had one row per scale point (1/10/100/500 TB) with separate AWS-storage/ AWS-egress/AWS-total/Fil-One columns, which doesn't fit the shared PriceComparisonTable's per-provider-row highlighting. Flipped it to rows=providers (AWS S3 Standard, Fil One), columns=scale points — same numbers, but the Fil One row now gets proper highlight treatment across all four columns. Fixed a FIL-843 hit in routeMeta.mjs (not the page itself): the unfurl description claimed "Durable, verifiable storage" — not backed by anything in the console source-of-truth doc. Replaced with the real claim (S3-compatible, zero egress). Part of FIL-690. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Convert ExitFirstLandingPage from a hand-rolled 175-line page to a LandingPageConfig. Dropped the migrate-off rclone code sample from the "proof" section (same rationale as other conversions: the S3-parity claim is already in the features grid). Fixed a FIL-843 hit: the fourth feature card claimed "Integrity- verified data... every object is verified approximately every 24 hours" — the same fabricated verification cadence used on the Genomics page, not backed by anything in the console source-of-truth doc. Replaced with a real, on-thesis claim: the exit itself is testable today, for free, rather than only discovered under duress. Part of FIL-690. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Convert AffordableLandingPage from a hand-rolled 193-line page to a LandingPageConfig. Fixed a FIL-843 hit: the fourth feature card claimed "Recurring integrity checks... every stored object is verified approximately every 24 hours" — the same fabricated verification cadence as Genomics and Exit-First. Replaced with a real, non-duplicate claim: flat per-TB pricing that doesn't change with scale. Part of FIL-690. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Convert DataControlLandingPage from a hand-rolled 169-line page to a
LandingPageConfig. This page's entire premise was built on the
fabricated "~24-hour integrity verification" claim — it appeared in
the hero, a problem card, a whole dedicated "trust" section, the
first feature card, and the closing CTA heading ("Verifiable
integrity"). None of it is backed by the console source-of-truth doc
(no CID/proof/verification exists on any object).
Repositioned "control" around what's actually real: an EU region
endpoint (eu-west-1, GA), $0 exit egress, and standard S3 tooling.
Dropped the dedicated "trust" section (its EU-endpoint and exit-cost
cards moved into features; the fabricated verification card became a
real encryption-at-rest/in-transit claim, worded to avoid implying
customer-held keys per the source-of-truth doc). Kept the
`{{NEEDS PROOF: operator-pinning capability}}` placeholder as-is —
this is one of the pages tracked by FIL-1046, not something to
fabricate an answer for. Fixed the matching routeMeta.mjs
description.
Part of FIL-690.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Convert MigrateFromS3LandingPage from a hand-rolled 633-line page to shared components (Hero, LandingPrimitives, CodeBlock, PriceComparisonTable, FeatureCard, CtaBanner, TextLink). Kept it hand-composed rather than the LandingPage config shell, same as Agents — the before/after code-diff section doesn't map onto the shell's problem/comparison/workloads/features/metrics skeleton. Reused CodeBlock's existing tabs for the two before/after snippets (Python, Node.js) instead of hand-rolled <pre> blocks. Fixed a FIL-843 hit: the fourth feature card claimed "Recurring integrity verification... every object is verified approximately every 24 hours" — the same fabricated claim found on Genomics, Exit-First, Affordable, and Data-Control. Replaced with a real, non-duplicate claim about flat pricing at any scale. Left one claim untouched: routeMeta.mjs's "Fully S3-compatible" is a separately tracked issue (FIL-890, "5 locations" sitewide) with its own scope, not part of this pass. Part of FIL-690. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Convert RagStorageLandingPage from a hand-rolled 636-line page to a LandingPageConfig. Dropped the corpus.py code sample from the "proof" section (S3-compatibility already stated in the features grid); the 2-row cost comparison maps onto the shared comparison table via a "breakdown" note column plus a total column. Fixed a FIL-843 hit in routeMeta.mjs: the unfurl description claimed "verifiable integrity" — not backed by anything in the console source-of-truth doc. Removed it, no replacement needed since the rest of the description already covers the real claims (S3-compatible, no egress). Part of FIL-690. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Convert ArchivalLandingPage from a hand-rolled 482-line page to a
LandingPageConfig. This is one of the pages FIL-843 names directly
("archival 'integrity proven daily'") — its whole premise was built
on the fabricated "~24-hour integrity verification" claim: the hero,
a problem card, a comparison-table column, a feature card, the
features section heading, and the closing CTA heading all referenced
it, plus an unverified "11 nines durability" feature.
Repositioned around what's real: no retrieval/egress fees (the
actual differentiator vs. Glacier's retrieval tiers), no archive-tier
rehydration wait, S3-compatible restore, and Object Lock retention
(1 day - 100 years) for compliance use cases. The comparison table
dropped its fabricated "integrity verification" column entirely,
keeping the three real cost columns. Fixed the matching routeMeta.mjs
title and description (also named in FIL-843's own description).
Part of FIL-690.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Convert DigitalPreservationLandingPage from a hand-rolled 470-line page to a LandingPageConfig. This page's entire thesis was the fabricated verification claim — even its title was "Preservation you can verify." Per the console source-of-truth doc, no such verification exists (no CID/proof on any object). Reframed honestly around what's real: reading the collection back costs $0 in egress, so *the customer* can run their own fixity checks as often as their program requires, instead of rationing them to once a year on metered storage. This preserves the page's real argument (infrequent fixity checks are risky and expensive elsewhere) without claiming Fil One verifies anything itself. Dropped the fabricated "11 nines durability" feature, replaced with a real one (no archive-tier rehydration delay, Object Lock retention). The comparison table's "integrity verification" column is gone entirely those three columns; three real cost columns remain. Fixed the matching routeMeta.mjs title (was literally "Preservation you can verify, not just trust") and description. Part of FIL-690. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Convert WebScrapingLandingPage from a hand-rolled 594-line page to a LandingPageConfig. Dropped the scraper.py code sample from the "proof" section (S3-compatibility already stated in the features grid), same as agent-loops/ml-training. Fixed a FIL-843 hit in routeMeta.mjs: the unfurl description claimed "S3-compatible and verifiable" — not backed by anything in the console source-of-truth doc. Removed "and verifiable." Part of FIL-690. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Convert LogRetentionLandingPage from a hand-rolled 582-line page to a
LandingPageConfig. Dropped the vector.toml code sample from the
"proof" section (S3-compatibility already stated in the features
grid).
Fixed a FIL-843 hit: the fourth feature card claimed "Tamper-evident
audit logs by default" — "tamper-evident" is explicitly in the
verifiability family the audit flags. Replaced with "Immutable audit
logs by default," which accurately describes what Object Lock does
(prevents alteration/deletion during retention) without implying
tamper detection, which doesn't exist. Left the SOC 2/ISO 27001/HIPAA
compliance-framework naming as-is — that's separately tracked under
FIL-891 ("needs a named covered entity and scope"), not this pass's
scope. Fixed the matching routeMeta.mjs "verifiable" claim.
Part of FIL-690.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Convert CheckpointsLandingPage from a hand-rolled 599-line page to a LandingPageConfig. Dropped the checkpoint.py code sample from the "proof" section (S3-compatibility already stated in the features grid). Fixed a FIL-843 hit in routeMeta.mjs: the unfurl description claimed "S3-compatible, durable, and verifiable" — not backed by anything in the console source-of-truth doc. Removed "durable, and verifiable." Part of FIL-690. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Convert MultiCloudLandingPage from a hand-rolled 609-line page to a LandingPageConfig. This is one of the pages FIL-843 names directly. Fixed the hit: the fourth feature card claimed "Integrity verification... every stored object is verified approximately every 24 hours" — the same fabricated claim seen on several other pages. Replaced with a real, non-duplicate capability (Object Lock retention, 1 day - 100 years) that also fits this page's portability/compliance angle. Fixed the matching routeMeta.mjs "verifiable" claim. Part of FIL-690. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Convert GrantFundedLandingPage from a hand-rolled 465-line page to a LandingPageConfig. This is one of the pages FIL-843 names directly. Fixed the hit: the third feature card claimed "Integrity verification, ~24 h... satisfying integrity expectations of funder data retention requirements" — the same fabricated claim seen elsewhere. Replaced with a real capability fitting this page's long-retention angle (no archive-tier rehydration wait, so whoever inherits the data after the grant closes gets instant access). Also softened two "verifiable" references in the problem-section copy that described funder *expectations* rather than a claim we make — left those as accurate descriptions of the customer's problem, since the page's actual solution is cost predictability, not verification. Fixed the matching routeMeta.mjs description. Part of FIL-690. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…laim Convert CollectionsAccessLandingPage from a hand-rolled 456-line page to a LandingPageConfig. Fixed a FIL-843 hit: the fourth feature card and routeMeta.mjs both claimed "11 nines durability" — unconfirmed anywhere in the console source-of-truth doc (no durability figure exists). Replaced with a real, on-theme capability: Object Lock retention (1 day - 100 years) for the archival master files behind IIIF derivatives. Part of FIL-690. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Convert StartupsLandingPage from a hand-rolled 578-line page to a LandingPageConfig. No FIL-843 copy hits — all claims are pricing math. Reshaped the cost-at-scale table the same way as Gaming: rows flipped from scale-points to providers (AWS S3 Standard, Fil One), columns as the four scale points, so the Fil One row gets proper highlight treatment across all columns. Part of FIL-690. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Convert Web3PivotLandingPage from a hand-rolled 233-line page to a LandingPageConfig. This page's entire thesis rested on a specific fabricated technical claim: "every stored object receives a CID and is verified via Filecoin Proof of Spacetime approximately every 24 hours." Per the console source-of-truth doc, no CID, deal, seal state, or proof exists on any customer object — this is explicitly called out as not implemented or evidenced. Repositioned around what's real and true: Fil One is genuinely an S3-compatible object storage platform built on Filecoin infrastructure (a factual architecture description, distinct from claiming per- object cryptographic proof), with no egress fees and no vendor lock-in. Dropped the before/after code-diff "proof" section (its "CID issued per object, verified on Filecoin" comment was the specific violation) and the fabricated feature card, replacing it with the honest infrastructure claim. Fixed the matching routeMeta.mjs title/description, which also claimed "decentralized" storage without evidence for the customer-facing service. Extended LandingPage's hero.badge to accept a ReactNode (not just a string), since a later Web3/agent-knowledge page needs a custom AnnouncementBadge-style "Coming soon" badge instead of a plain Pill. Discussed with the user before this rewrite, given it touches the site's Web3-audience positioning rather than a single-card fix; same treatment is planned for /lp/web3-native and /lp/web3-fintech, which carry the identical claim (and, on web3-fintech, tie it to regulatory audit-trail language for exchanges/custody providers). Part of FIL-690. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Convert Web3NativeLandingPage from a hand-rolled 251-line page to a LandingPageConfig, following the same treatment as web3-pivot. Dropped the entire "Proof/connection" section: a code sample plus a "What's verifiable" stat-card grid built around "CID per object", "Proof of Spacetime", and "11 nines durability" — none backed by the console source-of-truth doc. The problem section didn't need changes (its IPFS/Arweave/cost argument never claimed per-object verification). Fixed the one fabricated feature card and every "decentralized"/"Filecoin-backed" reference in the hero, CTA, and routeMeta.mjs title/description, replacing with the factual "built on Filecoin infrastructure" framing plus the real differentiators (no egress, no lock-in). Part of FIL-690. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Convert Web3FintechLandingPage from a hand-rolled 253-line page to a LandingPageConfig — the most aggressive of the three Web3 pages, and the one that tied the fabricated claim to regulated-audience language. Dropped the "How it works" section entirely: a code sample plus an "integrity callout" grid asserting CID issuance, Proof of Spacetime verification "continuously, on-chain," an unverified "distributed across an independent network of Filecoin storage providers... no AWS failure mode reaches the storage layer" redundancy claim, and "11 nines durability." None of this is backed by the console source-of-truth doc. Rewrote the "audit gap" problem card, which had claimed "cryptographic per-object verification is the audit trail regulators are starting to ask for" — a false compliance claim to a regulated audience (MiCA/ BitLicense). Reframed around a real, verifiable capability instead: documented data location and portability. Replaced the two fabricated feature cards with real claims (built on Filecoin infrastructure as a factual architecture description; $0 exit egress). Fixed the matching routeMeta.mjs title/description. Part of FIL-690. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Convert AgentKnowledgeLandingPage from a hand-rolled 233-line page to a LandingPageConfig. No FIL-843 copy hits. Extended two shared components to cover this page's "coming soon" feature pattern instead of hand-rolling it: - FeatureCard gained optional `badge` (status tag, e.g. "Coming soon") and `cta` (trailing waitlist link) props. - LandingPage's `features` item type and hero.badge (ReactNode, from the previous commit) now pass through to support it — this page's hero uses a real AnnouncementBadge instead of a plain Pill, and two feature cards get a neutral "Coming soon" tag plus a "Join the waitlist" link. Adapted the problem cards to ProblemCards' fixed label+catch+body shape: the original had two cards with no separate catch line (the label doubled as the heading), so added brief catch lines for those. Full test suite (112 tests) passes after the FeatureCard signature change. Part of FIL-690. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Convert DataSovereigntyLandingPage from a hand-rolled 493-line page to
a LandingPageConfig. The page's own copy was already clean (EU
endpoint, S3 compat, no egress — no fabricated claims), but its
routeMeta.mjs entry was far more aggressive than the page: "Own your
data with cryptographic proof... verifiable custody" — a full CID/
proof-style claim in the unfurl description despite the on-page copy
never making it. Rewrote to match the page's real, honest content.
Dropped the "trust/region" code-sample section (single illustrative
snippet, redundant with the features grid). Kept the
`{{NEEDS PROOF: operator-pinning capability}}` placeholder verbatim —
this is the second page carrying it (after data-control), part of the
FIL-1046 tracked set, not something to fabricate an answer for.
Part of FIL-690.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Both data-control and data-sovereignty had a fourth feature card
carrying a literal "{{NEEDS PROOF: ...}}" placeholder, inherited
as-is from the pre-migration source. This is exactly the pattern
FIL-1046 tracks as a live bug (placeholder text shipped to
production), not something to preserve — drop the slot entirely
(3-column grid) rather than fabricate a claim to fill it.
Follow-up to the data-control and data-sovereignty commits earlier in
this branch.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Convert VersioningLandingPage from a hand-rolled 216-line page to a
LandingPageConfig. This page is named directly in FIL-843's own
description ("/lp/versioning 'cryptographic integrity guarantees'"),
found in routeMeta.mjs — fixed, along with removing "Filecoin"
without qualifying it as infrastructure.
Also fixed violations of the console doc's specific versioning rules
(§13): "restore any object to an earlier point in time" and "enable
versioning" (implying a toggle on an existing bucket) are both
explicitly banned — versioning is view/download/delete only, and is
chosen once at bucket creation, not toggled later. Replaced "Restore
any prior state by version ID" with "Download any prior version by
ID" throughout (hero, CTA subhead), and reworded the features list to
say versioning is "configured when the bucket is created" rather than
implying it's an anytime toggle. Dropped the code sample, which
called `put_bucket_versioning` on an already-created bucket — exactly
the operation the doc says isn't supported.
Fixed a fabricated feature card ("Integrity verification... every 24
hours"), replacing it with a real, relevant capability: pairing
versioning with Object Lock retention.
Part of FIL-690.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Convert ComplianceLandingPage from a hand-rolled 495-line page to a LandingPageConfig. The most severe case yet: the hero itself was "Prove your data is intact. Don't take our word for it," targeting fintech/health/regulated audiences with the fabricated 24-hour verification claim — the highest-stakes audience for a false compliance claim on this whole site. Rewrote the thesis around real, demonstrable controls instead of an unverifiable promise: Object Lock (WORM) retention, version history, and encryption at rest/in transit. Reworded the problem cards that implied Fil One provides "observable integrity" verification (it doesn't) toward the real gap these controls close — untracked overwrites and missing evidence retention. Dropped the "How integrity works" section entirely (built on the fabricated ~24h cadence claim and unverified "11 nines durability"). Preserved and promoted the one genuinely good piece of copy on this page: an honest "Cert status: in pursuit" disclosure stating Fil One does not hold SOC 2 Type II or ISO 27001 today. This is exactly the kind of accurate, unhedged compliance copy the audit wants — moved it into the primary features grid instead of leaving it buried in a section being cut. Part of FIL-690. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Convert GoGlobalLandingPage from a hand-rolled 170-line page to a LandingPageConfig. Reshaped the cost-at-scale table the same way as Gaming/Startups: rows flipped from scale-points to providers. Fixed a Metro-style geo overclaim: the problem section and hero description claimed embedding Fil One gives customers a "global network" / "global storage layer" — only two regions are GA (US + EU) per the console source-of-truth doc, not a global network. Reworded to the real claim (multi-region, US and EU) while keeping the "go global" framing where it describes the *customer's own product* reaching a global audience over the internet, which doesn't depend on how many storage regions sit underneath it. Fixed the matching routeMeta.mjs description. Part of FIL-690. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
… claims
Convert RegionalCloudLandingPage from a hand-rolled 154-line page to
a LandingPageConfig. Dropped the fourth feature card, which carried
a literal "{{NEEDS PROOF: specific regions and geographies...}}"
placeholder — same treatment as data-control and data-sovereignty,
per instruction not to preserve these (3-column grid instead of
fabricating an answer).
Also fixed a geo overclaim: the hero said "Offer global storage
without building it" while the page's own badge targets "regional or
sovereign cloud offerings" — internally inconsistent, and "global"
isn't supported (only US + EU are GA). Reworded to "production-grade
storage" and softened "Our network underneath" to "Our storage layer
underneath" in the closing CTA. Fixed the matching routeMeta.mjs
description, which also claimed "globally distributed... verifiably
durable."
Folded the separate "Network/SLA" section's three cards into the
main features grid (both covered the same three claims — SLAs, S3
compatibility, flat pricing — so keeping both was redundant).
Part of FIL-690.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Convert AgentReadableLandingPage from a hand-rolled 152-line page to
shared components (Hero, LandingPrimitives, ProblemCards, FeatureCard,
CodeBlock, CtaBanner). Kept it hand-composed rather than the
LandingPage config shell, same as Agents/MigrateFromS3/AgentReadable's
own llms.txt sample — the code block here isn't a supplementary
example, it's the page's actual thesis ("here's literally what your
agent reads"), so it stays via the shared CodeBlock component instead
of being dropped.
No FIL-843 copy hits — every claim on this page (llms.txt, flat
pricing, S3 parity) is real and already accurate.
This was the last of the 30 tracked /lp/* pages queued after
/lp/agents. Part of FIL-690.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
gmoranxyz
approved these changes
Aug 19, 2026
…e-lp-agents # Conflicts: # src/pages/AffordableLandingPage.tsx # src/pages/AgentKnowledgeLandingPage.tsx # src/pages/AgentLoopsLandingPage.tsx # src/pages/AgentReadableLandingPage.tsx # src/pages/AgentsLandingPage.tsx # src/pages/ArchivalLandingPage.tsx # src/pages/CheckpointsLandingPage.tsx # src/pages/CollectionsAccessLandingPage.tsx # src/pages/ComplianceLandingPage.tsx # src/pages/CostTickerLandingPage.tsx # src/pages/DataControlLandingPage.tsx # src/pages/DataSovereigntyLandingPage.tsx # src/pages/DigitalPreservationLandingPage.tsx # src/pages/ExitFirstLandingPage.tsx # src/pages/GamingLandingPage.tsx # src/pages/GenomicsLandingPage.tsx # src/pages/GoGlobalLandingPage.tsx # src/pages/GrantFundedLandingPage.tsx # src/pages/LogRetentionLandingPage.tsx # src/pages/MediaLandingPage.tsx # src/pages/MetroLandingPage.tsx # src/pages/MigrateFromS3LandingPage.tsx # src/pages/MlTrainingLandingPage.tsx # src/pages/MultiCloudLandingPage.tsx # src/pages/RagStorageLandingPage.tsx # src/pages/RegionalCloudLandingPage.tsx # src/pages/StartupsLandingPage.tsx # src/pages/VersioningLandingPage.tsx # src/pages/Web3FintechLandingPage.tsx # src/pages/Web3NativeLandingPage.tsx # src/pages/Web3PivotLandingPage.tsx # src/pages/WebScrapingLandingPage.tsx
A merge-conflict resolution script inserted the import inside a Go code sample string instead of the top-level import block.
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
AgentsLandingPageoff ~60 inlinestyle={{ fontFamily, color: "#..." }}objects onto the shared token components (Hero,LandingPrimitives,Button,Pill,IconTile,TextLink,FeatureList,CodeBlock,Table) — the same pattern used by Barcelona, backup-dr, and egress.CodeBlock, and the raw<table>cost breakdown with the sharedTableprimitive. Removes dead code (PricingCtaBlock, unusedDEV_FEATURES/COST_ROWS).Pill: adds aneutraltone (zinc tokens) for status pills with no brand meaning (e.g. "Coming soon" on a card that isn't itself a highlight).LandingPrimitives: adds asizeoverride toSectionHeading, mirroring the overrideSectionSubalready has, for headings that sit in a narrower column than the standard section width.routeMeta.mjsunfurl description both claimed unsupported verifiability ("audit-ready visibility into storage integrity", "integrity proven daily") and geo-redundancy ("worldwide", "distributed and redundant"). Pivoted to the real GA regions (US + EU) and standard S3 durability/no-egress framing, matching the pattern from the FIL-818 (enterprise-backup) fix.Part of FIL-690.
Test plan
tsc --noEmitpasseseslinton changed files passes (no new warnings)🤖 Generated with Claude Code