---
title: "Claude pair: writing the v6 onboarding overlay"
url: https://mdfy.app/igQZHNzq
updated: 2026-05-14T18:15:49.480Z
source: "mdfy.app"
---
# Claude pair: writing the v6 onboarding overlay

> Working session pulling the 5-slide welcome design that ships with v6.

## What I came in with

A blank `WelcomeOverlay.tsx` and a one-line brief: "five slides, dismissible, has to convince a first-time visitor that mdfy is the deploy-to-any-AI thing in under 30 seconds."

## The decisions that mattered

**One CTA per slide.** Claude pushed back hard on my first draft, which had Next + Skip + a link-out to /docs/integrate on every slide. Its argument: "you're testing two competing actions on the same screen. The link-out wins by default because it's the most specific." We ran a quick dogfood test with three people on the team — 0/3 made it to slide 5 because they all clicked the inline link on slide 2. Removed the links. Completion went to 3/3.

**The brand badge belongs on slide 1 only.** I'd put `Personal knowledge hub for the AI era` on every slide as a header band. Claude flagged it as "the same hook firing five times — by slide 3 the reader's brain skips it." Moved the badge to slide 1 only. Slides 2-5 lead with the step number badge instead (`STEP 02`, etc).

**Surfaces grid, not surfaces list.** Slide 4 originally read as a wall of text describing every AI tool we integrate with. We replaced it with a 2-column grid with a tiny color dot per surface (Claude Code orange, Cursor amber, Codex green, …). The page weight is the same but it scans in 1.5s instead of 5.

## What I'd keep

- The "one CTA per slide" rule. It survived contact with three users.
- The five-step arc: hook → capture → hub → deploy → surfaces. Each slide answers one question.
- Dismissible at any point. The badge state is persisted to localStorage so it never shows twice.

## What I'd revisit

Slide 3 ("Paste the URL. Any AI reads it.") still tries to convey two things — that we're URL-shaped, AND that ?compact / llms.txt keep cost low. The "cost low" part is the wrong altitude for an overlay; it belongs on /docs/integrate. Will trim next pass.
