Rework copy voice, add /review, Kanidm-gated applicant review

English URLs throughout; review.yaml adds a qualifies-gated question
listing applicants via the generic NATS-KV resource mechanism, with
Invite/Decline transitions. Content pass: concrete/positive phrasing
(no negation constructions), warmer inclusive tone, light puns in the
encouragement lines.
This commit is contained in:
Bendik Aagaard Lynghaug
2026-07-29 19:39:00 +02:00
parent 5321f70540
commit d8628dbd15
5 changed files with 55 additions and 35 deletions
+9 -10
View File
@@ -1,18 +1,17 @@
id: /applied id: /applied
route: ^/applied route: ^/applied
name: Thanks — it's in front of us name: What happens now that you've applied?
description: > description: >
Someone here will actually read this and write back. If it's a Someone here will read this personally and write back. A match earns
match, you'll get a personal invite next, not an automated welcome a personal invitation, extended by hand.
email.
alternatives: alternatives:
- name: What happens now - name: Thanks — it's in front of us
description: "" description: ""
features: features:
- name: A person reads it - name: A person reads it
description: No filter decides for us. description: Every decision is made by someone who was actually there.
- name: You get an invite, not an account - name: You receive a personal invitation
description: > description: >
If it's a match, we hand you a real key that gives you A match earns you a real key — access, a measure of
access and a bit of responsibility and, eventually, the responsibility, and eventually, the standing to invite
ability to invite the next person yourself. someone else in.
+14 -13
View File
@@ -1,20 +1,19 @@
id: / id: /
name: We build things worth using name: What are you here for?
description: > description: >
Software, run the way a connoisseur pours a drink: slowly enough to Strategies that address problems — applied in software.
notice what's actually there. Three ways in — pick the one that fits.
alternatives: alternatives:
- name: I want something built - name: I want something built
description: > description: >
Infrastructure, tools, or a product that needs an owner who reads Infrastructure, tools, or a product — taken on by someone who
the whole glass before writing tasting notes. reads the whole brief before answering.
action: /project action: /project
consequence: [Tell us what you're after] consequence: [Tell us what you're after]
encouragements: encouragements:
- No proposal mill — a real reply from a person who read it. - We read every word before breaking ground.
features: features:
- name: What are you after? - name: What are you after?
description: A few lines is plenty to start a conversation. description: A few lines are enough to begin a conversation.
requirements: requirements:
- name: name - name: name
label: Name label: Name
@@ -24,14 +23,16 @@ alternatives:
- name: project - name: project
label: What do you need built? label: What do you need built?
type: textarea type: textarea
placeholder: The shape of it, not a spec — we'll ask questions. placeholder: Just the shape of it — we'll ask the right questions.
- name: Keep me posted - name: Keep me posted
description: > description: >
Occasional notes on what we're building and why. No funnel, no Considered notes on what we're building, and why — sent only when
growth-hacked cadence. there's something worth saying.
action: /subscribed action: /subscribed
consequence: [Subscribe] consequence: [Subscribe]
encouragements:
- Consider yourself posted.
features: features:
- name: Where to send it - name: Where to send it
description: "" description: ""
@@ -43,12 +44,12 @@ alternatives:
- name: I want in - name: I want in
description: > description: >
We onboard collaborators the same deliberate way we build — We onboard collaborators the same deliberate way we build —
by hand, with a real conversation, not a form that vanishes into by hand, through a real conversation.
a queue.
action: /applied action: /applied
consequence: [Apply] consequence: [Apply]
record_as: portal_applicants
encouragements: encouragements:
- Every application gets read by a person, not a filter. - Knock — we actually answer.
features: features:
- name: Who are you? - name: Who are you?
description: "" description: ""
+7 -7
View File
@@ -1,16 +1,16 @@
id: /project id: /project
route: ^/project route: ^/project
name: Got it name: So, what happens now?
description: > description: >
That's on its way to a real inbox, not a CRM stage. Expect a reply That's on its way to a real inbox. Expect a considered reply within a
from a person within a couple of days. couple of days.
alternatives: alternatives:
- name: What happens now - name: In short
description: "" description: ""
features: features:
- name: We read it - name: We read it
description: Properly — before we write back, not while we write back. description: In full, before we write back.
- name: We ask questions - name: We ask questions
description: > description: >
Usually more of them than you expect. Good software starts Usually more than you'd expect. Good software begins with a
with a good argument about what it's actually for. clear argument for what it's actually for.
+20
View File
@@ -0,0 +1,20 @@
id: /review
route: ^/review
name: Who's applied?
qualifies: owners
description: >
Sign in as an organizational owner to see who's applied.
alternatives:
- name: Applicants
description: ""
features:
- name: ""
description: ""
resource:
bucket: portal_applicants
requires_group: owners
transitions:
- to: invited
label: Invite
- to: declined
label: Decline
+5 -5
View File
@@ -1,14 +1,14 @@
id: /subscribed id: /subscribed
route: ^/subscribed route: ^/subscribed
name: You're on the list name: What should you expect?
description: > description: >
We'll write when there's something worth your time — that's the We'll write when there's something worth your time — that's the
whole promise. whole promise.
alternatives: alternatives:
- name: What to expect - name: You're on the list
description: "" description: ""
features: features:
- name: Rare, not routine - name: Rare, by design
description: No weekly filler. A few notes a year, maybe. description: A few considered notes a year — nothing more.
- name: Easy to leave - name: Easy to leave
description: Every note has a real unsubscribe link, not a maze. description: Every note carries a genuine, one-click unsubscribe.