TL;DR
- Gather.town — 2D virtual office for remote teams. Proximity-based video and spatial audio. Plans start at $7/user/month.
- floors.js — social widget for public websites. 3D isometric avatars, real-time visitor chat. One-time payment of $49.
- The split: Gather is for internal team collaboration. floors.js is for public visitor engagement on your website.
What Gather does
Gather is a virtual office platform. Your team logs into a 2D pixel-art space where each person has an avatar. Walk close to someone and a video call starts automatically. Walk away and it ends. The idea is to recreate the spontaneous hallway conversations of a physical office.
It works well for what it is: remote teams that want spatial video calls. You can set up dedicated rooms for meetings, breakout spaces for brainstorming, and common areas for casual chat. It handles events too — conferences, workshops, onboarding sessions. Users need an account to join, and your team pays per seat.
Gather replaces Zoom and Slack huddles with something more spatial and human. It is an internal tool. Your visitors, customers, and the general public do not use it.
What floors.js does
floors.js is an embeddable widget you add to any public website with one script tag. When visitors land on your site, they appear as 3D isometric avatars in a small floating panel. Each page becomes a room. Visitors can see who else is browsing, move around, and chat — all without creating an account.
There is no video, no audio, no microphone permissions. Just lightweight text chat and spatial presence. A visitor lands on your pricing page and sees two other people there. They ask a question. You — or another visitor — answer. It turns a static website into a living space.
floors.js is built for the public internet. Anonymous visitors. Zero friction. The widget loads asynchronously and does not affect your Core Web Vitals. You paste one line of HTML and it works.
Side-by-side comparison
| Gather | floors.js | |
|---|---|---|
| Purpose | Virtual office | Website social layer |
| Audience | Internal teams | Public website visitors |
| Pricing | Free / $7+/user/mo | $49 one-time |
| Account required | Yes | No |
| Video/audio | Yes | No (text chat) |
| Embeddable on any website | No | Yes (one script tag) |
| 2D/3D style | 2D pixel art | 3D isometric |
| Spatial proximity | Yes (audio) | No |
| Moderation tools | Basic | Full (kick/ban/timeout) |
| Setup | Create space + invite | Paste one line |
Who Gather is best for
Gather makes sense when you have a remote team that needs a persistent virtual office. Teams that miss the spontaneity of being in the same room. Companies running virtual events, hackathons, or onboarding sessions where proximity-based video creates a more natural experience than a grid of Zoom faces.
If your goal is internal team collaboration with spatial video calls, Gather is a solid choice. It is not designed for — and does not work well as — a public-facing tool on your website.
Who floors.js is best for
floors.js is for anyone with a public website who wants visitors to interact. SaaS founders who want to see who is on their pricing page and jump in to help. Community sites that want members to bump into each other. Portfolios where visitors can explore work together. Landing pages where social proof happens in real time.
No video. No accounts. No per-seat pricing. Just fun, lightweight social presence with avatars and chat. Your visitors show up, see each other, and talk. That is the entire product.
The key difference
Gather replaces Zoom for your team. floors.js adds life to your website for the public. One is internal. One is external. They solve completely different problems for completely different audiences.
If you are looking for a way to make your remote team feel more connected, use Gather. If you are looking for a way to make your website feel alive and let visitors engage with each other, use floors.js. If you need both, use both — they do not overlap.