Events / Frieze Week London / Report

Frieze Week, in beads.

What people chose to remember of Frieze Week London 2026 — each visit a bead kept in the visitor’s own account, pointing at an open event record. Nothing here was collected by us: this page asks the network as it loads.

Asking the network…

Where people went

People who recorded each event — counted once, however many days they went.

When

Beads by the day they were for.

What went together

Events the same people recorded — the shape of a week that no single organiser sees.

In their words

See your own week the Bluesky feed →

How this was made

A week-long programme of over thirty events, a way for anyone there to say “I went”, and a live picture of the week — built on the AT Protocol without a database or a server process of our own. The parts:

Where everything lives Event records live in the cultureblocs.com repository. Beads, strands and posts live in each visitor's own repository. Constellation and Bluesky search index the network. The cultureblocs.com pages and the feed function only read. @cultureblocs.com repo 30 calendar event records + the feed record Each visitor’s own repo beads → point at an event strands → point at beads posts → link to the pages The open network Constellation: who links to what Bluesky search: tags cultureblocs.com pages static files; read in your browser, write nothing “I went” & “My week” sign in with your account, write to your own repo + one feed function points at indexed read writes (OAuth)
Every arrow is a public read, except the one write: a visitor’s own app writing to their own repository.

Events are shared records

The programme is published once, as community.lexicon.calendar.event records — the open calendar schema, not a CultureBlocs one — so any calendar app on the network can read it. Each event has a permanent at:// address that anything can point at.

Visits belong to visitors

“I went” signs a visitor in with their own account (ATProto OAuth, narrow permissions) and writes a com.cultureblocs.bead to their repository, its subject a strong reference to the event. We never hold it; they can edit or delete it, and every view here follows.

Aggregation without a database

Who went where is a backlink question — which beads point at this event? — and Constellation already indexes every link on the network. Pages ask it, then read each bead from its author’s own server.

A feed with no firehose

The Bluesky feed is one stateless edge function: it asks Constellation for posts whose link card points at these pages, and Bluesky search for the tags, merges and pages them. No stream to consume, no store to keep.

From visit to story

A visitor can gather their beads into a com.cultureblocs.strand — the week, told their way — which renders on their wall. If they later take up Loom, the CultureBlocs desk, it brings these born-public records home to be added to.

Paper to protocol

Printed cards carry short links (cultureblocs.com/w/fwl/…) that open “I went” on one event: about 45 characters, so the QR codes stay simple enough to scan in a dim hall.

Method and limits

Code: github.com/geocontrol/cultureblocs-site · Schemas: com.cultureblocs.* · Privacy: what we keep (nothing)