Testers signup in the Releases alternative; redoal_testers bucket
Lint and reload / lint (push) Successful in 2s
Lint and reload / reload (push) Successful in 0s

Desktop releases run free (the gitea_releases listing, no sign-up); a
'Join the public testers' form on the same alternative collects the
Apple ID for a TestFlight invite, recorded to redoal_testers. New
confirmation page /joined-testers, and an aggregates entry with
attended_by pointing at the n8n TestFlight onboarding automation
(events.redoal_testers.* → App Store Connect).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ByshXuDEzH8hXh5qp4VgGk
This commit is contained in:
Bendik Aagaard Lynghaug
2026-09-12 16:44:20 +02:00
co-authored by Claude Opus 4.8
parent 45a9526ea2
commit 59fc40e0cb
3 changed files with 67 additions and 1 deletions
+16
View File
@@ -38,3 +38,19 @@ aggregates:
kept: { event: kept } kept: { event: kept }
transitions: transitions:
open: [removed, kept] open: [removed, kept]
# TestFlight beta signups (index.yaml's "Test it on your iPhone").
# Attended by automation, not a human desk: a new "requested" signup
# is handed to the App Store Connect API to invite the Apple ID to the
# closed beta; "withdrawn" (the /joined-testers self-transition) drops
# them from the invite list.
- bucket: redoal_testers
attended_by: >
n8n TestFlight onboarding workflow — ops/n8n/testflight-onboarding
in redoal/redoal. Consumes NATS events.redoal_testers.* and calls
App Store Connect POST /v1/betaTesters.
initial: open
states:
open: { event: requested }
withdrawn: { event: withdrawn }
transitions:
open: [withdrawn]
+21 -1
View File
@@ -119,7 +119,13 @@ alternatives:
- name: Follow the build as it lands - name: Follow the build as it lands
description: > description: >
The network as it is being built — and we need collaborators on The network as it is being built — and we need collaborators on
every new surface it grows. every new surface it grows. Desktop releases run free; the iPhone
build is a closed beta you can ask into below.
action: /joined-testers
consequence: [Request a TestFlight invite]
record_as: redoal_testers
encouragements:
- Watch your mail for the TestFlight invite.
features: features:
- name: Communicate - name: Communicate
description: > description: >
@@ -144,6 +150,19 @@ alternatives:
jq: > jq: >
.[] | {name: .name, description: .body, tag: .tag_name, .[] | {name: .name, description: .body, tag: .tag_name,
published: .published_at, url: null} published: .published_at, url: null}
- name: Join the public testers
description: >
The desktop releases above run free, no sign-up. The iPhone
build rides TestFlight (Apple's closed beta), so it needs the
Apple ID you use with the App Store — leave it and we'll send
an invite.
icon: lucide:smartphone
requirements:
- name: name
label: Name
- name: email
label: Apple ID email
type: email
- name: Hear from us when it matters - name: Hear from us when it matters
description: > description: >
@@ -166,3 +185,4 @@ alternatives:
- name: email - name: email
label: Email label: Email
type: email type: email
+30
View File
@@ -0,0 +1,30 @@
id: /joined-testers
route: ^/joined-testers
followup: true
name: What happens next?
description: >
You asked for a place in the closed beta — here's the shape of it.
alternatives:
- name: Your invite is on its way
description: ""
features:
- name: Check your mail
description: >
A TestFlight invite goes to the Apple ID you left. Tap it on
your iPhone, install TestFlight if you don't have it, and
redoal lands on your home screen.
icon: lucide:mail
- name: It's rough on purpose
description: >
A beta, and an artwork before a product — the networked edges
are where the interesting questions live. Tell us what breaks.
icon: lucide:hammer
- name: Withdraw from the beta
description: >
Changed your mind? Confirm below and we'll drop your Apple ID from
the invite list.
self_transition:
bucket: redoal_testers
to: withdrawn
label: Remove me from the beta