Skip to content

Add Radar Cloud funnel button + modal (3 design variants for review)#1114

Open
roylibman wants to merge 2 commits into
mainfrom
claude/amazing-payne-8232de
Open

Add Radar Cloud funnel button + modal (3 design variants for review)#1114
roylibman wants to merge 2 commits into
mainfrom
claude/amazing-payne-8232de

Conversation

@roylibman

@roylibman roylibman commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

What

An OSS → Cloud funnel entry point (SKY-1107): a quiet globe button in the top bar that opens a modal pitching Radar Cloud. Screenshots of the full flow and all three variants are on the Linear issue.

Flow: hover → tooltip ("Radar Cloud — all your clusters, one URL") → click → modal → app.radarhq.io/signup. Two clicks from curiosity to signup, no intermediate in-app page.

Three modal variants ship behind a temporary design-review switcher (bottom pill bar, keys 1/2/3):

  1. Letter — a personal note from the team, features mentioned in prose
  2. Features — "First things first: Radar stays free." + 2×2 feature grid + full-width AI agent card (Roy's current pick)
  3. Postcard — split layout: dark-emerald art panel with animated radar sweep + terse checklist

All three share the same footer band: emerald Try Cloud free CTA + "Maybe later", check-item trust signals (free for 3 clusters · no credit card · cluster data stays in your cluster), and a self-hosting "say hi" footnote → /demo. Once the team picks, the switcher and losing variants get stripped.

Design decisions

  • Copy leads with the fear, not the product — every OSS user seeing a cloud button expects a rug pull; "Radar stays free" defuses it in the first five words, matching the /open-source pledge. "Keep the lights on" is stated outright.
  • All feature claims verified shipped (fleet views, teams/SSO with RBAC intact, Slack/webhook issue alerts). Retention is phrased softly ("history that sticks around… keeps getting longer") since cloud-backed archive is still roadmap. The AI agent copy is deliberately softened to "proposes the fix" until Diagnose-with-AI fully lands.
  • Community credit — the humans strip says "built in the open by many hands, and overseen by a small team of humans", deliberately no founder headcount so it survives hires.

Behavior

  • Button styled identically to its top-bar neighbors; hidden when navCustomization.embedded (belt-and-braces — Cloud embeds are chromeless anyway)
  • Modal only opens on click; the single proactive moment is a one-time ping dot, cleared on first open via localStorage
  • No telemetry (per the OSS pledge): ships dark, conversion measured on the receiving end via utm_source=radar-oss UTM params
  • Modal is portaled to document.body — the header's backdrop-blur creates a containing block that traps fixed overlays
  • Esc / backdrop / ✕ / "Maybe later" all close; aria-haspopup="dialog", focus moves to close button on open

Testing

  • make tsc passes
  • Verified live against a k3d cluster in light + dark themes, all three variants, tooltip, ping dot, open/close paths

🤖 Generated with Claude Code

A quiet globe button in the OSS top bar (between the GitHub star and the
terminal button) opens a modal pitching Radar Cloud. Click-only — the one
proactive moment is a one-time emerald ping dot that clears on first open
(localStorage). Hidden whenever navCustomization.embedded so it can never
appear inside Radar Cloud itself.

Three modal variants ship behind a temporary design-review switcher
(bottom pill bar, keys 1/2/3) so the team can pick: Letter (personal note),
Features (headline + 2x2 grid + AI agent card), Postcard (split emerald art
panel + checklist). The winner stays, the switcher and the rest go.

No telemetry: the button ships dark and conversion is measured on the
receiving end via utm_source=radar-oss on the CTA links.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Want higher recall? High effort reviews run extra passes and find more bugs. A team admin can switch effort levels in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 68cbd35. Configure here.

if (e.key === '3') setVariant('postcard')
}
window.addEventListener('keydown', onKey)
return () => window.removeEventListener('keydown', onKey)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Escape blocked by capture handlers

Medium Severity

The cloud modal registers Escape on window in the bubble phase without stopPropagation. Other app overlays (for example SettingsDialog) close on Escape via document capture and stop propagation. If such an overlay is still open underneath the cloud modal, the first Escape dismisses only the hidden layer and the visible cloud modal stays open.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 68cbd35. Configure here.

</span>
)}
</button>
</Tooltip>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tooltip overlays open modal

Low Severity

The globe button keeps its Tooltip active while the modal is open. Tooltips portal at z-[9999], above the modal backdrop at z-[100], so the hover tooltip can paint on top of the dialog after click-to-open.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 68cbd35. Configure here.

Diagnose-with-AI is still in flight; "solves them for you" overclaims
until it fully lands.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants