Flocci Chat Start free
Plain answer

AI chatbots for React, Vue and single-page-application websites

Short answer

Chatbot trainers that crawl your site server-side can't execute JavaScript, so on a React, Vue or no-code site they see an empty root div — and the bot learns nothing. The fix is passive learning: Flocci Chat's widget reads each page in the visitor's browser after scripts run, so JS-rendered content is fully covered automatically.

The empty-div problem nobody's pricing page mentions

Point a typical "train on your website" chatbot at a client-rendered site and its crawler fetches your HTML the way curl would: before React mounts, before Vue hydrates, before your no-code builder injects content. What it indexes is <div id="root"></div> and a bundle URL. The chatbot then confidently knows nothing about your product — a failure mode that only shows up after you've onboarded, uploaded nothing (because "it learns your site!"), and watched it fumble your first real question.

Three ways vendors work around it — and their costs

What this means in practice for an SPA

An onboarding crawl still covers whatever is server-reachable on day one. Then, within about 24 hours of normal traffic, passive learning has captured your actual surface — including routes only reachable by client-side navigation. To bootstrap instantly, just browse your own site for five minutes after embedding: every page you open is ingested on the spot. Private, logged-in surfaces stay out with a single attribute: data-passive-ingest="off".

Does the widget itself behave well inside an SPA?

Yes — it's built for hostile environments: Shadow-DOM encapsulated (your CSS can't break it, it can't break yours), loads async/defer, survives client-side route changes, and fails silently rather than throwing into your console. It's the same widget running on this page right now — this site is itself a static + JS-rendered mix that Flocci Chat learned automatically.

Frequently asked questions

Why can't normal chatbot crawlers read my React site?

Server-side crawlers fetch raw HTML without executing JavaScript. On client-rendered sites the content only exists after scripts run, so the crawler indexes an empty shell. Passive DOM learning reads the page in the visitor's browser, after rendering, which is why it works.

Does Flocci Chat work with Next.js, Nuxt, Wix and Webflow?

Yes. Server-rendered pages are covered by the crawl; client-rendered content is covered by passive learning. Mixed stacks (SSR shell + CSR content) get both.

How fast does the chatbot learn a content change on an SPA?

The next time any visitor (or you) opens the changed page, the widget re-reads the rendered DOM and replaces the previous version in the knowledge base. No re-sync schedule, no stale-until-next-crawl window.

Will passive learning ingest my logged-in app pages?

Only if you let it. Add data-passive-ingest="off" to the embed on private surfaces and in-app DOM never enters the knowledge base — the pattern Flocci uses on its own product dashboards.

Try it on your own website

One script tag. 500 free credits — roughly 500 answered visitor messages. Every feature on, no card. The widget in the corner of this page is the product, running on its own site.

Create your workspace — free