Clew

How to add an onboarding checklist in a v0 app without a developer

An onboarding checklist in a v0 app: four tasks, a progress bar, each item one click away from the right screen — set up in the Clew editor, no front-end work.

Time
● 15 minutes
Price
14-day free trial, no card
Who does it
You and the v0 chat

Example: an onboarding checklist in a v0 app

A Next.js analytics app made in v0. Only workspace owners (role = owner) see on /dashboard: connect a data source, set the currency, invite viewers.

This format is part of the Pro plan. Every new account starts with a 14-day free trial with all formats and audience rules, no card required. When the trial ends nothing is deleted and published items keep showing; the Free plan keeps tours and tooltips free.

How to add the onboarding checklist in a v0 app, step by step

  1. Step 01

    Copy your Clew snippet

    Create a free account (or sign in), add your site and open Admin → Overview. Click the line in the “No signal from the widget yet.” card to copy it — it carries your real site key instead of the placeholder.

    <!-- Clew: replace PASTE_YOUR_SITE_KEY with the site key from Admin > Overview -->
    <script src="https://tryclew.io/widget/PASTE_YOUR_SITE_KEY.js" async></script>
    Clew admin Overview with the embed line and a masked site key (onboarding checklist in a v0 app)
    Step 1 · schematic illustration
  2. Step 02

    Open the chat of your v0 project

    Open the project in v0. v0 generates Next.js with the App Router, so the right file is app/layout.tsx.

    An app builder with the AI chat panel next to the preview (onboarding checklist in a v0 app)
    Step 2 · schematic illustration
  3. Step 03

    Send the prompt with your key

    Replace PASTE_YOUR_SITE_KEY with your key and send the prompt. It uses next/script, which is how Next.js loads third-party scripts.

    Add the Clew onboarding widget to this app.
    
    Insert this exact tag once so it loads on every page, including after client-side route changes:
    <script src="https://tryclew.io/widget/PASTE_YOUR_SITE_KEY.js" async></script>
    
    This is a v0 project on Next.js App Router: in app/layout.tsx import Script from "next/script" and add <Script src="(the same URL)" strategy="afterInteractive" /> inside <body>.
    
    After the signed-in user is loaded, and whenever these values change, call Clew.identify() with a few non-personal properties as strings — for example { plan: "trial", role: "owner", onboarded: "false" }. If the widget may not have loaded yet, first define the queue stub: window.TutorKit = window.TutorKit || { q: [], identify: function (p) { this.q.push(["identify", p]); } }; and call window.TutorKit.identify(...). Never pass names, emails or other personal data.
    
    Rules:
    - Use the script URL exactly as given. Do not download it, bundle it or install an npm package.
    - If the project sets a Content-Security-Policy, allow https://tryclew.io in script-src and connect-src.
    - Change nothing else and show me the diff.
    AI chat with the Clew prompt in the message box (onboarding checklist in a v0 app)
    Step 3 · schematic illustration
  4. Step 04

    Check layout.tsx and deploy

    Expect a <Script> element in app/layout.tsx. Then Deploy to Vercel and open the production URL.

    Code diff with a Script component added to the root layout (onboarding checklist in a v0 app)
    Step 4 · schematic illustration
  5. Step 05

    Write the checklist items in Clew

    In Clew open Flows → + New flow and choose Onboarding checklist. Fill Checklist title, then add 3–5 Checklist items: a title that is an action, one line of explanation and in Link URL the page where it is done. No selectors are needed.

    An onboarding checklist panel with a progress bar and four tasks, two of them ticked (onboarding checklist in a v0 app)
    Step 5 · schematic illustration
  6. Step 06

    Choose where, when and for whom it shows

    In the same editor, set Where to show (page URL), When to show, Audience targeting and Frequency. These are the settings of the example above:

    SettingValue
    FormatOnboarding checklist
    Where to show (page URL)Section by prefix /dashboard
    When to showRight on page load
    Audience targetingProperty role equals owner
    FrequencyOnce per visitor
    Clew tour editor with the format, page URL rule, trigger and audience rule fields (onboarding checklist in a v0 app)
    Step 6 · schematic illustration
  7. Step 07

    Publish and check it on the live site

    Set Status to Published and save. Open the page in a private window — Clew remembers who has already seen a “once” item, so your usual browser may skip it. Views, completions and drop-offs appear in the tour stats.

    Clew admin Overview with the green “Widget is live” card (onboarding checklist in a v0 app)
    Step 7 · schematic illustration

Pitfalls: onboarding checklist in a v0 app

Server components can’t call identify

Clew.identify() runs in the browser. It belongs in a client component ("use client") that has the session, not in a server component or layout.

Wait for data before pointing at charts

Dashboards render placeholders first. Anchor steps to headings and buttons, or use After N seconds of a couple of seconds so the onboarding checklist appears after the data.

Values are compared as text

Rules compare strings. If the app sends onboarded: false as a boolean, write the rule value as false; better, ask the assistant to send strings. The operator exists is true even for false.

One list at a time

While a checklist is open, the widget doesn’t start another tour on navigation. Keep the checklist for the setup phase and let users close it; tours on other pages start afterwards.

Questions and answers

Where does role come from?

From a client component that already has the session: the prompt asks v0 to call Clew.identify({ role }) there.

Why not a plain script tag in v0?

In the App Router, next/script is the supported way to add third-party scripts; a raw tag in a component may render twice or not at all.

Is the onboarding checklist free?

It is part of Pro. Every new account gets a 14-day trial with checklists and audience rules, no card. When the trial ends, published checklists keep showing.

Are items ticked automatically?

An item is ticked when the user clicks it (its link opens in a new tab). Automatic ticking by app events isn’t available yet.

One line on your site — then tours, tooltips and checklists without releases.

Get your site key — freeHow Clew worksFree plan forever, no credit card

Product tours, popups and onboarding in the age of AI

7 patterns with step counts, copy rules and what to measure, what AI changes, and a checklist before you publish. PDF, 2 pages. What is inside →