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 + +
+
+
);