huddlesDevelopers Blog Open Huddles
Capabilities

Shapes & feature shaping

You choose what your people experience. A feature turned off is an affordance that is not there — never a disabled button advertising something you decided against.

Three shapes, named#

Most integrations are one of three things, and a name is easier to choose than eight booleans. Pick one in the hub when you make the app, or send preset to POST /api/apps; it expands to the keys below, so what is stored is exactly what the app does.

fullThe whole product, one press away. The default, and free everywhere.
callVoice, camera and reactions in the island; nothing to pop out to. A lesson page that wants a room, not a second product.
chatA text room: the stream in the island, a composer, no microphone. A support page, a comments column.

The keys#

Absent keys mean allowed. Each one removes an affordance from the island and the bar.

KeyOff means
cameraVoice only — no camera verb, no tiles.
goLiveNo broadcasting from the island.
board / docNo whiteboard / document entries in the ⋯ menu.
popOutIsland-only: voice and company, that is the room.
chatNo text stream in the island.
voiceA text room: no microphone, no camera. The island opens on the chat.
anonymous(Default.) Only vouched-for users get in. See walk-ins.
json — what "call" stores
{ "board": false, "doc": false, "goLive": false, "popOut": false }

Where it is read#

Shaping rides GET /api/embed/:appId/config, read on every embed load; the island honours it and the operator's own switches still outrank it. Shaping is meant to be a Premium feature of the app's space, and it is free for now — until embed billing is wired up, every shape works on every space. See limits.

huddles.space · Blog · For Mac · Premium · Terms · Privacy · © 2026 Huddles.Space