Skip to content

Consolidate the site onto fewer, truer pages - #129

Draft
filipagr wants to merge 23 commits into
mainfrom
filipa/website-updates
Draft

filipagr wants to merge 23 commits into
mainfrom
filipa/website-updates

Conversation

@filipagr

@filipagr filipagr commented Sep 22, 2026 •

Copy link
Copy Markdown
Collaborator

Eleven pages became three. Along the way, a code audit of the app repo forced a lot of marketing copy to change.

Pages removed

Removed Goes to
/storage / (its content is now the homepage below the press bar)
/bucket-intelligence, /ai-agent-toolkit /
/waitlist/bucket-intelligence, /waitlist/ai-agent-toolkit /
/enterprise / (now a section on the homepage)
/solutions/ai-training /solutions#ai
/solutions/media-archive /solutions#media
/solutions/enterprise-backup /solutions#backup
/solutions/web3-dapps /solutions

All of them 301 in vercel.json. The sitemap and prerender list derive from routes.tsx, so they follow automatically.

Deleted with them: SolutionPage, ProductsSection, ProductCard, DeveloperSection, and AiCapabilitiesSection, which was already dead code.

Pages added

  • /solutions replaces four near-identical pages that carried 24 feature cards and 16 use-case cards between them. Six workload sections, a shared platform grid, a four-step start. Each workload is anchored so the old URLs land on the section that replaced them.
  • /neocloud is the GPU-cloud pitch, built from the internal deck. /partners still covers the channel, technology and MSP roles.

Homepage

Everything below the press carousel is now the old Storage page body, closing on the original CtaSection. New Enterprise band after the pricing teaser, then the partner door, then FAQ. New hero: "Sovereign storage for the AI age". FAQs come from #128.

Claims removed, and why

An audit of fil-one/fil-one found no CID, proof or verification code anywhere. The one on-chain UI is deliberately dead code, and the audit log explicitly dropped tamper-evidence. So these are gone site-wide:

  • every "verifiable integrity", "verifiable provenance", "cryptographic seal" and "data integrity verification" claim
  • the comparison table row asserting integrity verification for us while marking Backblaze and Wasabi down for it, against two vendors who both publish checksum verification
  • "multi-region redundancy" (two regions are two independent operators, no replication)
  • "WORM compliance" and "sustained multi-Gbps reads"
  • durability now reads "designed for", the way AWS, Wasabi and Scaleway all phrase it

Object lock is described as it actually works: governance or compliance retention with versioning, set at bucket creation.

Comparison table

Rebuilt around published terms. Five of the eight rows were ticks in every column. Every cell is now a value taken from the vendor's own pricing page, with a dated footnote linking all four sources. Cloudflare R2 gains a column as the other genuinely zero-egress provider. Storj is excluded: no longer active.

Navigation

Products and Solutions dropdowns are gone, so the Radix navigation-menu scaffolding went with them. Nav is now Solutions, Neoclouds, Pricing, Partners, About, Blog, Docs, in a single row with Docs moved out of the utility bar.

Since the first draft

  • Design tokens and cleanup: pages move onto the token scale and shared primitives, and the unused shadcn/ui kit, its hooks and about 40 dependencies are removed. So are the retired sections (HeroSection, CtaSection, IntroSection, SavingsSection, NavLink) and QueryClientProvider.
  • Homepage and polish: the hero moves onto a brand-blue card. This also covers the Solutions tab indicator, closing-banner balance, form field states, the full-height mobile menu and a sharp 2x console screenshot.
  • Remaining claims: About no longer claims independently verified fingerprints, "you hold the keys", or that data never depends on a single company. /lp/barcelona and /lp/es/barcelona drop "tamper-evident audit logs" and "replicated across locations".
  • SEO descriptions: "verifiable" and "proven daily" are gone from the homepage, Organization and Product JSON-LD, /partners, /partners/apply, /about and /lp/backup-dr meta. Durability reads "designed for 11 nines", and index.html's fallback matches.
  • llms.txt and llms-full.txt: the CID and Proof of Spacetime claims are replaced with what the product does. The S3 operation list carries the docs' regional caveats, addressing is path-style only, and the trial row names the 2 TB egress allowance. Neoclouds, Partners and About are added.
  • Trial egress: the egress FAQ now says to upgrade to keep downloading after the trial's 2 TB. The console disables the account at the cap.
  • S3 endpoint: samples and the llms files quote s3.eu-west-1.filonecontent.com, the hostname format the console has built since 2026-09-10.
  • /neocloud/apply: connected to its HubSpot form, with the GPU and timeline fields mapped to the contact properties HubSpot uses. A test submission went through.
  • Repo docs: the README is rewritten for the current stack, routes and forms. landing-page-framework.md loses its "cryptographic audit trail" recommendation and gains a claims guardrail. SITE-AUDIT-2026-07-17.md is removed, since its findings live in Linear.
  • Price: $5.99 per TB and a $5.99 minimum, as separate constants.

Checks

tsc, eslint and 145 tests clean, and the production build and prerender pass. Each page verified in the browser at desktop and 375px.

Open questions

  • The homepage stat grid still reads "11 9s Durability" as a bare number.
  • src/lib/pricing.ts has its own COMPETITORS table feeding the cost calculator. It now duplicates five figures with the comparison table and models Wasabi's egress as unconditionally free, which the new table contradicts. Worth consolidating.
  • /lp/agents and /lp/agent-knowledge still market the Agent Toolkit as coming soon.
  • filone-docs still lists <region>.s3.fil.one endpoints, which match neither the console nor this site.

🤖 Generated with Claude Code

filipa-filecoin and others added 12 commits September 21, 2026 20:52
The site carried five pages that each described one slice of the product:
/storage, /bucket-intelligence, /ai-agent-toolkit, their two waitlists, and
/enterprise. Fold what's still true into the homepage and drop the rest.

- Homepage: everything below the press carousel is now the Storage page's
  body (stats, features, integrations, use cases, comparison, pricing
  teaser), keeping the original CtaSection as the closer.
- New EnterpriseSection carries the Enterprise page's six capabilities as a
  two-column split with a hairline-divided list, placed after the pricing
  teaser so the funnel runs self-serve pricing to enterprise terms to FAQ.
- Hero: new headline and description; the Bucket Intelligence announcement
  badge is gone along with the products it pointed at.
- FAQs come from the FIL-1241 branch; include lists on /pricing and the
  solution pages are repointed at questions that still exist.
- Navbar: Products dropdown removed (it would have been empty), Enterprise
  removed, and Documentation moves out of the utility bar into the main
  navbar as "Docs".
- 301s send every removed URL to /.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Lifted from the FIL-1241 branch, extracted into PartnersSection so the
homepage keeps its one-component-per-section shape. Sits directly after the
Enterprise band: both speak to people who won't self-serve, and the dark
treatment breaks up the long light run before the FAQ.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Four near-identical pages on a shared scaffold, 24 feature cards and 16
use-case cards of copy, for four audiences. Now one page with six workload
sections, a shared platform grid, and a four-step start.

A code audit of the app repo drove the copy. Claims dropped because nothing
implements them: cryptographic verification, CIDs, proofs, "verifiable
integrity" and "verifiable provenance"; multi-region redundancy (two
independent regions, no replication); WORM compliance wording; sustained
multi-Gbps reads; named integrations (Veeam, PyTorch, DaVinci Resolve,
ethers.js). Object lock is now described as it works: governance or
compliance retention, set at bucket creation, alongside versioning.

Web3 drops as a top-level audience. Storj, the nearest decentralized peer,
sells durability and cost rather than decentralization, and our own FAQ
already says we support neither IPFS nor CIDs.

Nav: Solutions becomes a plain link, so the dropdown machinery goes with it.
Footer moves Solutions into Company. Old URLs 301 to the section anchors.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The GPU-cloud pitch, built from the internal deck and kept to what the
product can actually back. /partners still covers the channel, technology
and MSP roles; this is the operator story, including storage installed in
their own facility, which the Forge appliance path in the app makes real.

Left out of the deck as non-publishable: latency and throughput figures,
the egress cost arithmetic, wholesale rates and margin, launch-partner
exclusivity, the 2026 rollout, the NVMe/HDD tier split (no storage classes
exist), and the Filecoin proof and sovereignty slides.

Linked from the main navbar as "Neoclouds" and from the footer next to
Partners.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The comparison table asserted integrity verification for Fil One and marked
Backblaze and Wasabi down for it. There is no CID, proof or verification
code in the app, and both vendors publish checksum verification, so the row
is gone rather than re-rated.

Two homepage sections carried the same claim: "audit-ready integrity" and
"verifiable data integrity" in the features band, and "Every backup is
verified daily" in the use cases. Durability now reads as designed-for, the
way AWS, Wasabi and Scaleway all state it, and the backup card sells what is
real: versioning, and restores that carry no egress charge.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The deck's commercials slide promises your brand on the console, the docs
and the S3 endpoint, with per-bucket metering exported into your billing.
Taking the deck as the source of truth for the partner offer, so the page
claims both instead of the softened commercial-only version.

Also restores the security and compliance FAQ, whose wording attributes the
certifications to the data centers rather than to Fil One.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Partners page: "daily, audit-ready integrity proof" becomes durability
stated as designed-for, credited to the independent regional operators that
actually run the storage.

Pricing page: "Data integrity guarantees" in both plan lists becomes object
lock and versioning, which the product implements.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Five of the eight rows were ticks in every column, which persuades nobody,
and two made negative calls on named vendors with nothing behind them.

Every cell now carries a value rather than a symbol: a price, a rate, a
duration, each one taken from that vendor's own pricing page and linked in
a dated footnote. The glyph is a scan aid, and green appears on competitor
columns too, so the table reads as a record of published terms instead of
a scorecard. Rows: storage price, egress, request charges, minimum storage
duration, account minimum, storage classes, retrieval fees.

Cloudflare R2 gains a column. It is the other genuinely zero-egress
S3-compatible provider, so leaving it out would look evasive, and it still
costs three times as much per TB and charges per operation.

Our own $4.99 account minimum is in the table, marked as a caveat, next to
Wasabi's 1 TB minimum and 90-day retention floor.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The check, dash and cross graded every cell on top of text that already
said what the term was, and a green check next to a competitor's figure
read as praise for them rather than context. Cells are now values alone.
Fil One's column keeps its white card, brand-blue price and near-black
text, which is enough to say whose table this is.

Prices drop from 22px to 17px so the row sits with the rest of the table
instead of shouting over it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
960px was cramping six columns of published terms into three and four
line cells. At max-w-container most cells fit on one or two lines, and the
feature column gets 200px so the row labels stop wrapping mid-phrase.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Sep 22, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
fil-one Ready Ready Preview Sep 24, 2026 7:06pm UTC

Request Review

filipa-filecoin and others added 3 commits September 23, 2026 10:46
- Replace the white grid hero with a brand-blue card, with background and
  bottom glow as hero-card-brand / hero-card-glow tokens
- Fold the utility bar into a single nav row, widen link spacing, rename
  the CTA to "Talk to sales", and add a floating support button
- Drop the secondary CTA from the Solutions hero
- Raise PRICE_PER_TB to 5.99

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Move pages and shared components onto design tokens (type scale,
  colors) and shared primitives
- Remove the unused shadcn/ui components, hooks, and ~40 dependencies
- Remove retired sections and assets (HeroSection, CtaSection,
  IntroSection, PricingTeaserSection, feature PNGs) in favor of CtaBanner
  and SplitFeatureSection
- Add the Neocloud apply page and shared form validation
- Update SEO route meta, prerender, and llms.txt
- Separate the monthly minimum constant from the per-TB rate
- Fix the missing SectionLabel/SectionHeading import that blanked the
  homepage, and restore the side-by-side "No surprises" layout

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Slide the active pill on the Solutions workload tabs, and fade the
  track edge that has hidden tabs when it scrolls on mobile
- Add an external-link arrow to the "Read the docs" buttons
- Balance closing-banner headings and subheads (new subheadMaxWidth
  prop, balanced wrapping) on the homepage, Solutions, and Partners, and
  break the Pricing subhead before the price
- Use the secondary button for every SplitFeatureSection CTA
- Form fields rest on the light border and darken to the 3:1 `input`
  token on hover; radios and checkboxes keep the 3:1 border
- Rename the neocloud form heading to "Talk to our neocloud team"
- Mobile menu: full-bleed and full-height, locks page scroll, closes on
  Escape and at the desktop breakpoint, inset focus ring, links aligned
  with the logo
- Move the user-generated content card last on mobile
- Align the mobile comparison rows: centred price rows, baseline text
  rows, no line-height strut on the provider label

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Re-export the Buckets screenshot from a 4x capture as WebP (q90):
  2400w for the 1120px container on 2x screens, 1200w for phones
- Serve both via srcset/sizes and update the intrinsic dimensions

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The egress FAQ named the 2 TB trial allowance but not that it is a hard
cap: the console disables the account once it is reached and restores
access on upgrade. One clause makes the limit read as a limit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
filipa-filecoin and others added 2 commits September 24, 2026 13:07
The homepage, Organization and Product JSON-LD, /lp/backup-dr, /partners,
/partners/apply and /about descriptions still said "verifiable" or
"proven daily". Durability now reads as designed-for, matching the page
copy. index.html's fallback description changes with them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
llms.txt and llms-full.txt still made the claims this branch removed from
every page: CIDs, Proof of Spacetime, verifiable integrity and
tamper-evident logs. They now describe what the product does: designed-for
durability, object lock and versioning, operator-held encryption keys, and
two independently operated regions. The S3 operation list now carries the
docs' regional caveats (CreateBucket, DeleteBucket and CopyObject), and
addressing is path-style only. The trial row names the 2 TB egress
allowance, the page lists add Neoclouds, Partners and About, and the Python
samples import what they use.

README: current stack, structure, scripts, routes/SEO sources, HubSpot
forms (including the unset neocloud GUID) and the repo URL.

landing-page-framework.md: drop the recommended "independently verifiable
storage with a cryptographic audit trail" line, add a claims guardrail to
the proof-points section, and use the current CTA labels.

(SITE-AUDIT-2026-07-17.md was removed in the previous commit; its findings
are tracked in Linear.)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
filipa-filecoin and others added 2 commits September 24, 2026 16:00
About still said every object carries an independently verified
fingerprint, that "you hold the keys", and that your data never depends on
any single company. None of that holds: there is no CID or verification
code, keys are held by the regional operator, and each region is one
operator. The story and pillars now sell what is real: flat pricing with
zero egress, object lock and versioning, S3 portability, and independent
regional operators.

/lp/barcelona and /lp/es/barcelona: "tamper-evident audit logs" and
"replicated across locations" become governance or compliance retention
with versioning, and durability stated as designed-for.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The console has built production endpoints as s3.<region>.filonecontent.com
since 2026-09-10 (getS3Endpoint in fil-one/fil-one). The site still quoted
eu-west-1.s3.filonecontent.com. Both resolve today, but s3-endpoint.ts is
meant to track the console, so samples and the llms files now use
s3.eu-west-1.filonecontent.com.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The form now exists (65ce81c3), so the null-GUID guard that sent visitors
to /contact-sales instead is gone.

Field mapping follows the properties as HubSpot has them: GPU location,
fleet size and start timeline are contact properties
(where_are_your_gpus_located, gpu_fleet_size,
when_are_you_looking_to_start), not company ones, and two of them carry
different internal names than the page assumed. Company name and the
business description stay on the company object. Dropdown values already
matched the properties' option values.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch was successfully deployed

1 active deployment
Preview — b722d612 Deployed Sep 24, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants