From 5df2664baed04832011c8012e8fb0e3a88f2a794 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Guti=C3=A9rrez?= <35082514+alezmad@users.noreply.github.com> Date: Fri, 10 Apr 2026 02:00:27 +0100 Subject: [PATCH] feat(web): rewrite hero (pain-first) + streamline page + enterprise tier MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hero: 'Your Claude Code sessions work alone. claudemesh connects them.' Three pain cards (context dies, teams relay by hand, setup per developer). Solution paragraph focuses on shared wire with E2E encryption. Page: removed 5 redundant sections (Surfaces, LaptopToLaptop, MeshVsMcp, MeetsYou, BeyondTerminal, DemoDashboard). Kept the strongest: Hero, Features, WhatIsClaudemesh, Timeline, Pricing, FAQ, CTA, MeshStats. Pricing: added Enterprise tier with Contact sales → info@claudemesh.com. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../web/src/app/[locale]/(marketing)/page.tsx | 19 +-- apps/web/src/modules/marketing/home/hero.tsx | 122 ++++++++++-------- .../src/modules/marketing/home/pricing.tsx | 30 +++++ 3 files changed, 99 insertions(+), 72 deletions(-) diff --git a/apps/web/src/app/[locale]/(marketing)/page.tsx b/apps/web/src/app/[locale]/(marketing)/page.tsx index 346ffea..aad02e5 100644 --- a/apps/web/src/app/[locale]/(marketing)/page.tsx +++ b/apps/web/src/app/[locale]/(marketing)/page.tsx @@ -1,22 +1,13 @@ import { Hero } from "~/modules/marketing/home/hero"; -import { Surfaces } from "~/modules/marketing/home/surfaces"; -import { Pricing } from "~/modules/marketing/home/pricing"; -import { LaptopToLaptop } from "~/modules/marketing/home/laptop-to-laptop"; import { Features } from "~/modules/marketing/home/features"; -import { MeshVsMcp } from "~/modules/marketing/home/mesh-vs-mcp"; -import { MeetsYou } from "~/modules/marketing/home/meets-you"; -import { BeyondTerminal } from "~/modules/marketing/home/beyond-terminal"; -import { DemoDashboard } from "~/modules/marketing/home/demo-dashboard"; import { WhatIsClaudemesh } from "~/modules/marketing/home/what-is-claudemesh"; import { Timeline } from "~/modules/marketing/home/timeline"; +import { Pricing } from "~/modules/marketing/home/pricing"; import { FAQ } from "~/modules/marketing/home/faq"; import { CallToAction } from "~/modules/marketing/home/cta"; import { MeshStats } from "~/modules/marketing/home/mesh-stats"; import { LatestNewsToaster } from "~/modules/marketing/home/toaster"; -// Revalidate the page every 60s so the mesh-stats counter stays fresh -// without hammering the DB. The /api/public/stats endpoint has its own -// 60s in-memory cache too. export const revalidate = 60; const HomePage = () => { @@ -26,16 +17,10 @@ const HomePage = () => { style={{ fontFamily: "var(--cm-font-sans)" }} > - - - - - - - + diff --git a/apps/web/src/modules/marketing/home/hero.tsx b/apps/web/src/modules/marketing/home/hero.tsx index a98936e..a6033be 100644 --- a/apps/web/src/modules/marketing/home/hero.tsx +++ b/apps/web/src/modules/marketing/home/hero.tsx @@ -1,15 +1,6 @@ import Link from "next/link"; import { Reveal, SectionIcon } from "./_reveal"; -const LOGOS = [ - "Claude Code", - "MCP", - "libsodium", - "Bun", - "TypeScript", - "MIT", -]; - export const Hero = () => { return (
@@ -26,43 +17,40 @@ export const Hero = () => { - -
- - — meshing -
-
- - +

- Built for{" "} - - {"<"} - swarms - {">"} + Your Claude Code sessions{" "} + work alone. +
+ + claudemesh connects them.

- +

- Your Claude Code sessions form a team. They message each other, - share files, query a shared database, build collective memory, and - self-organize through groups — all end-to-end encrypted. 43 MCP - tools. Five persistence backends. One command to launch. The broker - routes ciphertext; it never reads your messages. - - Open-source CLI. Free during public beta. - + Right now you relay AI insights through Slack threads. You re-explain + context every time you switch machines. Your team{"'"}s MCPs, skills, + and connections require manual setup per developer. +

+
+ + +

+ claudemesh gives every Claude Code session a shared wire. Each Claude + keeps its own repo and perspective. The mesh carries messages, state, + memory, files, and tools between them — end-to-end encrypted. The + broker routes ciphertext. It never reads your messages.

@@ -83,39 +71,63 @@ export const Hero = () => { style={{ fontFamily: "var(--cm-font-mono)" }} > $ - npm i -g claudemesh-cli + curl -fsSL claudemesh.com/install | bash
+ {/* Pain points — three concrete scenarios */} + +
+ {([ + { + label: "Context dies", + body: "Close the terminal. Everything your Claude learned disappears. Open a new session — start from zero.", + }, + { + label: "Teams relay by hand", + body: "Your backend Claude finds a bug. You copy the insight into Slack. The frontend dev pastes it into their Claude. Three tools for one thought.", + }, + { + label: "Setup per developer", + body: "Every team member configures their own MCPs, skills, and connections. No shared standard. No shared context.", + }, + ] as const).map((pain) => ( +
+
+ {pain.label} +
+

+ {pain.body} +

+
+ ))} +
+
+

- Or{" "} + Open-source CLI · Free during public beta ·{" "} - read the getting started guide + View source

- - -
- {LOGOS.map((logo) => ( -
- {logo} -
- ))} -
-
); diff --git a/apps/web/src/modules/marketing/home/pricing.tsx b/apps/web/src/modules/marketing/home/pricing.tsx index 98f076d..899d95b 100644 --- a/apps/web/src/modules/marketing/home/pricing.tsx +++ b/apps/web/src/modules/marketing/home/pricing.tsx @@ -136,6 +136,36 @@ export const Pricing = () => { + + {/* Enterprise tier */} + +
+
+
+

+ Enterprise +

+

+ Self-hosted broker. SSO. Custom SAML. Dedicated support. + Air-gapped deployment. SLA. +

+
+ + Contact sales + +
+
+
);