How to add an onboarding checklist in a Lovable app without a developer
An onboarding checklist in a Lovable 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 Lovable chat
Example: an onboarding checklist in a Lovable app
A Lovable app for small gyms. Owners who haven’t finished setup (onboarded isn’t true) see on /dashboard: add class types, publish the schedule, share the booking link, connect payments in your provider.
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 Lovable app, step by step
- 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>

Step 1 · schematic illustration - Step 02
Open the project chat in Lovable
Open your project in Lovable. The chat edits the code directly; make sure you are on the main version you publish, not an old remix.

Step 2 · schematic illustration - Step 03
Send the prompt with your key
Copy the prompt, replace
PASTE_YOUR_SITE_KEYwith your key and send it. Besides the script tag it asks for what the onboarding checklist needs from the code.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 Lovable project (React + Vite): put the tag in index.html right before </head>. 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.
Step 3 · schematic illustration - Step 04
Check the change and publish
Open the code view: expect
index.htmlwith one added line, plus the small additions from the prompt. Then press Publish — the widget works only on the published app.
Step 4 · schematic illustration - 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.

Step 5 · schematic illustration - 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:
Setting Value Format Onboarding checklist Where to show (page URL) Section by prefix /dashboardWhen to show Right on page load Audience targeting Property onboardednot equalstrueFrequency Once per visitor 
Step 6 · schematic illustration - 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.

Step 7 · schematic illustration
Pitfalls: onboarding checklist in a Lovable app
Supabase auth loads after the page
Lovable apps usually sign users in with Supabase, so the user is known a moment after load. That’s fine: Clew.identify() re-checks the rules whenever it is called, and the onboarding checklist appears then.
The editor preview is not your published app
Build and test the onboarding checklist on the published URL (or your custom domain). URL rules compare paths, so the same settings work for both.
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
Who sets onboarded to true?
The app, via the prompt: when the owner publishes a schedule, it calls Clew.identify({ onboarded: "true" }) and the list stops showing.
Will the next Lovable prompts remove the line?
Usually not — it lives in index.html. If Admin → Overview stops showing “Widget is live” after a big regeneration, send the prompt again.
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.
What else you can add in a Lovable app
- How to create a product tour in a Lovable app without a developer
- How to set up user onboarding in a Lovable app without a developer
- How to add a paywall upgrade prompt in a Lovable app without a developer
Onboarding checklist on other platforms
- Google Tag ManagerHow to add an onboarding checklist via Google Tag Manager without a developer
- Bolt.newHow to add an onboarding checklist in a Bolt.new app without a developer
- v0How to add an onboarding checklist in a v0 app without a developer
- ReplitHow to add an onboarding checklist in a Replit app without a developer
- CursorHow to add an onboarding checklist in an app built with Cursor without a developer
- Claude CodeHow to add an onboarding checklist with Claude Code without a developer