# floors.js for _SaaS_

Your pricing page has 3 visitors right now. One has a question about your enterprise plan. Without floors.js, they'll leave. With it, you'll see them — and answer before they bounce.

[Get started — from $14/mo](/#pricing) [See how it works](/#how)

## The problem SaaS founders know too well

You spend money driving traffic to your site. Visitors land on your homepage, click through to features, and arrive at pricing. Then they leave — without ever talking to you.

You have **no idea who was there, what confused them, or what would have closed the deal**. Traditional live chat widgets sit in the corner, ignored. They feel like support tickets, not conversations.

## What floors.js does differently

floors.js turns your SaaS website into a living space. Every page becomes a room. Every visitor becomes a 3D avatar walking around. You can see exactly who's on your pricing page and start a conversation — naturally, in real-time.

- **See visitors move between pages** — watch the real-time journey from homepage to pricing
- **Jump into any room** — join your pricing page and answer questions live
- **Discord notifications** — get pinged when someone lands on a high-intent page
- **No signup required for visitors** — zero friction, they're already in
- **SPA compatible** — works with React, Next.js, Vue, Nuxt out of the box

## Where SaaS teams use it

**Pricing page**  
See when prospects are comparing plans. Jump in and help them pick the right tier.

**Feature pages**  
Visitors exploring a specific feature? Answer their questions before they look at a competitor.

**Documentation**  
Developers stuck on integration? Chat with them in real-time, right on the docs page.

**Changelog**  
Just shipped a feature? Engage with users who are reading about it.

## What SaaS teams actually see

The building view shows which pages have visitors right now — your pricing page with 3 people, your docs with 1, your homepage with 5. You see the real-time flow. Not as a chart in an analytics dashboard updated once a day, but as actual avatars moving between rooms in a 3D building. It changes how you think about your website traffic.

When a visitor stays on your pricing page for 2+ minutes, that's a buying signal. You can jump into that room and start a conversation. No cold outreach — they came to you. They're already interested. All you have to do is answer their question, clarify the difference between plans, or offer a quick demo. The close rate on these conversations is dramatically higher than any outbound channel.

Discord and Slack notifications mean you don't have to watch all day. Set up alerts for high-intent pages — pricing, enterprise, contact — and get pinged the moment someone arrives. You go from reactive to proactive without sitting in front of a dashboard.

## One line to install

`<script src="https://floorsjs.com/embed.js" data-key="flr_..."></script>`  
Paste it before `</body>` in your layout. Works with any SaaS stack — static HTML, Next.js, Nuxt, Astro, WordPress, or Webflow. Pages become rooms automatically. No config needed.

## Frequently asked questions

**Does it work with single-page apps?**  
Yes, floors.js detects client-side navigation (pushState, replaceState, popstate). Works with React, Next.js, Vue, Nuxt, SvelteKit, etc.

**Will visitors see my team's names?**  
Only if your team members are in the room. You choose your display name. Visitors get random names unless they set their own.

**Can I use it alongside Intercom or Crisp?**  
Yes. floors.js doesn't conflict with other chat widgets. It runs in its own DOM layer with prefixed IDs.

**Is there a visitor limit?**  
Each site supports up to 400 concurrent visitors. More than enough for most SaaS websites.

**Does it affect page load speed?**  
No. The script loads asynchronously. Three.js only loads when a visitor opens the widget. Core Web Vitals are unaffected.
