fix(web): start CTAs → /auth/register + GitHub link → claude-intercom OSS
Some checks failed
CI / Tests / 🧪 Test (push) Has been cancelled
Some checks failed
CI / Tests / 🧪 Test (push) Has been cancelled
All conversion CTAs were pointing to the dead github.com/claudemesh/
claudemesh repo or # hash fragments. Landing is the primary funnel for
v0.1.0 — every "Start" button is a conversion-critical surface.
Fixes:
- Header "Start free" → /auth/register
- Header GitHub nav item → REMOVED (kept the icon button, repointed)
- Hero "Start free" → /auth/register
- Pricing 6× CTAs: Solo/Pro/Plus/Team/Business → /auth/register,
Enterprise → /contact
- CTA footer "Star on GitHub" → /auth/register ("Start free")
- BeyondTerminal "Read the protocol spec" → /auth/register
("Get on the mesh")
GitHub reinstated as a dedicated icon button in the header right side,
pointing to https://github.com/alezmad/claude-intercom — the MIT OSS
foundation claudemesh is built on. Honest provenance: claude-intercom
is the local peer-mesh gift to the community, claudemesh is the hosted
cross-machine extension.
Tooltip: "Built on claude-intercom · MIT open source".
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -219,12 +219,11 @@ export const BeyondTerminal = () => {
|
|||||||
<span className="text-[var(--cm-fg-secondary)]">anything</span>
|
<span className="text-[var(--cm-fg-secondary)]">anything</span>
|
||||||
</p>
|
</p>
|
||||||
<Link
|
<Link
|
||||||
href="https://github.com/claudemesh/claudemesh#protocol"
|
href="/auth/register"
|
||||||
target="_blank"
|
|
||||||
className="inline-flex items-center gap-2 rounded-[var(--cm-radius-xs)] border border-[var(--cm-fg-tertiary)] px-5 py-2.5 text-sm font-medium text-[var(--cm-fg)] transition-colors hover:border-[var(--cm-fg)] hover:bg-[var(--cm-bg-elevated)]"
|
className="inline-flex items-center gap-2 rounded-[var(--cm-radius-xs)] border border-[var(--cm-fg-tertiary)] px-5 py-2.5 text-sm font-medium text-[var(--cm-fg)] transition-colors hover:border-[var(--cm-fg)] hover:bg-[var(--cm-bg-elevated)]"
|
||||||
style={{ fontFamily: "var(--cm-font-sans)" }}
|
style={{ fontFamily: "var(--cm-font-sans)" }}
|
||||||
>
|
>
|
||||||
Read the protocol spec →
|
Get on the mesh →
|
||||||
</Link>
|
</Link>
|
||||||
</Reveal>
|
</Reveal>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -39,12 +39,11 @@ export const CallToAction = () => {
|
|||||||
<Reveal delay={3}>
|
<Reveal delay={3}>
|
||||||
<div className="mt-12 flex flex-col items-stretch justify-center gap-3 sm:flex-row sm:items-center">
|
<div className="mt-12 flex flex-col items-stretch justify-center gap-3 sm:flex-row sm:items-center">
|
||||||
<Link
|
<Link
|
||||||
href="https://github.com/claudemesh/claudemesh"
|
href="/auth/register"
|
||||||
target="_blank"
|
|
||||||
className="group inline-flex items-center justify-center gap-2 rounded-[var(--cm-radius-xs)] bg-[var(--cm-clay)] px-6 py-3.5 text-[15px] font-medium text-[var(--cm-fg)] transition-colors duration-300 hover:bg-[var(--cm-clay-hover)]"
|
className="group inline-flex items-center justify-center gap-2 rounded-[var(--cm-radius-xs)] bg-[var(--cm-clay)] px-6 py-3.5 text-[15px] font-medium text-[var(--cm-fg)] transition-colors duration-300 hover:bg-[var(--cm-clay-hover)]"
|
||||||
style={{ fontFamily: "var(--cm-font-sans)" }}
|
style={{ fontFamily: "var(--cm-font-sans)" }}
|
||||||
>
|
>
|
||||||
Star on GitHub
|
Start free
|
||||||
<span className="transition-transform duration-300 group-hover:translate-x-0.5">
|
<span className="transition-transform duration-300 group-hover:translate-x-0.5">
|
||||||
→
|
→
|
||||||
</span>
|
</span>
|
||||||
|
|||||||
@@ -67,8 +67,7 @@ export const Hero = () => {
|
|||||||
<Reveal delay={4}>
|
<Reveal delay={4}>
|
||||||
<div className="mt-10 flex flex-col items-stretch gap-3 sm:flex-row sm:items-center">
|
<div className="mt-10 flex flex-col items-stretch gap-3 sm:flex-row sm:items-center">
|
||||||
<Link
|
<Link
|
||||||
href="https://github.com/claudemesh/claudemesh"
|
href="/auth/register"
|
||||||
target="_blank"
|
|
||||||
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)] transition-colors duration-300 hover:bg-[var(--cm-clay-hover)]"
|
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)] transition-colors duration-300 hover:bg-[var(--cm-clay-hover)]"
|
||||||
style={{ fontFamily: "var(--cm-font-sans)" }}
|
style={{ fontFamily: "var(--cm-font-sans)" }}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ const TIERS = {
|
|||||||
name: "Solo",
|
name: "Solo",
|
||||||
desc: "Run the broker on your laptop. Pair your Claude Code sessions across repos.",
|
desc: "Run the broker on your laptop. Pair your Claude Code sessions across repos.",
|
||||||
price: "Free",
|
price: "Free",
|
||||||
cta: "Install locally",
|
cta: "Start free",
|
||||||
href: "https://github.com/claudemesh/claudemesh",
|
href: "/auth/register",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Pro",
|
name: "Pro",
|
||||||
@@ -18,7 +18,7 @@ const TIERS = {
|
|||||||
price: "$12",
|
price: "$12",
|
||||||
note: "per month",
|
note: "per month",
|
||||||
cta: "Start free trial",
|
cta: "Start free trial",
|
||||||
href: "#",
|
href: "/auth/register",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Plus",
|
name: "Plus",
|
||||||
@@ -26,7 +26,7 @@ const TIERS = {
|
|||||||
price: "$24",
|
price: "$24",
|
||||||
note: "per month",
|
note: "per month",
|
||||||
cta: "Start free trial",
|
cta: "Start free trial",
|
||||||
href: "#",
|
href: "/auth/register",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
team: [
|
team: [
|
||||||
@@ -35,23 +35,23 @@ const TIERS = {
|
|||||||
desc: "Self-hosted broker. SSO, shared presence, team audit log, 25 peers.",
|
desc: "Self-hosted broker. SSO, shared presence, team audit log, 25 peers.",
|
||||||
price: "$99",
|
price: "$99",
|
||||||
note: "per month · unlimited peers",
|
note: "per month · unlimited peers",
|
||||||
cta: "Get started",
|
cta: "Start free",
|
||||||
href: "#",
|
href: "/auth/register",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Business",
|
name: "Business",
|
||||||
desc: "Multi-region brokers, retention controls, Slack/Linear bridges.",
|
desc: "Multi-region brokers, retention controls, Slack/Linear bridges.",
|
||||||
price: "$499",
|
price: "$499",
|
||||||
note: "per month",
|
note: "per month",
|
||||||
cta: "Get started",
|
cta: "Start free",
|
||||||
href: "#",
|
href: "/auth/register",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Enterprise",
|
name: "Enterprise",
|
||||||
desc: "Air-gapped deploy, custom SAML, dedicated support, SOC 2 pack.",
|
desc: "Air-gapped deploy, custom SAML, dedicated support, SOC 2 pack.",
|
||||||
price: "Contact",
|
price: "Contact",
|
||||||
cta: "Contact sales",
|
cta: "Contact sales",
|
||||||
href: "#",
|
href: "/contact",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -4,12 +4,9 @@ const NAV = [
|
|||||||
{ label: "Docs", href: "#docs" },
|
{ label: "Docs", href: "#docs" },
|
||||||
{ label: "Pricing", href: "#pricing" },
|
{ label: "Pricing", href: "#pricing" },
|
||||||
{ label: "Changelog", href: "#changelog" },
|
{ label: "Changelog", href: "#changelog" },
|
||||||
{
|
] as const;
|
||||||
label: "GitHub",
|
|
||||||
href: "https://github.com/claudemesh/claudemesh",
|
const OSS_REPO_URL = "https://github.com/alezmad/claude-intercom";
|
||||||
external: true,
|
|
||||||
},
|
|
||||||
];
|
|
||||||
|
|
||||||
export const Header = () => {
|
export const Header = () => {
|
||||||
return (
|
return (
|
||||||
@@ -56,9 +53,6 @@ export const Header = () => {
|
|||||||
<Link
|
<Link
|
||||||
key={item.href}
|
key={item.href}
|
||||||
href={item.href}
|
href={item.href}
|
||||||
{...(item.external
|
|
||||||
? { target: "_blank", rel: "noreferrer" }
|
|
||||||
: {})}
|
|
||||||
className="text-[14px] text-[var(--cm-fg-secondary)] transition-colors hover:text-[var(--cm-fg)]"
|
className="text-[14px] text-[var(--cm-fg-secondary)] transition-colors hover:text-[var(--cm-fg)]"
|
||||||
>
|
>
|
||||||
{item.label}
|
{item.label}
|
||||||
@@ -68,6 +62,24 @@ export const Header = () => {
|
|||||||
|
|
||||||
{/* right */}
|
{/* right */}
|
||||||
<div className="flex items-center gap-2">
|
<div className="flex items-center gap-2">
|
||||||
|
<a
|
||||||
|
href={OSS_REPO_URL}
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
aria-label="claude-intercom (MIT open source) on GitHub"
|
||||||
|
title="Built on claude-intercom · MIT open source"
|
||||||
|
className="hidden rounded-[var(--cm-radius-xs)] p-2 text-[var(--cm-fg-secondary)] transition-colors hover:bg-[var(--cm-bg-elevated)] hover:text-[var(--cm-fg)] md:inline-flex"
|
||||||
|
>
|
||||||
|
<svg
|
||||||
|
width="18"
|
||||||
|
height="18"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="currentColor"
|
||||||
|
aria-hidden="true"
|
||||||
|
>
|
||||||
|
<path d="M12 .3a12 12 0 00-3.8 23.4c.6.1.8-.3.8-.6v-2.2c-3.3.7-4-1.4-4-1.4-.5-1.4-1.3-1.8-1.3-1.8-1.1-.7.1-.7.1-.7 1.2.1 1.8 1.2 1.8 1.2 1 1.8 2.8 1.3 3.5 1 .1-.8.4-1.3.7-1.6-2.7-.3-5.5-1.3-5.5-6a4.7 4.7 0 011.3-3.3c-.2-.3-.6-1.6.1-3.3 0 0 1-.3 3.3 1.2a11.5 11.5 0 016 0c2.3-1.5 3.3-1.2 3.3-1.2.7 1.7.3 3 .1 3.3a4.7 4.7 0 011.3 3.3c0 4.7-2.8 5.7-5.5 6 .4.4.8 1.1.8 2.2v3.3c0 .3.2.7.8.6A12 12 0 0012 .3" />
|
||||||
|
</svg>
|
||||||
|
</a>
|
||||||
<Link
|
<Link
|
||||||
href="/auth/login"
|
href="/auth/login"
|
||||||
className="hidden rounded-[var(--cm-radius-xs)] px-3 py-2 text-[14px] text-[var(--cm-fg-secondary)] transition-colors hover:text-[var(--cm-fg)] md:inline-flex"
|
className="hidden rounded-[var(--cm-radius-xs)] px-3 py-2 text-[14px] text-[var(--cm-fg-secondary)] transition-colors hover:text-[var(--cm-fg)] md:inline-flex"
|
||||||
@@ -75,8 +87,7 @@ export const Header = () => {
|
|||||||
Sign in
|
Sign in
|
||||||
</Link>
|
</Link>
|
||||||
<Link
|
<Link
|
||||||
href="https://github.com/claudemesh/claudemesh"
|
href="/auth/register"
|
||||||
target="_blank"
|
|
||||||
className="inline-flex items-center gap-1.5 rounded-[var(--cm-radius-xs)] bg-[var(--cm-clay)] px-4 py-2 text-[14px] font-medium text-[var(--cm-fg)] transition-colors hover:bg-[var(--cm-clay-hover)]"
|
className="inline-flex items-center gap-1.5 rounded-[var(--cm-radius-xs)] bg-[var(--cm-clay)] px-4 py-2 text-[14px] font-medium text-[var(--cm-fg)] transition-colors hover:bg-[var(--cm-clay-hover)]"
|
||||||
>
|
>
|
||||||
Start free
|
Start free
|
||||||
|
|||||||
Reference in New Issue
Block a user