diff --git a/apps/web/src/modules/marketing/home/cta.tsx b/apps/web/src/modules/marketing/home/cta.tsx index 858c37d..9df4025 100644 --- a/apps/web/src/modules/marketing/home/cta.tsx +++ b/apps/web/src/modules/marketing/home/cta.tsx @@ -49,7 +49,7 @@ export const CallToAction = () => { diff --git a/apps/web/src/modules/marketing/home/faq.tsx b/apps/web/src/modules/marketing/home/faq.tsx index fa6bcc5..a6fa0dc 100644 --- a/apps/web/src/modules/marketing/home/faq.tsx +++ b/apps/web/src/modules/marketing/home/faq.tsx @@ -5,11 +5,11 @@ import { Reveal } from "./_reveal"; const ITEMS = [ { q: "Is claudemesh free?", - a: "Yes — the broker, CLI, dashboard, and SDK are MIT-licensed and free forever. Solo developers and small teams can self-host at no cost. Paid tiers add hosted brokers, SSO, audit retention, and support.", + a: "Free during public beta — CLI is MIT-licensed, the hosted broker costs nothing while we ship the roadmap. Paid tiers launch when the dashboard ships. Beta users keep the free plan for life.", }, { q: "How do I get started?", - a: "Install the broker with one curl command. Add one env var to your Claude Code config. Your session joins the mesh. `npx claudemesh init` does both in 60 seconds.", + a: "One command: `curl -fsSL claudemesh.com/install | bash`. The script checks Node >= 20, installs the CLI from npm, and registers the MCP server + status hooks. Then join a mesh (`claudemesh join `) and launch (`claudemesh launch`).", }, { q: "Does claudemesh send my code or prompts to the cloud?", @@ -29,7 +29,7 @@ const ITEMS = [ }, { q: "Which Claude Code versions work with claudemesh?", - a: "Claude Code 2.0 and above. The mesh hooks in via a PreToolUse hook + a small MCP server — both ship in your Claude Code config after running `claudemesh init`.", + a: "Claude Code 2.0 and above. The mesh hooks in via a Stop/UserPromptSubmit hook + a small MCP server — both registered by `claudemesh install`. For real-time push messages, launch via `claudemesh launch` (wraps the dev-channel flag).", }, { q: "How is this different from MCP?", diff --git a/apps/web/src/modules/marketing/home/features.tsx b/apps/web/src/modules/marketing/home/features.tsx index de73421..8d98f7d 100644 --- a/apps/web/src/modules/marketing/home/features.tsx +++ b/apps/web/src/modules/marketing/home/features.tsx @@ -45,7 +45,7 @@ export const Features = () => { style={{ fontFamily: "var(--cm-font-mono)" }} > $ - curl -fsSL claudemesh.sh/install | bash + curl -fsSL claudemesh.com/install | bash - ))} - - - -
- {tiers.map((tier) => ( -
+ -
- -
-

- {tier.name} -

-

- {tier.desc} -

-
-
- {tier.price} -
- {tier.note && ( -
- {tier.note} -
- )} -
- - {tier.cta} - -
- ))} + Start free + + → + + +
diff --git a/apps/web/src/modules/marketing/home/toaster.tsx b/apps/web/src/modules/marketing/home/toaster.tsx index 3bc2f98..4e97fc8 100644 --- a/apps/web/src/modules/marketing/home/toaster.tsx +++ b/apps/web/src/modules/marketing/home/toaster.tsx @@ -3,6 +3,12 @@ import { useState } from "react"; import Link from "next/link"; const NEWS = [ + { + tag: "New", + title: "claudemesh launch (v0.1.4)", + body: "Real-time peer messages pushed into Claude Code mid-turn. One command. Source open at github.com/alezmad/claudemesh-cli.", + href: "https://github.com/alezmad/claudemesh-cli", + }, { tag: "Beta", title: "Mesh Dashboard", diff --git a/apps/web/src/modules/marketing/home/what-is-claudemesh.tsx b/apps/web/src/modules/marketing/home/what-is-claudemesh.tsx index f01837e..0de0117 100644 --- a/apps/web/src/modules/marketing/home/what-is-claudemesh.tsx +++ b/apps/web/src/modules/marketing/home/what-is-claudemesh.tsx @@ -242,7 +242,7 @@ const USE_CASES: UseCase[] = [ title: "Bug Alice fixed, Bob rediscovers", before: "Alice in payments-api fixes a Stripe signature bug. Two weeks later, Bob in checkout-frontend hits the same thing. Alice's fix is buried in a PR thread. Bob re-solves it for three hours.", - now: "Bob's Claude asks the mesh: who's seen this? Alice's Claude self-nominates with context. Bob solves in ten minutes. Alice isn't interrupted — her Claude surfaces the history on its own.", + now: "Bob's Claude asks the mesh: who's seen this? Alice's Claude volunteers with context. Bob solves in ten minutes. Alice isn't interrupted — her Claude shares the history on its own.", limits: "Each Claude stays inside its own repo. Nobody's reading anyone else's files. Information flows at the agent layer, with a human still on the PR.", },