Places: /shape/<key>, voices, address newsletter
The landing gesture leads to /shape/{curve.key} - the place page:
what was left there (the relay's /place, playable), leave your voice
(type: voice at value "{key}"), hear from exactly this address
(redoal_watchers, exact key), and the cards. Email leaves the landing
page. A card for iroh through varde. Desks for voices and watchers.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
605eb549f8
commit
66c31786ce
@@ -14,3 +14,10 @@ aggregates:
|
|||||||
unsubscribed: { event: unsubscribed }
|
unsubscribed: { event: unsubscribed }
|
||||||
transitions:
|
transitions:
|
||||||
open: [unsubscribed]
|
open: [unsubscribed]
|
||||||
|
- bucket: redoal_watchers
|
||||||
|
initial: open
|
||||||
|
states:
|
||||||
|
open: { event: subscribed }
|
||||||
|
unsubscribed: { event: unsubscribed }
|
||||||
|
transitions:
|
||||||
|
open: [unsubscribed]
|
||||||
|
|||||||
+13
-10
@@ -13,12 +13,10 @@ alternatives:
|
|||||||
description: >
|
description: >
|
||||||
By associating similar movements while facilitating discourse we
|
By associating similar movements while facilitating discourse we
|
||||||
discover signal within chaos. Draw a path — the network answers
|
discover signal within chaos. Draw a path — the network answers
|
||||||
with the shapes it heard nearby.
|
with the shape it heard, and with the places kept nearby. Pick
|
||||||
action: /shape
|
one of those and it becomes your address.
|
||||||
# Announced, not yet open: the network answers with echoes today,
|
action: /shape/{curve.key}
|
||||||
# what follows a shape is still being built.
|
consequence: [Go to the place]
|
||||||
disabled: true
|
|
||||||
consequence: [Find what follows]
|
|
||||||
record_as: redoal_gestures
|
record_as: redoal_gestures
|
||||||
encouragements:
|
encouragements:
|
||||||
- What you don't know — your collaborators will.
|
- What you don't know — your collaborators will.
|
||||||
@@ -36,10 +34,6 @@ alternatives:
|
|||||||
type: gesture
|
type: gesture
|
||||||
relay: wss://relay.redoal.com
|
relay: wss://relay.redoal.com
|
||||||
optional: true
|
optional: true
|
||||||
- name: email
|
|
||||||
label: Email, if the echoes should reach you later
|
|
||||||
type: email
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
- name: Meet a network you carry in your hand
|
- name: Meet a network you carry in your hand
|
||||||
description: >
|
description: >
|
||||||
@@ -83,6 +77,15 @@ alternatives:
|
|||||||
script arrives on the same terms as everyone else — that is
|
script arrives on the same terms as everyone else — that is
|
||||||
the whole entry requirement.
|
the whole entry requirement.
|
||||||
icon: lucide:hand
|
icon: lucide:hand
|
||||||
|
- name: Carried by iroh, through varde
|
||||||
|
description: >
|
||||||
|
What is left at a place is kept and mirrored by
|
||||||
|
[varde](https://prosjekt.klingenbergbygg.no/bl/varde), a small
|
||||||
|
daemon that moves bytes between consenting machines over
|
||||||
|
[iroh](https://iroh.computer) — verified, rate-limited, and
|
||||||
|
legible to the network it runs on. Recordings travel that way,
|
||||||
|
with no company carrying them.
|
||||||
|
icon: lucide:waypoints
|
||||||
- name: Young, and honest about it
|
- name: Young, and honest about it
|
||||||
description: >
|
description: >
|
||||||
A prototype and an artwork before it is a product. The
|
A prototype and an artwork before it is a product. The
|
||||||
|
|||||||
@@ -38,6 +38,39 @@ alternatives:
|
|||||||
- to: unsubscribed
|
- to: unsubscribed
|
||||||
label: Unsubscribe
|
label: Unsubscribe
|
||||||
|
|
||||||
|
- name: Voices
|
||||||
|
description: >
|
||||||
|
Recordings left through the web, one answer per upload: the
|
||||||
|
address, the digest, the length. The audio itself lives in the
|
||||||
|
relay's node and in varde.
|
||||||
|
features:
|
||||||
|
- name: ""
|
||||||
|
description: ""
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: redoal_voices
|
||||||
|
requires_group: owners
|
||||||
|
|
||||||
|
- name: Watchers
|
||||||
|
description: >
|
||||||
|
Who asked to hear from one exact address. Unsubscribing is
|
||||||
|
theirs (the link in their receipt); the desk can retire an
|
||||||
|
address that bounces.
|
||||||
|
action: /review
|
||||||
|
consequence: [Confirm]
|
||||||
|
features:
|
||||||
|
- name: ""
|
||||||
|
description: ""
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: kv
|
||||||
|
bucket: redoal_watchers
|
||||||
|
requires_group: owners
|
||||||
|
transitions:
|
||||||
|
- to: unsubscribed
|
||||||
|
label: Unsubscribe
|
||||||
|
|
||||||
- name: Announced pages
|
- name: Announced pages
|
||||||
description: >
|
description: >
|
||||||
Pages with an `event:` window, kept here by portal itself. When a
|
Pages with an `event:` window, kept here by portal itself. When a
|
||||||
|
|||||||
@@ -1,32 +0,0 @@
|
|||||||
id: /shape
|
|
||||||
route: ^/shape
|
|
||||||
followup: true
|
|
||||||
name: Where does the path lead?
|
|
||||||
description: >
|
|
||||||
Your shape is in the room now. Echoes of it reach whoever draws
|
|
||||||
nearby — and theirs reach you, whenever you come back to draw again.
|
|
||||||
alternatives:
|
|
||||||
- name: What just happened
|
|
||||||
description: ""
|
|
||||||
features:
|
|
||||||
- name: An address, not an upload
|
|
||||||
description: >
|
|
||||||
The stroke became a 20-byte gesture key — a compressed
|
|
||||||
encoding of its shape. Similar shapes land on nearby keys;
|
|
||||||
that proximity is the whole network.
|
|
||||||
- name: Nothing to undo
|
|
||||||
description: >
|
|
||||||
A drawn path is a fact, not an account. There is no profile
|
|
||||||
behind it unless you left an email.
|
|
||||||
- name: What arrives here next
|
|
||||||
description: >
|
|
||||||
In the full network a drawing is a place that holds voices —
|
|
||||||
recordings left by whoever came before, and live talk with
|
|
||||||
whoever is standing here now. On this site it holds echoes
|
|
||||||
today; the voices follow.
|
|
||||||
|
|
||||||
- name: Draw another
|
|
||||||
description: >
|
|
||||||
The network gets more interesting with every shape it hears.
|
|
||||||
action: /
|
|
||||||
consequence: [Back to the canvas]
|
|
||||||
@@ -0,0 +1,94 @@
|
|||||||
|
# The place a drawn (or picked) path leads to: /shape/<gesture key>.
|
||||||
|
# Reached through the landing alternative's templated action
|
||||||
|
# (/shape/{curve.key}); the key is the URL. What is kept here comes
|
||||||
|
# from the relay - the first redoal node - over its /place endpoint,
|
||||||
|
# and a voice left here goes back the same way (ADR-0015 in redoal).
|
||||||
|
name: Where does the path lead?
|
||||||
|
description: >
|
||||||
|
This is a place: the 20-byte address your path became — or the one
|
||||||
|
you picked from what the network keeps nearby. Voices left here play
|
||||||
|
here, for whoever draws their way to this shape.
|
||||||
|
alternatives:
|
||||||
|
- name: Listen to what was left here
|
||||||
|
description: ""
|
||||||
|
features:
|
||||||
|
- name: ""
|
||||||
|
description: ""
|
||||||
|
icon: lucide:ear
|
||||||
|
resource:
|
||||||
|
source:
|
||||||
|
kind: url
|
||||||
|
url: "https://relay.redoal.com/place/{key}"
|
||||||
|
public: true
|
||||||
|
empty: Nothing has been left at this address yet — yours could be the first voice here.
|
||||||
|
jq: >
|
||||||
|
.recordings[] | {name: ((.duration_ms / 1000 | round | tostring) + " seconds of voice"),
|
||||||
|
description: ("sealed by " + .author[0:8] + "…"),
|
||||||
|
audio: ("https://relay.redoal.com" + .audio)}
|
||||||
|
|
||||||
|
- name: Leave your voice here
|
||||||
|
description: >
|
||||||
|
Recorded in your browser, kept at exactly this address by the
|
||||||
|
relay — the first node of the network — and mirrored on from
|
||||||
|
there. The relay seals it with its own key on your behalf; a key
|
||||||
|
of your own comes with the app.
|
||||||
|
action: /shape/{voice.key}
|
||||||
|
consequence: [Keep it here]
|
||||||
|
record_as: redoal_voices
|
||||||
|
encouragements:
|
||||||
|
- It stays where you left it.
|
||||||
|
features:
|
||||||
|
- name: ""
|
||||||
|
description: Up to a minute. Say it once; it is sealed as it is.
|
||||||
|
icon: lucide:mic
|
||||||
|
requirements:
|
||||||
|
- name: voice
|
||||||
|
label: Voice
|
||||||
|
type: voice
|
||||||
|
relay: wss://relay.redoal.com
|
||||||
|
value: "{key}"
|
||||||
|
optional: true
|
||||||
|
|
||||||
|
- name: Hear from this address
|
||||||
|
description: >
|
||||||
|
The fallback for a phone without the app: one note when
|
||||||
|
something is left at exactly this shape — and nothing about
|
||||||
|
anywhere else.
|
||||||
|
action: /subscribed
|
||||||
|
consequence: [Watch this address]
|
||||||
|
record_as: redoal_watchers
|
||||||
|
encouragements:
|
||||||
|
- Your shape now has a listener.
|
||||||
|
features:
|
||||||
|
- name: Where the note goes
|
||||||
|
description: >
|
||||||
|
The note is about one exact address, so it needs one exact
|
||||||
|
place to land.
|
||||||
|
icon: lucide:mail
|
||||||
|
requirements:
|
||||||
|
- name: email
|
||||||
|
label: Email
|
||||||
|
type: email
|
||||||
|
- name: key
|
||||||
|
label: Address
|
||||||
|
type: hidden
|
||||||
|
value: "{key}"
|
||||||
|
|
||||||
|
- name: What just happened
|
||||||
|
description: ""
|
||||||
|
features:
|
||||||
|
- name: An address, not an upload
|
||||||
|
description: >
|
||||||
|
The stroke became a 20-byte gesture key — an ordered chain of
|
||||||
|
headings, drawn back for you under the stroke. Similar shapes
|
||||||
|
land on nearby keys; picking a kept place makes its key yours.
|
||||||
|
- name: Nothing to undo
|
||||||
|
description: >
|
||||||
|
A drawn path is a fact, not an account. There is no profile
|
||||||
|
behind it unless you asked to hear from an address.
|
||||||
|
|
||||||
|
- name: Draw another
|
||||||
|
description: >
|
||||||
|
The network gets more interesting with every shape it hears.
|
||||||
|
action: /
|
||||||
|
consequence: [Back to the canvas]
|
||||||
@@ -21,3 +21,12 @@ alternatives:
|
|||||||
bucket: redoal_subscribers
|
bucket: redoal_subscribers
|
||||||
to: unsubscribed
|
to: unsubscribed
|
||||||
label: Unsubscribe me
|
label: Unsubscribe me
|
||||||
|
|
||||||
|
- name: Stop watching an address
|
||||||
|
description: >
|
||||||
|
Using the link from a note about a shape? Confirm below and that
|
||||||
|
address goes quiet for you.
|
||||||
|
self_transition:
|
||||||
|
bucket: redoal_watchers
|
||||||
|
to: unsubscribed
|
||||||
|
label: Stop watching
|
||||||
|
|||||||
Reference in New Issue
Block a user