town
Private beta

A live town square for your community.

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 →

How it works

1

Paste one snippet

Add the embed script to any page. A floating button or an inline town — your call.

2

Keep your login

Your backend vouches for the signed-in user with one API call. No new accounts, no third-party cookies.

3

Walk up and talk

Proximity audio and video, private café tables, a quiet library, and a stage for events.

Two pieces of code

<!-- 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 }

Private by design

We never hear you

Audio and video go peer-to-peer, encrypted end to end. Nothing is recorded or passes through us.

Your users stay yours

We keep a display name and avatar — no emails, no passwords. Delete a member with one API call.

Locked to your site

Only the domains you register can embed your town. Secret keys are stored as hashes, never in plain text.