Tour at onboarding sa app na ginawa gamit ang AI
Ginawa ang app gamit ang Lovable, Bolt.new, v0, Replit, Cursor o Claude Code, at nalilito ngayon ang mga bagong user? I-paste ang isang prompt, tiyakin na isang file ang nabago, at i-publish. Ang tour, checklist at upgrade prompt ay ginagawa sa Clew, hindi sa dagdag na prompt.
- Oras
- ● 5 minuto
- Sino ang gagawa
- Kayo at ang inyong AI assistant
- Mga step
- 6
Step by step
- Step 01
Kopyahin ang inyong code mula sa Clew
Mag-sign up o mag-sign in sa Clew at buksan ang Admin → Buod. Ang card na “Walang signal mula sa widget pa.” ay nagpapakita ng line na may totoong site key — i-click para kopyahin. Ihanda ang key para step 3.

Step 1 · eskematikong ilustrasyon - Step 02
Buksan ang project sa mode na nag-e-edit ng file
- Claude Code: patakbuhin ang
claudesa folder ng project. - Cursor: buksan ang chat sa Agent mode.
- Lovable, Bolt.new, v0: ang chat ng project.
- Replit: Agent o Assistant.

Step 2 · eskematikong ilustrasyon - Claude Code: patakbuhin ang
- Step 03
I-paste ang prompt na may inyong key
Kopyahin ang prompt, palitan ang
ILAGAY_ANG_SITE_KEYng inyong key at ipadala. Ang prompt ay nakasulat sa English, na pinakamahusay na naiintindihan ng mga coding assistant, at nagsasabi ng tamang file para bawat stack — kaya hindi ikakalat ng assistant ang tag sa mga component.Add the Clew onboarding widget to this app. Insert this exact tag so it loads once on every page, including after client-side route changes: <script src="https://tryclew.io/widget/ILAGAY_ANG_SITE_KEY.js" async></script> Where to put it (pick what matches this project): - Plain HTML, React + Vite, Vue + Vite: index.html, right before </head> - Next.js App Router: app/layout.tsx, with next/script: <Script src="(same URL)" strategy="afterInteractive" /> inside <body> - Next.js Pages Router: pages/_app.tsx, the same next/script component - Nuxt 3: nuxt.config.ts, app.head.script: [{ src: "(same URL)", async: true }] - SvelteKit: src/app.html, right before %sveltekit.head% - Astro: the <head> of the shared layout - Anything else: the root HTML template or root layout rendered on every page Rules: - Use the URL exactly as given. Do not download the script, bundle it or install an npm package. - Add it in one place only, never inside a component that re-renders. - If the project sets a Content-Security-Policy, allow https://tryclew.io in script-src and connect-src. - Change nothing else, then show me the diff.
Step 3 · eskematikong ilustrasyon - Step 04
Tiyakin na isang file ang nabago
Basahin ang diff bago i-accept. Inaasahan: isang file at isang idinagdag na line (o maliit na
<Script>block sa Next.js) na may inyong totoong key. Kung ang assistant ay nag-edit ng component, nag-install ng package o kinopya ang script sa project, hilingin na i-undo at iwan lamang ang tag.
Step 4 · eskematikong ilustrasyon - Step 05
I-publish o i-deploy
Gumagana ang tag lamang sa deployed na app. I-click ang Publish o Deploy sa Lovable, Bolt.new, v0 o Replit. Sa Claude Code o Cursor, mag-commit at mag-push gaya ng dati kung ang hosting ay nag-deploy mula sa git.

Step 5 · eskematikong ilustrasyon - Step 06
Tiyakin na gumagana
Buksan ang na-publish na app sa karaniwang browser window, at bumalik sa Admin → Buod sa Clew. Sa loob ng isang minuto, luntian ang card: “Live ang widget.”

Step 6 · eskematikong ilustrasyon
Kung saan inilalagay ang tag sa bawat stack
Gamitin ang talahanayan para suriin ang trabaho ng assistant. Palitan ang placeholder ng inyong key.
| Stack | File | Ang idinadagdag |
|---|---|---|
| Plain HTML | index.html (bawat page) | Ang line bago ang </head> |
| React + Vite, Vue + Vite | index.html sa root ng project | Ang line bago ang </head> |
| Next.js App Router | app/layout.tsx | <Script src="https://tryclew.io/widget/ILAGAY_ANG_SITE_KEY.js" strategy="afterInteractive" /> sa loob ng <body> |
| Next.js Pages Router | pages/_app.tsx | Parehong <Script> component |
| Nuxt 3 | nuxt.config.ts | Entry sa app.head.script na may src at async: true |
| SvelteKit | src/app.html | Ang line bago ang %sveltekit.head% |
| Astro | shared layout | Ang line sa loob ng <head> |
Karaniwang ginagawa ng bawat tool
Ang mga project ng Lovable at Bolt.new ay karaniwang React + Vite, kaya ang tag ay nasa index.html. Ang v0 ay gumagawa ng Next.js na may App Router: app/layout.tsx. Sa Replit, depende sa template. Sa Claude Code at Cursor, binabasa ng assistant ang inyong repository at pumipili ng file mula sa listahan sa prompt.
Mga karaniwang problema at FAQ
Ligtas ba ang pag-paste ng site key sa AI chat?
Ligtas. Ang site key ay hindi password: public ito at makikita sa HTML ng inyong page. Hindi magagamit ito para i-edit ang mga tour o basahin ang inyong data.
Nag-install ang assistant ng npm package o kinopya ang script
Hilingin na i-revert. Ang Clew ay naglo-load mula sa sariling URL para ang mga fix at bagong feature ay dumating sa inyong app nang walang rebuild.
Mananatili ba ang tag pagkatapos ng susunod na AI edit?
Karaniwan, mananatili, dahil nasa root file. Kung pagkatapos ng malaking regeneration ang Admin → Buod ay hindi na nagpapakita ng “Live ang widget”, ipadala muli ang prompt.
Ang admin ay nagpapakita pa ng “Walang signal mula sa widget pa.”
Buksan ang isang page ng live na site sa karaniwang browser window at i-reload ang admin pagkalipas ng isang minuto. Kung walang pagbabago: tiyakin na na-publish ang pagbabago, hindi lamang na-save; na pinalitan ang placeholder ng inyong totoong key; at sa developer tools ng browser, tab na Network, hanapin ang widget/…js — dapat 200 ang status. Ang 404 ay nangangahulugang maling key.
Ang aming site ay may Content Security Policy
Dalawang direktiba lang: script-src https://tryclew.io at connect-src https://tryclew.io. Hindi gumagamit ang widget ng eval, blob: URL o worker, at inilalagay nito ang stylesheet sa pamamagitan ng CSSOM sa halip na bilang markup, kaya hindi na kailangan ang style-src 'unsafe-inline' sa Chrome, Edge, Firefox 101+ o Safari 16.4+. Sa mas lumang browser, babalik ito sa <style> element: kung sinusuportahan mo pa ang mga iyon at walang 'unsafe-inline' ang style-src mo, doon lalabas ang mga tour nang walang estilo. Kopyahin ito: Content-Security-Policy: script-src 'self' https://tryclew.io; connect-src 'self' https://tryclew.io;
Puwede bang i-pin ang bersyon ng widget at gumamit ng <code>integrity=</code>?
Oo. Ang linya sa mga gabay — /widget/ILAGAY_ANG_SITE_KEY.js — ay ang rolling na URL: palaging kasalukuyang widget ang ibinibigay nito, kaya hindi ito puwedeng bigyan ng Subresource Integrity hash (nagbabago ang mga byte). Kasama nito, bawat bersyon ay ibinibigay din sa isang hindi nagbabagong address na may hash ng nilalaman. Tanungin ang https://tryclew.io/api/v1/widget-version?site=IYONG_KEY at makukuha mo ang version, path at integrity; ilagay ang dalawa sa tag: <script src="https://tryclew.io/widget/v/<version>/IYONG_KEY.js" integrity="sha384-…" crossorigin="anonymous" async></script>. Hindi nagbabago ang naka-pin na URL, kaya tatanggihan ng browser ang file kung may isang byte na naiba. Ikaw ang magpapasya kung kailan mag-update ng bersyon — tanungin ang parehong endpoint sa deploy script mo. Wala nang ibang nagbabago: ang mga tour ay nananatiling inilalabas sa editor ng Clew nang hindi ginagalaw ang site.
Kinakain ba ng ad blocker ang widget?
Hindi. Wala ang domain namin sa alinman sa malalaking listahan — EasyList, EasyPrivacy, AdGuard, uBlock Origin — kaya lumalabas pa rin ang mga tour, tooltip at checklist sa mga bisitang may blocker. Mas maselan ang estadistika: hinaharangan ng EasyPrivacy ang lahat ng third-party na ping na request, kaya ipinapadala ng widget ang mga event nito bilang karaniwang request, na pinapayagan ng mga listahang iyon. Para lubusang makalayo sa kahit anong pasadyang blocklist, ihain ang widget mula sa sarili mong domain: ituro ang https://iyong-site/clew/* sa https://tryclew.io/* sa CDN o nginx mo at palitan ang linya ng <script src="/clew/widget/IYONG_KEY.js" async></script>. Hihingi na ang widget sa API sa ilalim ng parehong prefix at magiging first-party ang lahat.
Gumagana ba sa single-page app (React, Vue, Next.js)?
Gumagana. I-load ang line nang minsan, sa root HTML o root layout. Sinusundan ng widget ang mga pagbabago ng route sa client (History API at pagbabago ng hash), kaya huwag idagdag ito sa bawat route o i-fire gamit ang “History Change” trigger — ang ikalawang kopya ay binabalewala, pero sayang na trabaho.
Kumusta ang cookie consent banner?
Nagtatago ang Clew ng first-party cookie at mga entry sa localStorage para tandaan kung aling mga tour ang kinumpleto ng bisita at bilangin ang mga pagkumpleto. Walang data na ipinapadala sa mga ad network. Ang inyong privacy policy ang nagpapasya kung maaaring tumakbo ito bago ang consent (halimbawa, ayon sa Data Privacy Act); kung hinaharangan ito ng consent tool hanggang pumayag ang bisita, ang mga tour ay magsisimula pagkatapos ng pagpayag.
Gumagamit kami ng caching o optimization plugin
I-clear ang cache pagkatapos ng pag-install; kung hindi, patuloy na makatatanggap ang mga bisita ng lumang page na walang line. Kung ang plugin ay nag-delay, nag-combine o nag-defer ng JavaScript (WP Rocket, LiteSpeed Cache, Autoptimize, Cloudflare Rocket Loader), i-exclude ang tryclew.io/widget sa mga optimization na iyon.
Mabagal ba ang site dahil dito?
Hindi. Ang line ay may async: dina-download ng browser ang widget nang parallel at pinapatakbo nang hindi hinaharangan ang page. Walang dependency ang widget.
Puwede bang sabihin ng app ko sa Clew na tapos na ang isang hakbang ng onboarding?
Oo, at isang linya lang. Ang item ng checklist ay puwedeng may rule na nagte-tsek nito nang hindi nagki-click ang bisita: isang page na narating niya, isang click sa element na itinuturo mo sa pamamagitan ng CSS selector, o isang event na pinapaputok ng sarili mong code — Clew.complete('invited'), kung saan ang invited ay ang key na isinulat mo katabi ng item sa editor. Tawagin ito sa sandaling talagang tapos na ang bagay, halimbawa pagkatapos kumpirmahin ng API mo ang imbitasyon. Ligtas itong tawagin anumang oras at nagbabalik ng false kapag walang checklist na may ganoong key sa page. Gumagana pa rin ang lumang pangalang TutorKit.
Iba pang paraan ng pag-install
Google Tag Manager
Custom HTML tag sa All Pages, check sa Preview, i-publish. Para sa mga site na gumagamit na ng GTM.
Buksan ang gabay →No-codeWebsite builder at CMS
WordPress, Webflow, Shopify, Wix, Squarespace, Framer, Tilda o plain HTML: kung saan ang head code field at ang dapat i-click.
Buksan ang gabay →