Files
claudemesh/apps/web/src/modules/marketing/home/hero-with-mesh.tsx
Alejandro Gutiérrez 64d9f9f6f9
Some checks failed
CI / Typecheck (push) Has been cancelled
CI / Lint (push) Has been cancelled
CI / Broker tests (Postgres) (push) Has been cancelled
CI / Docker build (linux/amd64) (push) Has been cancelled
feat(web): refresh marketing site — accurate timeline, live changelog, cross-boundary positioning
The site had drifted ~6 months behind the product. Three problems
addressed in one push:

1. Timeline ("Shipped, not promised") topped out at v0.6–0.8 and
   claimed "66 npm releases" — both stale. Adds a v0.9 → 1.34 tier
   covering daemon, multi-mesh, multi-session correctness train,
   refuse-to-kick on control-plane, env-var fallback. Updates count
   to "120+ npm releases through v1.34.15." Rewrites the "next"
   block from the now-shipped "Daemon redesign · per-topic
   encryption" to the actually-pending "HKDF cross-machine identity
   · session capabilities · A2A interop · self-host packaging ·
   federation."

2. Hero subhead leaned into the original "Claude Code peer mesh"
   framing, which is undercut by Anthropic Agent Teams (Feb 2026,
   single-machine native mailbox). Now reframes claudemesh as the
   encrypted backbone where Claude Code sessions, autonomous
   agents, and humans coordinate "across machines, across users,
   across organizations" — the four words that distinguish the
   product from anything Anthropic structurally can ship from
   inside Claude Code.

3. /changelog had three entries from April 2026 (v0.1.2 → v0.1.4)
   and was 70+ versions out of date. Replaced with a curated
   16-entry timeline from v0.1.0 → v1.34.15, hand-picked to tell
   the story (load-bearing ships, not every patch). Adds links
   back to docs/roadmap.md, .artifacts/specs/, and GitHub Releases.

New module: apps/web/src/modules/marketing/home/changelog-data.ts
holds the curated entries as a single source of truth. Imported by
both the /changelog page and a new home-page component
LatestReleases (compact 5-entry strip, slotted between Timeline
and Pricing) so they never disagree.

Misc fixes pulled in:
- timeline.tsx had glyph="layers" which isn't in SectionIcon's
  valid set; switched to "grid" (changelog-data.ts uses same).
- changelog data extracted to a non-route module so Next.js's
  route-export validator stops complaining about exporting
  CHANGELOG_ENTRIES from app/.../changelog/page.tsx.

Pre-existing typecheck noise in packages/ui/web/sidebar.tsx
(csstype version mismatch) + billing modules unrelated to this
change. My files all typecheck clean.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 22:55:30 +01:00

120 lines
4.7 KiB
TypeScript

import Link from "next/link";
import { HeroMeshAnimation } from "./hero-mesh-animation";
import { Reveal, SectionIcon } from "./_reveal";
export const HeroWithMesh = () => {
return (
<section className="relative overflow-hidden border-b border-[var(--cm-border)] bg-[var(--cm-bg)]">
{/* Full-bleed mesh animation as hero background */}
<div className="pointer-events-none absolute inset-0 z-0">
<div className="absolute inset-0">
<HeroMeshAnimation fit="cover" />
</div>
{/* Radial vignette: dark where text sits, transparent at the edges
so the corner peers keep pulsing visibly */}
<div
className="absolute inset-0"
style={{
background:
"radial-gradient(ellipse 900px 540px at 50% 38%, rgba(5,5,5,0.92) 0%, rgba(5,5,5,0.75) 38%, rgba(5,5,5,0.3) 68%, rgba(5,5,5,0) 100%)",
}}
/>
{/* Top/bottom fades so the animation bleeds into surrounding sections */}
<div
className="absolute inset-x-0 top-0 h-32"
style={{
background:
"linear-gradient(to bottom, rgba(5,5,5,0.85) 0%, rgba(5,5,5,0) 100%)",
}}
/>
<div
className="absolute inset-x-0 bottom-0 h-32"
style={{
background:
"linear-gradient(to top, rgba(5,5,5,0.95) 0%, rgba(5,5,5,0) 100%)",
}}
/>
</div>
<div className="relative z-10 mx-auto flex max-w-[var(--cm-max-w)] flex-col items-center px-6 py-24 md:px-12 md:py-32">
<Reveal className="mb-8">
<SectionIcon glyph="mesh" />
</Reveal>
<Reveal delay={1}>
<h1
className="max-w-4xl text-center text-[clamp(2.75rem,7vw,5.25rem)] font-medium leading-[1.08] tracking-tight text-[var(--cm-fg)]"
style={{
fontFamily: "var(--cm-font-serif)",
textShadow: "0 2px 30px rgba(0,0,0,0.85)",
}}
>
Your Claude Code sessions{" "}
<span className="text-[var(--cm-clay)]">work alone.</span>
<br />
<span className="text-[var(--cm-fg-secondary)]">
claudemesh connects them.
</span>
</h1>
</Reveal>
<Reveal delay={2}>
<p
className="mx-auto mt-8 max-w-2xl text-center text-lg leading-[1.65] text-[var(--cm-fg-secondary)] md:text-xl"
style={{
fontFamily: "var(--cm-font-serif)",
textShadow: "0 2px 20px rgba(0,0,0,0.8)",
}}
>
The encrypted backbone where Claude Code sessions, autonomous
agents, and humans coordinate across machines, across users,
across organizations. Hosted on claudemesh.com or self-hosted in
your VPC. Same CLI, same wire, your choice.
</p>
</Reveal>
<Reveal delay={3}>
<div className="mt-10 flex flex-col items-stretch gap-3 sm:flex-row sm:items-center">
<Link
href="/auth/register"
className="group inline-flex items-center justify-center gap-2 rounded-[var(--cm-radius-xs)] bg-[var(--cm-clay)] px-5 py-3 text-[15px] font-medium text-[var(--cm-fg)] shadow-[0_10px_40px_rgba(215,119,87,0.35)] transition-colors duration-300 hover:bg-[var(--cm-clay-hover)]"
style={{ fontFamily: "var(--cm-font-sans)" }}
>
Start free
<span className="transition-transform duration-300 group-hover:translate-x-0.5">
</span>
</Link>
<div
className="flex items-center gap-2 rounded-[var(--cm-radius-xs)] border border-[var(--cm-border)] bg-[var(--cm-bg-elevated)]/85 px-4 py-3 text-[13px] text-[var(--cm-fg-secondary)] backdrop-blur-md"
style={{ fontFamily: "var(--cm-font-mono)" }}
>
<span className="text-[var(--cm-clay)]">$</span>
<span>curl -fsSL claudemesh.com/install | bash</span>
</div>
</div>
</Reveal>
<Reveal delay={4}>
<p
className="mt-14 text-center text-sm text-[var(--cm-fg-tertiary)]"
style={{
fontFamily: "var(--cm-font-sans)",
textShadow: "0 2px 16px rgba(0,0,0,0.8)",
}}
>
Open-source CLI · Free during public beta ·{" "}
<Link
href="https://github.com/alezmad/claudemesh-cli"
className="underline decoration-[var(--cm-fg-tertiary)] underline-offset-4 transition-colors hover:text-[var(--cm-fg)] hover:decoration-[var(--cm-clay)]"
>
View source
</Link>
</p>
</Reveal>
</div>
</section>
);
};