Drop a pixel town into your site. Members show up with the account they already have, walk over to each other, and just start talking — like running into friends in the plaza.
Request beta access →Add the embed script to any page. A floating button or an inline town — your call.
Your backend vouches for the signed-in user with one API call. No new accounts, no third-party cookies.
Proximity audio and video, private café tables, a quiet library, and a stage for events.
<!-- on your page -->
<script src="https://ggtown.com/embed/v1.js"
data-town="twn_…" data-auth-endpoint="/api/ggtown-token"></script>
// on your server: /api/ggtown-token
const res = await fetch('https://ggtown.com/v1/sessions', {
method: 'POST',
headers: { Authorization: `Bearer ${process.env.GGTOWN_SECRET_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({ town: 'main', user: { id: user.id, name: user.name, avatar: user.image } }),
});
return Response.json(await res.json()); // { token }
Audio and video go peer-to-peer, encrypted end to end. Nothing is recorded or passes through us.
We keep a display name and avatar — no emails, no passwords. Delete a member with one API call.
Only the domains you register can embed your town. Secret keys are stored as hashes, never in plain text.