A space is a place where something happens. A two-person correspondence, a group, a project room, a public journal, a catalog — these are all the same space with different settings, not five different entities.
The main consequence follows from this: a conversation between two people can become a group, and a group can become a public place, and no one has to “create a new one and move over”.
Three axes, not a list of types
A space is described by three independent things. Any combination works.
1. Who is inside
This is not a setting but a fact: how many people are in the space right now.
| in the space | how it looks |
|---|---|
| no one but you | “waiting for someone” |
| one person | a line — the list shows their name, in the “People” section |
| several | names separated by commas: “bob, carol and 2 more” |
There is no separate “private correspondence” type in the protocol: a line is a space that happens to contain exactly one other person. A third arrives — it becomes a group by itself, with no migration.
You can give a space your own name at any moment — but that name stays on your device. Others see their own. A space without a name shows who is in it.
2. Who can read
Set at creation and changed later by the owner (the access icon in the space header → Access).
| visibility | who reads |
|---|---|
| private | participants only. Only they have the keys |
| by link (unlisted) | anyone who has the link |
| public | the same, plus the place is visible in catalogs |
Publicness cannot be revoked. Whoever got the link has read it. The interface says this at creation too, and it is honest: no system that has already handed out a copy can take it back.
3. Who can write
Only for public spaces, on the same Access screen:
| mode | who writes |
|---|---|
| Community | anyone can join and write |
| Broadcast | you and appointed curators write; everyone else reads |
A curator is a specific device of a specific person. Add one — they can publish immediately. Changing the mode never rewrites the past: what was already published stays.
The character of a space
At creation (+ space) the wizard asks four things. All of it is décor
and agreements, not access rights.
1 · who this place is for. Presets: friends, a creative group, a project, family, a community, a local network. Plus 🎧 Release space — a ready-made studio preset for shared listening in one click.
2 · how it should feel. The archetype sets the palette and the mood:
| archetype | what it is about |
|---|---|
| Campfire | friends, quiet presence, conversation |
| Forest | a community grown out of a shared life |
| Studio | music, listening sessions, demos |
| Workshop | projects, tasks, devices, telemetry |
| Orbit | minimalism for distributed teams |
| Home | close people, photographs, family memory |
| Radio Room | mesh, LoRa, node status |
Plus time of day, material, and how lively the motion is.
3 · what you will do together. Up to three rituals (a Sunday capsule, a shared hour of silence, a listening session, one photo a day, a question of the week…) and the space’s central block. Rituals are the declared way of the place, visible to everyone, not a mechanism with enforcement.
The same step holds custom presence states (“mixing_a_track”, “reading, not replying”). One restriction: they cannot pose as system properties like “online” or “verified” — otherwise presence would become a tool for forgery.
4 · what it should remember — the memory policy, the only one of the four with real consequences:
| choice | what actually happens |
|---|---|
| remembers everything | a full journal on participants’ devices; an invitation carries keys to the whole history |
| remembers only what is kept | the journal is stored; the interface encourages deliberate saves |
| the past stays with those who lived it | a newcomer gets only the current keys, and earlier epochs remain sealed to them — enforced by cryptography, not by a rule |
The last option, among other things, forbids forwarding messages out of this space: forwarding is exactly the leak it protects against.
Three tabs inside a space
| tab | what is in it |
|---|---|
| Chat | the conversation feed — talk |
| Posts | publications — posts |
| Shelf | the shelf: what people decided to keep — talk |
Plus the header buttons: ⓘ — membership and state, 🎨 — appearance (signed, shared by everyone), ✧ — the resonance palette (talk), invite — call people in (join), Share link — the link to a public place.
The owner’s levers of a public place
All on the Access screen, all owner-only.
How much one participant can send. Four levels: no limit / freely / evenly / strictly. The limit is counted per person, so one loud voice does not crowd out the room. Nothing is lost: past the limit a contribution simply waits and arrives with the next round.
Freeze. Stops publication entirely, including yours. Readers see an honest “frozen”; authors’ drafts stay local until the thaw.
Availability (for someone else’s public space that you read):
- Mirror — keep the place reachable: your node republishes what the owner signed and stores its media. This gives no power over the space whatsoever: your node has no key and can change nothing.
- Share media you already have — answer other readers with files you have already downloaded. It downloads nothing extra, but it tells others that you have the file — and therefore that you read this. Which is why it is off by default.