Developer & no-code friendly

Add Carey to your website

One snippet of code is all it takes. The widget loads asynchronously, so it will not slow down your site.

Step 1

Copy your embed code

Inside Carey, open your bot and click the Integration tab. You'll see a snippet that looks like this:

<script>
  window.BRAINWAVE = {
    botId: "YOUR_BOT_ID",
    supabaseUrl: "YOUR_SUPABASE_URL",
    supabaseKey: "YOUR_SUPABASE_KEY"
  };
</script>
<script async src="https://careybot.com/widget.js"></script>

The values for botId, supabaseUrl, and supabaseKey are already filled in for you. Just copy and paste.

Step 2

Paste it into your site

The safest place is just before the closing </body> tag. That ensures the rest of your page loads first and the widget does not block anything.

<!DOCTYPE html>
<html>
  <head>...</head>
  <body>
    <!-- your page content -->

    <script>
      window.BRAINWAVE = {
        botId: "YOUR_BOT_ID",
        supabaseUrl: "YOUR_SUPABASE_URL",
        supabaseKey: "YOUR_SUPABASE_KEY"
      };
    </script>
    <script async src="https://careybot.com/widget.js"></script>
  </body>
</html>

The async attribute means the script downloads in the background and only initializes once your page is fully rendered.

Step 3

Platform-specific instructions

WordPress

  1. Go to Appearance → Theme File Editor (or use a plugin like WPCode).
  2. Open your active theme's footer.php file.
  3. Paste the snippet just before </body>.
  4. Alternatively, use a 'Custom HTML' widget in the footer area of block themes.

Shopify

  1. Online Store → Themes → Actions → Edit code.
  2. Open layout/theme.liquid.
  3. Paste the snippet just before </body>.
  4. Save. The widget appears on every page automatically.

Wix

  1. In the editor, click the + button → Embed → Embed a Widget.
  2. Choose 'Custom' and paste the full snippet.
  3. Resize the embed box to zero height/width if needed, or place it in the footer.
  4. Publish your site.

Squarespace

  1. Settings → Advanced → Code Injection.
  2. Paste the snippet into the FOOTER section.
  3. Save. It runs on every page.

Webflow

  1. Open your project → Project Settings → Custom Code.
  2. Paste the snippet into the 'Footer Code' area.
  3. Save & publish.

Framer

  1. Site Settings → General → Custom Code.
  2. Paste the snippet into the end-of-<body> section.
  3. Publish.

React / Next.js / Vite

  1. Add the snippet to your root layout (e.g. app/layout.tsx or index.html).
  2. Place it just before </body>.
  3. No npm package needed. The widget is self-contained.
Step 4

Where to place it (best practices)

  • Every page. Put the snippet in a shared layout or global footer so visitors can chat from anywhere. Most queries happen on product or pricing pages, but users often start from the home page.
  • Before </body>. This keeps it non-blocking and avoids layout-shift issues.
  • Only once per page. Including the snippet twice creates duplicate buttons. If you use a site-wide footer, do not also add it to individual pages.
  • Avoid inside iframes. The widget is already a floating panel; nesting it inside an iframe can break positioning and cookies.
Step 5

Troubleshooting

  • Widget does not appear? Open the browser console. If you see a "Missing config" error, double-check that window.BRAINWAVE is set before the widget script runs.
  • CSP errors? If your site uses a strict Content-Security-Policy, allow script-src for your app domain and connect-src for your Supabase URL.
  • Conflicts with other chat widgets? Carey uses high z-index values (2147483647) so it stays clickable, but if you run multiple widgets you may see overlapping buttons. Use one per page.
  • Still stuck? Email us or check the Integration tab inside your bot. It shows your exact, pre-filled snippet.

Ready to add it to your site?

Build your bot first, then grab the snippet from the Integration tab.