runs: uhhm.no from a plan, three rounds of wording

Sonnet writes, qwen3:8b routes: 16 then 19 of 27 with descriptions,
19 then 21 of 27 on headings alone. One card took seven personas
until it named redoal; what remains is on the front door and mostly
a judgment the plan could make differently, not the words.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Bendik Aagaard Lynghaug
2026-09-23 15:09:35 +02:00
co-authored by Claude Fable 5.1
parent 04a6eeea85
commit 9e511b5b57
126 changed files with 11444 additions and 0 deletions
+69
View File
@@ -0,0 +1,69 @@
# uhhm.no from a plan, 2026-09-23
The live site (uhhm/questions) rebuilt from `plans/uhhm.yaml`: the
five buckets it already holds, with their live state and event names
(`events:` on the plan, new today), plus two new ones. `trials` is
the client feature: a business describes how work flows through it
and an owner approves the intake by hand before anything is built;
the n8n workflow that builds the preview is named as `attended_by`
and does not exist yet. `custody_requests` is UHHM as the custodian
of the redoal network: a desk of its own for the `custodians` group,
which owners watch and invite into.
Words by Claude Sonnet (`engines/claude.sh`, 142 s for 14 pages),
verifier green by construction. Lifting words from the live repo
(`--words-from`) was tried and dropped: the lift is by position, so
the old front door's three headings landed on the new front door's
first three cards regardless of meaning, and "Attention is earned"
is the wording the 2026-09-21 run found at fault. Visitor: qwen3:8b,
one task per call, shown the whole card; 15 held-out personas, the
eight from `runs/uhhm-2026-09-21` and seven for what is new.
| Round | Words | With descriptions | Headings only |
|---|---|---|---|
| 1 (`r1/`) | Sonnet, as built | 16 of 27 | 19 of 27 |
| 2 (`r2/`) | + `overrides.json`: the custody card and the cards behind both doors reworded by hand | 19 of 27 | 20 of 27 |
| 3 (`site/`) | + `overrides-r3.json`: the doors as who the visitor is | 19 of 27 | 21 of 27 |
Round 1's defect was one card: "Get an answer from the people who
keep the network" read as "contact us" and took seven personas of
every kind on the front door. Naming redoal in the heading fixed
that. Inside the doors, "Work with people who read the whole thing"
and "Get a page fixed the way you'd write it" crossed over until they
became "Work with us" and "Suggest a change to this website"; the
join door has routed 3 of 3 on every question since.
What is left is the front door, and it is mostly not wording:
- The exhibition visitor ("your drawing network") and the interaction
designer ("the drawing interface") go to the redoal card. The plan
says subscribe and collaborate; the visitor is not wrong.
- The tech journalist ("what you release") and the app builder (redoal
addresses in an app) go to the build door. Fair either way.
- On `/build`, the architecture firm and the climbing gym pick "See
your own business as a site, before you buy anything" over the
brief, with descriptions. A paying client who wants to see first is
the trial's whole point; if the plan should say so, make the trial
the door for both and the brief a field.
- The dance school lands three different places in three rounds: the
visitor model's noise floor, not the page.
`rate` on round 3: LIX 19 to 33 (very easy to easy) on every page,
against 25 to 35 for the earlier contractor build. Behind the doors,
which/where/asked/next are full marks on every page and every control
passes. On the front door, "which" is 1 of 3 for the brief and 1 of 2
for the trial and the proposal: a door heading cannot say what each
card behind it says.
Before the branch (uhhm/questions `trainer-rebuild`) merges: the
site runs portal v0.3.36 and `invite:`/`attended_by` need v0.3.40 or
later, so the branch bumps PORTAL_RELEASE and IRIS_RELEASE to
v0.3.42; the `custodians` group has to exist in id.uhhm.no; invites
need `KANIDM_API_TOKEN` in the repo's secrets, or the two invite forms
fail closed with a message; and any unsubscribe link already sent by
the newsletter points at `/subscribed`, which is now
`/decide/subscribe`.
Files: `score.sh` runs the whole scoring; `tasks-*.jsonl`,
`answers-*.jsonl`, `model.json`, `rated/` are round 3's; `words-r3.json`
is the words as used, the next rebuild starts from it with `--words`.
+27
View File
@@ -0,0 +1,27 @@
{"choice":"You run an organization that needs software built","confidence":0.95,"id":"architecture-firm@/"}
{"choice":"See your own business as a site, before you buy anything","confidence":0.95,"id":"architecture-firm@/build"}
{"choice":"You run an organization that needs software built","confidence":0.95,"id":"climbing-gym-founder@/"}
{"choice":"See your own business as a site, before you buy anything","confidence":0.95,"id":"climbing-gym-founder@/build"}
{"choice":"You run an organization that needs software built","confidence":0.95,"id":"municipality-buyer@/"}
{"choice":"Have us build it: send the brief","confidence":0.95,"id":"municipality-buyer@/build"}
{"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":0.95,"id":"exhibition-visitor@/"}
{"choice":"Hear from us now and then","confidence":0.95,"id":"exhibition-visitor@/join"}
{"choice":"You run an organization that needs software built","confidence":0.95,"id":"tech-journalist@/"}
{"choice":"Hear from us now and then","confidence":0.95,"id":"tech-journalist@/join"}
{"choice":"You want to join us, follow us, or fix a page on this site","confidence":0.95,"id":"rust-developer@/"}
{"choice":"Work with us","confidence":0.95,"id":"rust-developer@/join"}
{"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":0.95,"id":"interaction-designer@/"}
{"choice":"Work with us","confidence":0.95,"id":"interaction-designer@/join"}
{"choice":"You want to join us, follow us, or fix a page on this site","confidence":0.95,"id":"student-intern@/"}
{"choice":"Work with us","confidence":0.95,"id":"student-intern@/join"}
{"choice":"You run an organization that needs software built","confidence":0.95,"id":"plumber-owner@/"}
{"choice":"See your own business as a site, before you buy anything","confidence":0.95,"id":"plumber-owner@/build"}
{"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":0.95,"id":"dance-school@/"}
{"choice":"See your own business as a site, before you buy anything","confidence":0.95,"id":"dance-school@/build"}
{"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":1.0,"id":"node-runner@/"}
{"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":0.95,"id":"recorded-name@/"}
{"choice":"You run an organization that needs software built","confidence":0.95,"id":"app-builder@/"}
{"choice":"You want to join us, follow us, or fix a page on this site","confidence":0.95,"id":"wording-fix@/"}
{"choice":"Suggest a change to this website","confidence":0.95,"id":"wording-fix@/join"}
{"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":1.0,"id":"rewrite@/"}
{"choice":"Suggest a change to this website","confidence":1.0,"id":"rewrite@/join"}
+27
View File
@@ -0,0 +1,27 @@
{"choice":"You run an organization that needs software built","confidence":0.95,"id":"architecture-firm@/"}
{"choice":"Have us build it: send the brief","confidence":0.95,"id":"architecture-firm@/build"}
{"choice":"You run an organization that needs software built","confidence":0.95,"id":"climbing-gym-founder@/"}
{"choice":"Have us build it: send the brief","confidence":0.95,"id":"climbing-gym-founder@/build"}
{"choice":"You run an organization that needs software built","confidence":0.95,"id":"municipality-buyer@/"}
{"choice":"Have us build it: send the brief","confidence":0.95,"id":"municipality-buyer@/build"}
{"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":0.95,"id":"exhibition-visitor@/"}
{"choice":"Hear from us now and then","confidence":0.95,"id":"exhibition-visitor@/join"}
{"choice":"You run an organization that needs software built","confidence":0.95,"id":"tech-journalist@/"}
{"choice":"Hear from us now and then","confidence":0.95,"id":"tech-journalist@/join"}
{"choice":"You want to join us, follow us, or fix a page on this site","confidence":0.95,"id":"rust-developer@/"}
{"choice":"Work with us","confidence":0.95,"id":"rust-developer@/join"}
{"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":0.95,"id":"interaction-designer@/"}
{"choice":"Work with us","confidence":0.95,"id":"interaction-designer@/join"}
{"choice":"You want to join us, follow us, or fix a page on this site","confidence":0.95,"id":"student-intern@/"}
{"choice":"Work with us","confidence":0.95,"id":"student-intern@/join"}
{"choice":"You run an organization that needs software built","confidence":0.95,"id":"plumber-owner@/"}
{"choice":"See your own business as a site, before you buy anything","confidence":0.95,"id":"plumber-owner@/build"}
{"choice":"You want to join us, follow us, or fix a page on this site","confidence":0.95,"id":"dance-school@/"}
{"choice":"Have us build it: send the brief","confidence":0.95,"id":"dance-school@/build"}
{"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":0.95,"id":"node-runner@/"}
{"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":0.95,"id":"recorded-name@/"}
{"choice":"You are on the redoal network: a node, an app, or a recording that concerns you","confidence":0.95,"id":"app-builder@/"}
{"choice":"You want to join us, follow us, or fix a page on this site","confidence":0.95,"id":"wording-fix@/"}
{"choice":"Hear from us now and then","confidence":0.95,"id":"wording-fix@/join"}
{"choice":"You want to join us, follow us, or fix a page on this site","confidence":0.95,"id":"rewrite@/"}
{"choice":"Suggest a change to this website","confidence":0.95,"id":"rewrite@/join"}
+23
View File
@@ -0,0 +1,23 @@
OK: 14 question(s), 9 aggregate(s) valid
OK: access policy, 53 rule(s), validates
need "commission": / [You run an organization that needs software built] -> /build [Have us build it: send the brief] -> "projects"
need "trial": / [You run an organization that needs software built] -> /build [See your own business as a site, before you buy anything] -> "trials"
need "collaborate": / [You want to join us, follow us, or fix a page on this site] -> /join [Work with us] -> "applicants"
need "subscribe": / [You want to join us, follow us, or fix a page on this site] -> /join [Hear from us now and then] -> "subscribers"
need "propose": / [You want to join us, follow us, or fix a page on this site] -> /join [Suggest a change to this website] -> "development_proposals"
need "custody": / [You are on the redoal network: a node, an app, or a recording that concerns you] -> "custody_requests"
need "prospect": /owners/prospect [Keep an organization on your radar] -> "organizations"
OK: 7 need(s) structurally met, 0 planned, 15 persona(s)
wrote the simulation model to model.json
wrote 27 wording task(s) to tasks-full.jsonl
OK: 14 question(s), 9 aggregate(s) valid
OK: access policy, 53 rule(s), validates
need "commission": / [You run an organization that needs software built] -> /build [Have us build it: send the brief] -> "projects"
need "trial": / [You run an organization that needs software built] -> /build [See your own business as a site, before you buy anything] -> "trials"
need "collaborate": / [You want to join us, follow us, or fix a page on this site] -> /join [Work with us] -> "applicants"
need "subscribe": / [You want to join us, follow us, or fix a page on this site] -> /join [Hear from us now and then] -> "subscribers"
need "propose": / [You want to join us, follow us, or fix a page on this site] -> /join [Suggest a change to this website] -> "development_proposals"
need "custody": / [You are on the redoal network: a node, an app, or a recording that concerns you] -> "custody_requests"
need "prospect": /owners/prospect [Keep an organization on your radar] -> "organizations"
OK: 7 need(s) structurally met, 0 planned, 15 persona(s)
wrote 27 wording task(s) to tasks-skim.jsonl
+939
View File
@@ -0,0 +1,939 @@
{
"needs": [
{
"id": "commission",
"who": "an organization with a problem it wants software to solve",
"wants": "a considered reply to a brief, from people who read the whole thing",
"enters_as": null,
"lands_in": "projects",
"handled_by": "owners",
"done_when": [
"accepted",
"declined"
],
"success": [
"accepted"
],
"steps": [
{
"page": "/",
"question": "Who are you, and what do you need from UHHM?",
"options": [
{
"name": "You run an organization that needs software built",
"description": "Send us a brief, or first describe how work flows through your business and see it as a working site before you pay for anything."
},
{
"name": "You want to join us, follow us, or fix a page on this site",
"description": "A developer, designer or student who wants in; someone who wants a note now and then; or a reader who would reword a page on uhhm.no."
},
{
"name": "You are on the redoal network: a node, an app, or a recording that concerns you",
"description": "UHHM hosts the redoal network's first node and answers for what it keeps. Write here if you run a node, build on the network, or want something it holds about you looked at."
}
],
"expect": [
"You run an organization that needs software built"
],
"alternative": "You run an organization that needs software built",
"fields": []
},
{
"page": "/build",
"question": "Do you have a brief, or do you want to see your business as a site first?",
"options": [
{
"name": "Have us build it: send the brief",
"description": "You know the problem and want it solved, whether it is infrastructure, a tool, or the first version of a product. Write it up for people who read the whole thing."
},
{
"name": "See your own business as a site, before you buy anything",
"description": "Describe how requests, approvals and handovers move through your business today. We approve it by hand and build a working draft of a site for your own roles, for you to click through."
}
],
"expect": [
"Have us build it: send the brief"
],
"alternative": "Have us build it: send the brief",
"fields": [
{
"name": "name",
"label": "Your name",
"type": "text",
"optional": false,
"options": []
},
{
"name": "email",
"label": "Your email",
"type": "email",
"optional": false,
"options": []
},
{
"name": "project",
"label": "The problem you want solved",
"type": "textarea",
"optional": false,
"options": []
},
{
"name": "organization",
"label": "Your organization",
"type": "text",
"optional": false,
"options": []
},
{
"name": "org_contact",
"label": "Who we should talk to",
"type": "text",
"optional": true,
"options": []
}
]
}
]
},
{
"id": "trial",
"who": "someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything",
"wants": "a first draft of a site for their own roles, built from their own words and approved by a person first",
"enters_as": null,
"lands_in": "trials",
"handled_by": "owners",
"done_when": [
"previewed",
"declined"
],
"success": [
"previewed"
],
"steps": [
{
"page": "/",
"question": "Who are you, and what do you need from UHHM?",
"options": [
{
"name": "You run an organization that needs software built",
"description": "Send us a brief, or first describe how work flows through your business and see it as a working site before you pay for anything."
},
{
"name": "You want to join us, follow us, or fix a page on this site",
"description": "A developer, designer or student who wants in; someone who wants a note now and then; or a reader who would reword a page on uhhm.no."
},
{
"name": "You are on the redoal network: a node, an app, or a recording that concerns you",
"description": "UHHM hosts the redoal network's first node and answers for what it keeps. Write here if you run a node, build on the network, or want something it holds about you looked at."
}
],
"expect": [
"You run an organization that needs software built"
],
"alternative": "You run an organization that needs software built",
"fields": []
},
{
"page": "/build",
"question": "Do you have a brief, or do you want to see your business as a site first?",
"options": [
{
"name": "Have us build it: send the brief",
"description": "You know the problem and want it solved, whether it is infrastructure, a tool, or the first version of a product. Write it up for people who read the whole thing."
},
{
"name": "See your own business as a site, before you buy anything",
"description": "Describe how requests, approvals and handovers move through your business today. We approve it by hand and build a working draft of a site for your own roles, for you to click through."
}
],
"expect": [
"See your own business as a site, before you buy anything"
],
"alternative": "See your own business as a site, before you buy anything",
"fields": [
{
"name": "business",
"label": "Your business",
"type": "text",
"optional": false,
"options": []
},
{
"name": "email",
"label": "Your email",
"type": "email",
"optional": false,
"options": []
},
{
"name": "what_we_do",
"label": "What you do",
"type": "textarea",
"optional": false,
"options": []
},
{
"name": "who_comes_to_us",
"label": "Who comes to you",
"type": "textarea",
"optional": false,
"options": []
},
{
"name": "what_we_keep_track_of",
"label": "What you keep track of",
"type": "textarea",
"optional": false,
"options": []
},
{
"name": "who_is_involved",
"label": "Who's involved",
"type": "textarea",
"optional": false,
"options": []
},
{
"name": "what_slows_us_down",
"label": "What slows you down",
"type": "textarea",
"optional": true,
"options": []
}
]
}
]
},
{
"id": "collaborate",
"who": "someone who wants to work with us on what we build",
"wants": "to be read as a person, and invited in if there is a fit",
"enters_as": null,
"lands_in": "applicants",
"handled_by": "owners",
"done_when": [
"departed",
"declined"
],
"success": [
"departed"
],
"steps": [
{
"page": "/",
"question": "Who are you, and what do you need from UHHM?",
"options": [
{
"name": "You run an organization that needs software built",
"description": "Send us a brief, or first describe how work flows through your business and see it as a working site before you pay for anything."
},
{
"name": "You want to join us, follow us, or fix a page on this site",
"description": "A developer, designer or student who wants in; someone who wants a note now and then; or a reader who would reword a page on uhhm.no."
},
{
"name": "You are on the redoal network: a node, an app, or a recording that concerns you",
"description": "UHHM hosts the redoal network's first node and answers for what it keeps. Write here if you run a node, build on the network, or want something it holds about you looked at."
}
],
"expect": [
"You want to join us, follow us, or fix a page on this site"
],
"alternative": "You want to join us, follow us, or fix a page on this site",
"fields": []
},
{
"page": "/join",
"question": "How do you want to be part of this?",
"options": [
{
"name": "Work with us",
"description": "A developer, a designer, a student: say what you would want to build with us, and we read it as a person and invite you in if there is a fit."
},
{
"name": "Hear from us now and then",
"description": "You'd rather hear from us now and then than check back on your own."
},
{
"name": "Suggest a change to this website",
"description": "You have spotted a page on uhhm.no that should read differently, and you know roughly how."
}
],
"expect": [
"Work with us"
],
"alternative": "Work with us",
"fields": [
{
"name": "name",
"label": "Name",
"type": "text",
"optional": false,
"options": []
},
{
"name": "email",
"label": "Email",
"type": "email",
"optional": false,
"options": []
},
{
"name": "interest",
"label": "What kind of work",
"type": "textarea",
"optional": false,
"options": []
},
{
"name": "note",
"label": "Tell us more",
"type": "textarea",
"optional": true,
"options": []
}
]
}
]
},
{
"id": "subscribe",
"who": "someone who wants to hear from us when there is something to say",
"wants": "a note now and then, and an easy way out",
"enters_as": null,
"lands_in": "subscribers",
"handled_by": "owners",
"done_when": [
"unsubscribed"
],
"success": [],
"steps": [
{
"page": "/",
"question": "Who are you, and what do you need from UHHM?",
"options": [
{
"name": "You run an organization that needs software built",
"description": "Send us a brief, or first describe how work flows through your business and see it as a working site before you pay for anything."
},
{
"name": "You want to join us, follow us, or fix a page on this site",
"description": "A developer, designer or student who wants in; someone who wants a note now and then; or a reader who would reword a page on uhhm.no."
},
{
"name": "You are on the redoal network: a node, an app, or a recording that concerns you",
"description": "UHHM hosts the redoal network's first node and answers for what it keeps. Write here if you run a node, build on the network, or want something it holds about you looked at."
}
],
"expect": [
"You want to join us, follow us, or fix a page on this site"
],
"alternative": "You want to join us, follow us, or fix a page on this site",
"fields": []
},
{
"page": "/join",
"question": "How do you want to be part of this?",
"options": [
{
"name": "Work with us",
"description": "A developer, a designer, a student: say what you would want to build with us, and we read it as a person and invite you in if there is a fit."
},
{
"name": "Hear from us now and then",
"description": "You'd rather hear from us now and then than check back on your own."
},
{
"name": "Suggest a change to this website",
"description": "You have spotted a page on uhhm.no that should read differently, and you know roughly how."
}
],
"expect": [
"Hear from us now and then"
],
"alternative": "Hear from us now and then",
"fields": [
{
"name": "name",
"label": "Name",
"type": "text",
"optional": false,
"options": []
},
{
"name": "email",
"label": "Email",
"type": "email",
"optional": false,
"options": []
}
]
}
]
},
{
"id": "propose",
"who": "a visitor who sees how a page on this site should change",
"wants": "the change read by a person and, if approved, made",
"enters_as": null,
"lands_in": "development_proposals",
"handled_by": "owners",
"done_when": [
"approved",
"rejected"
],
"success": [
"approved"
],
"steps": [
{
"page": "/",
"question": "Who are you, and what do you need from UHHM?",
"options": [
{
"name": "You run an organization that needs software built",
"description": "Send us a brief, or first describe how work flows through your business and see it as a working site before you pay for anything."
},
{
"name": "You want to join us, follow us, or fix a page on this site",
"description": "A developer, designer or student who wants in; someone who wants a note now and then; or a reader who would reword a page on uhhm.no."
},
{
"name": "You are on the redoal network: a node, an app, or a recording that concerns you",
"description": "UHHM hosts the redoal network's first node and answers for what it keeps. Write here if you run a node, build on the network, or want something it holds about you looked at."
}
],
"expect": [
"You want to join us, follow us, or fix a page on this site"
],
"alternative": "You want to join us, follow us, or fix a page on this site",
"fields": []
},
{
"page": "/join",
"question": "How do you want to be part of this?",
"options": [
{
"name": "Work with us",
"description": "A developer, a designer, a student: say what you would want to build with us, and we read it as a person and invite you in if there is a fit."
},
{
"name": "Hear from us now and then",
"description": "You'd rather hear from us now and then than check back on your own."
},
{
"name": "Suggest a change to this website",
"description": "You have spotted a page on uhhm.no that should read differently, and you know roughly how."
}
],
"expect": [
"Suggest a change to this website"
],
"alternative": "Suggest a change to this website",
"fields": [
{
"name": "submitted_by",
"label": "Your name",
"type": "text",
"optional": false,
"options": []
},
{
"name": "email",
"label": "Email",
"type": "email",
"optional": true,
"options": []
},
{
"name": "page",
"label": "Which page",
"type": "text",
"optional": true,
"options": []
},
{
"name": "rationale",
"label": "Why this is better",
"type": "textarea",
"optional": false,
"options": []
},
{
"name": "proposed_yaml",
"label": "Your proposed text",
"type": "textarea",
"optional": false,
"options": []
}
]
}
]
},
{
"id": "custody",
"who": "someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node",
"wants": "an answer from a custodian, and action where the network keeps something it should not",
"enters_as": null,
"lands_in": "custody_requests",
"handled_by": "custodians",
"done_when": [
"resolved",
"declined"
],
"success": [
"resolved"
],
"steps": [
{
"page": "/",
"question": "Who are you, and what do you need from UHHM?",
"options": [
{
"name": "You run an organization that needs software built",
"description": "Send us a brief, or first describe how work flows through your business and see it as a working site before you pay for anything."
},
{
"name": "You want to join us, follow us, or fix a page on this site",
"description": "A developer, designer or student who wants in; someone who wants a note now and then; or a reader who would reword a page on uhhm.no."
},
{
"name": "You are on the redoal network: a node, an app, or a recording that concerns you",
"description": "UHHM hosts the redoal network's first node and answers for what it keeps. Write here if you run a node, build on the network, or want something it holds about you looked at."
}
],
"expect": [
"You are on the redoal network: a node, an app, or a recording that concerns you"
],
"alternative": "You are on the redoal network: a node, an app, or a recording that concerns you",
"fields": [
{
"name": "name",
"label": "Name",
"type": "text",
"optional": false,
"options": []
},
{
"name": "email",
"label": "Email",
"type": "email",
"optional": false,
"options": []
},
{
"name": "about",
"label": "What's going on",
"type": "select",
"optional": false,
"options": [
"Running a node of my own",
"Building on the network",
"Something the network keeps about me",
"Something else"
]
},
{
"name": "what",
"label": "In short",
"type": "textarea",
"optional": false,
"options": []
}
]
}
]
},
{
"id": "prospect",
"who": "an owner who has met an organization worth following up",
"wants": "it written down and walked through its states from the desk",
"enters_as": "owners",
"lands_in": "organizations",
"handled_by": "owners",
"done_when": [
"past_client"
],
"success": [],
"steps": [
{
"page": "/owners/prospect",
"question": "Is there an organization I should be keeping track of?",
"options": [
{
"name": "Keep an organization on your radar",
"description": "One line per organization worth watching, moved through the stages as things develop."
}
],
"expect": [
"Keep an organization on your radar"
],
"alternative": "Keep an organization on your radar",
"fields": [
{
"name": "name",
"label": "Organization",
"type": "text",
"optional": false,
"options": []
},
{
"name": "contact",
"label": "Contact",
"type": "text",
"optional": false,
"options": []
},
{
"name": "note",
"label": "Note",
"type": "textarea",
"optional": true,
"options": []
}
]
}
]
}
],
"buckets": {
"projects": {
"initial": "open",
"transitions": {
"open": [
"accepted",
"declined"
]
},
"desks": [
{
"page": "/owners",
"group": "owners",
"moves": [
{
"from": "open",
"to": "accepted",
"label": "Accept brief"
},
{
"from": "open",
"to": "declined",
"label": "Decline brief"
}
]
}
],
"self_moves": []
},
"trials": {
"initial": "open",
"transitions": {
"approved": [
"previewed",
"declined"
],
"open": [
"approved",
"declined"
]
},
"desks": [
{
"page": "/owners",
"group": "owners",
"moves": [
{
"from": "approved",
"to": "previewed",
"label": "Mark previewed"
},
{
"from": "approved",
"to": "declined",
"label": "Decline trial"
},
{
"from": "open",
"to": "approved",
"label": "Approve trial"
},
{
"from": "open",
"to": "declined",
"label": "Decline trial"
}
]
}
],
"self_moves": []
},
"applicants": {
"initial": "open",
"transitions": {
"open": [
"invited",
"declined"
],
"invited": [
"active",
"declined"
],
"active": [
"departed",
"declined"
]
},
"desks": [
{
"page": "/owners",
"group": "owners",
"moves": [
{
"from": "active",
"to": "departed",
"label": "Mark departed"
},
{
"from": "active",
"to": "declined",
"label": "End collaboration"
},
{
"from": "invited",
"to": "active",
"label": "Confirm active"
},
{
"from": "invited",
"to": "declined",
"label": "Withdraw invite"
},
{
"from": "open",
"to": "invited",
"label": "Send invite"
},
{
"from": "open",
"to": "declined",
"label": "Decline applicant"
}
]
}
],
"self_moves": []
},
"subscribers": {
"initial": "open",
"transitions": {
"open": [
"unsubscribed"
]
},
"desks": [
{
"page": "/owners",
"group": "owners",
"moves": [
{
"from": "open",
"to": "unsubscribed",
"label": "Unsubscribe them"
}
]
}
],
"self_moves": [
"unsubscribed"
]
},
"development_proposals": {
"initial": "open",
"transitions": {
"open": [
"approved",
"rejected"
]
},
"desks": [
{
"page": "/owners",
"group": "owners",
"moves": [
{
"from": "open",
"to": "approved",
"label": "Approve change"
},
{
"from": "open",
"to": "rejected",
"label": "Reject change"
}
]
}
],
"self_moves": []
},
"custody_requests": {
"initial": "open",
"transitions": {
"in_dialogue": [
"resolved",
"declined"
],
"open": [
"in_dialogue",
"declined"
]
},
"desks": [
{
"page": "/custodians",
"group": "custodians",
"moves": [
{
"from": "in_dialogue",
"to": "resolved",
"label": "Mark resolved"
},
{
"from": "in_dialogue",
"to": "declined",
"label": "Close, no action"
},
{
"from": "open",
"to": "in_dialogue",
"label": "Open dialogue"
},
{
"from": "open",
"to": "declined",
"label": "Decline case"
}
]
},
{
"page": "/owners",
"group": "owners",
"moves": []
}
],
"self_moves": []
},
"organizations": {
"initial": "prospect",
"transitions": {
"prospect": [
"client",
"past_client"
],
"client": [
"past_client"
]
},
"desks": [
{
"page": "/owners",
"group": "owners",
"moves": [
{
"from": "client",
"to": "past_client",
"label": "Mark past client"
},
{
"from": "prospect",
"to": "client",
"label": "Mark as client"
},
{
"from": "prospect",
"to": "past_client",
"label": "Mark not pursued"
}
]
}
],
"self_moves": []
}
},
"personas": [
{
"id": "architecture-firm",
"need": "commission",
"text": "We run a small architecture firm and our project files are scattered across three cloud drives. We want to pay someone to set up proper storage and backups we control ourselves."
},
{
"id": "climbing-gym-founder",
"need": "commission",
"text": "I have an idea for a booking app for climbing gyms and I'm looking for a team that can build the first version with me."
},
{
"id": "municipality-buyer",
"need": "commission",
"text": "Our municipality needs an internal tool for tracking building permits. We are looking for a vendor who can scope it and deliver it."
},
{
"id": "exhibition-visitor",
"need": "subscribe",
"text": "I saw your drawing network at an exhibition and liked it. I don't want to get involved, I'd just like to know when there is news."
},
{
"id": "tech-journalist",
"need": "subscribe",
"text": "I write about Nordic technology. Keep me posted on what you release so I can cover it."
},
{
"id": "rust-developer",
"need": "collaborate",
"text": "I'm a Rust developer between jobs and I like that you build in the open. I would love to contribute, and maybe join you."
},
{
"id": "interaction-designer",
"need": "collaborate",
"text": "I'm an interaction designer. I want to work with you on the drawing interface."
},
{
"id": "student-intern",
"need": "collaborate",
"text": "I'm a computer science student looking for a summer internship doing infrastructure work."
},
{
"id": "plumber-owner",
"need": "trial",
"text": "I run a plumbing company with four vans. Jobs come in by phone and text and some get lost. I'd like to see how this would look for us before I spend any money."
},
{
"id": "dance-school",
"need": "trial",
"text": "We are a dance school. Enrolments, cancellations and invoices all go through one email inbox that only I understand. Can you show me a version made for us?"
},
{
"id": "node-runner",
"need": "custody",
"text": "I run a small server in Berlin and want to host a redoal node that peers with yours. Who do I talk to?"
},
{
"id": "recorded-name",
"need": "custody",
"text": "Someone left a recording on redoal that says my full name and where I live. I want it gone, and I want to know who is responsible for that network."
},
{
"id": "app-builder",
"need": "custody",
"text": "I'm building a music app and would like to use redoal's gesture addresses in it. Is that possible, and who decides?"
},
{
"id": "wording-fix",
"need": "propose",
"text": "The subscribe page should say how often you actually write. I'd like to suggest that exact change to the page."
},
{
"id": "rewrite",
"need": "propose",
"text": "One page on this site reads wrong to me and I know exactly how I'd rewrite it. Where do I send the new text?"
}
]
}
+23
View File
@@ -0,0 +1,23 @@
{
"questions/index.yaml": {
"question": "Who are you, and what do you need from UHHM?",
"doors": {
"build": {
"heading": "You run an organization that needs software built",
"description": "Send us a brief, or first describe how work flows through your business and see it as a working site before you pay for anything.",
"for_whom": "For a business or an organization with a job for us"
},
"join": {
"heading": "You want to join us, follow us, or fix a page on this site",
"description": "A developer, designer or student who wants in; someone who wants a note now and then; or a reader who would reword a page on uhhm.no.",
"for_whom": "For a person, on their own behalf"
}
},
"needs": {
"custody": {
"heading": "You are on the redoal network: a node, an app, or a recording that concerns you",
"description": "UHHM hosts the redoal network's first node and answers for what it keeps. Write here if you run a node, build on the network, or want something it holds about you looked at."
}
}
}
}
+54
View File
@@ -0,0 +1,54 @@
{
"questions/index.yaml": {
"doors": {
"build": {
"heading": "Get software built, or try a site for your business first",
"description": "Send us a brief, or describe how work flows through your business and see it as a working site before you pay for anything."
},
"join": {
"heading": "Work with us, hear from us, or change this website",
"description": "Join us as a collaborator, get a note now and then, or suggest a change to a page on uhhm.no."
}
},
"needs": {
"custody": {
"heading": "About the redoal network: run a node, build on it, or have something removed",
"description": "UHHM hosts the redoal network's first node and answers for what it keeps. Write here if you run a node, build on the network, or want something it holds about you looked at.",
"road_description": "A custodian opens a dialogue with you. A node gets its peer, a builder gets an answer, and something the network should not keep gets removed. Either way you hear what was decided.",
"form_description": "Say which of the four it is, and what you need, in a few lines."
}
}
},
"questions/build/index.yaml": {
"question": "Do you have a brief, or do you want to see your business as a site first?",
"needs": {
"commission": {
"heading": "Have us build it: send the brief",
"description": "You know the problem and want it solved, whether it is infrastructure, a tool, or the first version of a product. Write it up for people who read the whole thing."
},
"trial": {
"heading": "See your own business as a site, before you buy anything",
"description": "Describe how requests, approvals and handovers move through your business today. We approve it by hand and build a working draft of a site for your own roles, for you to click through."
}
}
},
"questions/join/index.yaml": {
"needs": {
"collaborate": {
"heading": "Work with us",
"description": "A developer, a designer, a student: say what you would want to build with us, and we read it as a person and invite you in if there is a fit."
},
"subscribe": {
"heading": "Hear from us now and then"
},
"propose": {
"heading": "Suggest a change to this website",
"description": "You have spotted a page on uhhm.no that should read differently, and you know roughly how."
}
}
},
"questions/custodians/index.yaml": {
"question": "What is waiting on the custodians?",
"confirm": "Confirm"
}
}
@@ -0,0 +1,27 @@
{"choice":"Get an answer from the people who keep the network","confidence":0.95,"id":"architecture-firm@/"}
{"choice":"A considered reply to your brief","confidence":0.95,"id":"architecture-firm@/build"}
{"choice":"Get software built around your problem","confidence":0.85,"id":"climbing-gym-founder@/"}
{"choice":"A first draft of your own site","confidence":0.95,"id":"climbing-gym-founder@/build"}
{"choice":"Get software built around your problem","confidence":0.85,"id":"municipality-buyer@/"}
{"choice":"A considered reply to your brief","confidence":0.95,"id":"municipality-buyer@/build"}
{"choice":"Get an answer from the people who keep the network","confidence":0.85,"id":"exhibition-visitor@/"}
{"choice":"Hear from us only when there's something to say","confidence":1.0,"id":"exhibition-visitor@/join"}
{"choice":"Get an answer from the people who keep the network","confidence":0.95,"id":"tech-journalist@/"}
{"choice":"Hear from us only when there's something to say","confidence":0.95,"id":"tech-journalist@/join"}
{"choice":"Work with us, or just stay in touch","confidence":0.85,"id":"rust-developer@/"}
{"choice":"Work with people who read the whole thing","confidence":0.95,"id":"rust-developer@/join"}
{"choice":"Get an answer from the people who keep the network","confidence":0.95,"id":"interaction-designer@/"}
{"choice":"Get a page fixed the way you'd write it","confidence":0.95,"id":"interaction-designer@/join"}
{"choice":"Work with us, or just stay in touch","confidence":0.95,"id":"student-intern@/"}
{"choice":"Work with people who read the whole thing","confidence":0.95,"id":"student-intern@/join"}
{"choice":"Get software built around your problem","confidence":0.95,"id":"plumber-owner@/"}
{"choice":"A first draft of your own site","confidence":0.95,"id":"plumber-owner@/build"}
{"choice":"Get an answer from the people who keep the network","confidence":0.95,"id":"dance-school@/"}
{"choice":"A first draft of your own site","confidence":0.95,"id":"dance-school@/build"}
{"choice":"Get an answer from the people who keep the network","confidence":0.95,"id":"node-runner@/"}
{"choice":"Get an answer from the people who keep the network","confidence":0.95,"id":"recorded-name@/"}
{"choice":"Get software built around your problem","confidence":0.95,"id":"app-builder@/"}
{"choice":"Get an answer from the people who keep the network","confidence":0.95,"id":"wording-fix@/"}
{"choice":"Work with people who read the whole thing","confidence":0.95,"id":"wording-fix@/join"}
{"choice":"Get an answer from the people who keep the network","confidence":0.95,"id":"rewrite@/"}
{"choice":"Get a page fixed the way you'd write it","confidence":1.0,"id":"rewrite@/join"}
@@ -0,0 +1,27 @@
{"choice":"Get an answer from the people who keep the network","confidence":0.95,"id":"architecture-firm@/"}
{"choice":"A considered reply to your brief","confidence":0.95,"id":"architecture-firm@/build"}
{"choice":"Get software built around your problem","confidence":0.95,"id":"climbing-gym-founder@/"}
{"choice":"A considered reply to your brief","confidence":0.85,"id":"climbing-gym-founder@/build"}
{"choice":"Get software built around your problem","confidence":0.95,"id":"municipality-buyer@/"}
{"choice":"A considered reply to your brief","confidence":0.95,"id":"municipality-buyer@/build"}
{"choice":"Work with us, or just stay in touch","confidence":0.95,"id":"exhibition-visitor@/"}
{"choice":"Hear from us only when there's something to say","confidence":1.0,"id":"exhibition-visitor@/join"}
{"choice":"Work with us, or just stay in touch","confidence":0.95,"id":"tech-journalist@/"}
{"choice":"Hear from us only when there's something to say","confidence":0.95,"id":"tech-journalist@/join"}
{"choice":"Work with us, or just stay in touch","confidence":0.95,"id":"rust-developer@/"}
{"choice":"Get a page fixed the way you'd write it","confidence":0.95,"id":"rust-developer@/join"}
{"choice":"Work with us, or just stay in touch","confidence":0.95,"id":"interaction-designer@/"}
{"choice":"Get a page fixed the way you'd write it","confidence":0.95,"id":"interaction-designer@/join"}
{"choice":"Get an answer from the people who keep the network","confidence":0.95,"id":"student-intern@/"}
{"choice":"Hear from us only when there's something to say","confidence":0.95,"id":"student-intern@/join"}
{"choice":"Get software built around your problem","confidence":0.95,"id":"plumber-owner@/"}
{"choice":"A first draft of your own site","confidence":0.85,"id":"plumber-owner@/build"}
{"choice":"Get software built around your problem","confidence":0.95,"id":"dance-school@/"}
{"choice":"A considered reply to your brief","confidence":0.95,"id":"dance-school@/build"}
{"choice":"Get an answer from the people who keep the network","confidence":0.95,"id":"node-runner@/"}
{"choice":"Get an answer from the people who keep the network","confidence":0.95,"id":"recorded-name@/"}
{"choice":"Get software built around your problem","confidence":0.95,"id":"app-builder@/"}
{"choice":"Work with us, or just stay in touch","confidence":0.95,"id":"wording-fix@/"}
{"choice":"Hear from us only when there's something to say","confidence":0.95,"id":"wording-fix@/join"}
{"choice":"Work with us, or just stay in touch","confidence":0.95,"id":"rewrite@/"}
{"choice":"Get a page fixed the way you'd write it","confidence":1.0,"id":"rewrite@/join"}
+274
View File
@@ -0,0 +1,274 @@
{
"collaborate": {
"pages": [
{
"control": {
"asked": 0,
"next": null,
"where": 1,
"which": 0
},
"control_ok": true,
"followup_shown": false,
"lix": 25.48076923076923,
"options": 3,
"overloaded": false,
"page": "/",
"personas": 3,
"required_fields": 0,
"understanding": {
"asked": 3,
"next": null,
"where": 3,
"which": 2
}
},
{
"control": {
"asked": 0,
"next": 0,
"where": 0,
"which": 0
},
"control_ok": true,
"followup_shown": true,
"lix": 21.791208791208792,
"options": 3,
"overloaded": false,
"page": "/join",
"personas": 3,
"required_fields": 3,
"understanding": {
"asked": 3,
"next": 3,
"where": 3,
"which": 3
}
}
],
"steps": 2
},
"commission": {
"pages": [
{
"control": {
"asked": 0,
"next": null,
"where": 0,
"which": 0
},
"control_ok": true,
"followup_shown": false,
"lix": 25.48076923076923,
"options": 3,
"overloaded": false,
"page": "/",
"personas": 3,
"required_fields": 0,
"understanding": {
"asked": 3,
"next": null,
"where": 2,
"which": 2
}
},
{
"control": {
"asked": 0,
"next": 0,
"where": 0,
"which": 0
},
"control_ok": true,
"followup_shown": true,
"lix": 27.436974789915965,
"options": 2,
"overloaded": false,
"page": "/build",
"personas": 3,
"required_fields": 4,
"understanding": {
"asked": 3,
"next": 3,
"where": 3,
"which": 3
}
}
],
"steps": 2
},
"custody": {
"pages": [
{
"control": {
"asked": 0,
"next": 0,
"where": 0,
"which": 0
},
"control_ok": true,
"followup_shown": true,
"lix": 27.28985507246377,
"options": 3,
"overloaded": false,
"page": "/",
"personas": 3,
"required_fields": 4,
"understanding": {
"asked": 3,
"next": 3,
"where": 3,
"which": 3
}
}
],
"steps": 1
},
"propose": {
"pages": [
{
"control": {
"asked": 0,
"next": null,
"where": 0,
"which": 0
},
"control_ok": true,
"followup_shown": false,
"lix": 25.48076923076923,
"options": 3,
"overloaded": false,
"page": "/",
"personas": 2,
"required_fields": 0,
"understanding": {
"asked": 2,
"next": null,
"where": 1,
"which": 1
}
},
{
"control": {
"asked": 0,
"next": 0,
"where": 0,
"which": 0
},
"control_ok": true,
"followup_shown": true,
"lix": 26.186813186813186,
"options": 3,
"overloaded": false,
"page": "/join",
"personas": 2,
"required_fields": 3,
"understanding": {
"asked": 2,
"next": 2,
"where": 2,
"which": 2
}
}
],
"steps": 2
},
"subscribe": {
"pages": [
{
"control": {
"asked": 0,
"next": null,
"where": 0,
"which": 0
},
"control_ok": true,
"followup_shown": false,
"lix": 25.48076923076923,
"options": 3,
"overloaded": false,
"page": "/",
"personas": 2,
"required_fields": 0,
"understanding": {
"asked": 2,
"next": null,
"where": 2,
"which": 2
}
},
{
"control": {
"asked": 0,
"next": 0,
"where": 0,
"which": 0
},
"control_ok": true,
"followup_shown": true,
"lix": 23.909407665505228,
"options": 3,
"overloaded": false,
"page": "/join",
"personas": 2,
"required_fields": 2,
"understanding": {
"asked": 2,
"next": 2,
"where": 2,
"which": 2
}
}
],
"steps": 2
},
"trial": {
"pages": [
{
"control": {
"asked": 0,
"next": null,
"where": 0,
"which": 0
},
"control_ok": true,
"followup_shown": false,
"lix": 25.48076923076923,
"options": 3,
"overloaded": false,
"page": "/",
"personas": 2,
"required_fields": 0,
"understanding": {
"asked": 2,
"next": null,
"where": 0,
"which": 0
}
},
{
"control": {
"asked": 0,
"next": 0,
"where": 0,
"which": 0
},
"control_ok": true,
"followup_shown": true,
"lix": 29.46376811594203,
"options": 2,
"overloaded": true,
"page": "/build",
"personas": 2,
"required_fields": 6,
"understanding": {
"asked": 2,
"next": 2,
"where": 2,
"which": 2
}
}
],
"steps": 2
}
}
+39
View File
@@ -0,0 +1,39 @@
== answer full
== answer skim
== score full
MISROUTE: architecture-firm@/: picked "Get an answer from the people who keep the network" (0.95), the need is met by ["Get software built around your problem"]
MISROUTE: climbing-gym-founder@/build: picked "A first draft of your own site" (0.95), the need is met by ["A considered reply to your brief"]
MISROUTE: exhibition-visitor@/: picked "Get an answer from the people who keep the network" (0.85), the need is met by ["Work with us, or just stay in touch"]
MISROUTE: tech-journalist@/: picked "Get an answer from the people who keep the network" (0.95), the need is met by ["Work with us, or just stay in touch"]
MISROUTE: interaction-designer@/: picked "Get an answer from the people who keep the network" (0.95), the need is met by ["Work with us, or just stay in touch"]
MISROUTE: interaction-designer@/join: picked "Get a page fixed the way you'd write it" (0.95), the need is met by ["Work with people who read the whole thing"]
MISROUTE: dance-school@/: picked "Get an answer from the people who keep the network" (0.95), the need is met by ["Get software built around your problem"]
MISROUTE: app-builder@/: picked "Get software built around your problem" (0.95), the need is met by ["Get an answer from the people who keep the network"]
MISROUTE: wording-fix@/: picked "Get an answer from the people who keep the network" (0.95), the need is met by ["Work with us, or just stay in touch"]
MISROUTE: wording-fix@/join: picked "Work with people who read the whole thing" (0.95), the need is met by ["Get a page fixed the way you'd write it"]
MISROUTE: rewrite@/: picked "Get an answer from the people who keep the network" (0.95), the need is met by ["Work with us, or just stay in touch"]
wording: 16/27 routed right (59%)
== score skim
MISROUTE: architecture-firm@/: picked "Get an answer from the people who keep the network" (0.95), the need is met by ["Get software built around your problem"]
MISROUTE: rust-developer@/join: picked "Get a page fixed the way you'd write it" (0.95), the need is met by ["Work with people who read the whole thing"]
MISROUTE: interaction-designer@/join: picked "Get a page fixed the way you'd write it" (0.95), the need is met by ["Work with people who read the whole thing"]
MISROUTE: student-intern@/: picked "Get an answer from the people who keep the network" (0.95), the need is met by ["Work with us, or just stay in touch"]
MISROUTE: student-intern@/join: picked "Hear from us only when there's something to say" (0.95), the need is met by ["Work with people who read the whole thing"]
MISROUTE: dance-school@/build: picked "A considered reply to your brief" (0.95), the need is met by ["A first draft of your own site"]
MISROUTE: app-builder@/: picked "Get software built around your problem" (0.95), the need is met by ["Get an answer from the people who keep the network"]
MISROUTE: wording-fix@/join: picked "Hear from us only when there's something to say" (0.95), the need is met by ["Get a page fixed the way you'd write it"]
wording: 19/27 routed right (70%)
== rate
need LIX which where asked next gutted twin says page load
commission @/ 25 very easy 2/3 2/3 3/3 - 0/0/0/- ok 3 options, 0 required
commission @/build 27 very easy 3/3 3/3 3/3 3/3 0/0/0/0 ok 2 options, 4 required
trial @/ 25 very easy 0/2 0/2 2/2 - 0/0/0/- ok 3 options, 0 required
trial @/build 29 very easy 2/2 2/2 2/2 2/2 0/0/0/0 ok 2 options, 6 required - SPLIT
collaborate @/ 25 very easy 2/3 3/3 3/3 - 0/1/0/- ok 3 options, 0 required
collaborate @/join 22 very easy 3/3 3/3 3/3 3/3 0/0/0/0 ok 3 options, 3 required
subscribe @/ 25 very easy 2/2 2/2 2/2 - 0/0/0/- ok 3 options, 0 required
subscribe @/join 24 very easy 2/2 2/2 2/2 2/2 0/0/0/0 ok 3 options, 2 required
propose @/ 25 very easy 1/2 1/2 2/2 - 0/0/0/- ok 3 options, 0 required
propose @/join 26 very easy 2/2 2/2 2/2 2/2 0/0/0/0 ok 3 options, 3 required
custody 27 very easy 3/3 3/3 3/3 3/3 0/0/0/0 ok 3 options, 4 required
== done
@@ -0,0 +1,113 @@
aggregates:
- bucket: applicants
initial: open
states:
active:
event: onboarded
declined:
event: declined
departed:
event: departed
invited:
event: invited
open:
event: applied
transitions:
active:
- departed
- declined
invited:
- active
- declined
open:
- invited
- declined
- bucket: custody_requests
initial: open
states:
declined:
event: declined
in_dialogue:
event: in_dialogue
open:
event: received
resolved:
event: resolved
transitions:
in_dialogue:
- resolved
- declined
open:
- in_dialogue
- declined
- bucket: development_proposals
initial: open
states:
approved:
event: approved
open:
event: proposed
rejected:
event: rejected
transitions:
open:
- approved
- rejected
- bucket: organizations
initial: prospect
states:
client:
event: became_client
past_client:
event: churned
prospect:
event: identified
transitions:
client:
- past_client
prospect:
- client
- past_client
- bucket: projects
initial: open
states:
accepted:
event: accepted
declined:
event: declined
open:
event: submitted
transitions:
open:
- accepted
- declined
- bucket: subscribers
initial: open
states:
open:
event: subscribed
unsubscribed:
event: unsubscribed
transitions:
open:
- unsubscribed
- attended_by: |
approved -> previewed: the n8n workflow that builds the draft site from an approved intake (docker, rauthy, portal content) and sends the preview link. Until it exists, owners run portal-trainer by hand and press the button.
bucket: trials
initial: open
states:
approved:
event: approved
declined:
event: declined
open:
event: received
previewed:
event: previewed
transitions:
approved:
- previewed
- declined
open:
- approved
- declined
@@ -0,0 +1,174 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/build/index.yaml
It is a page one kind of visitor reaches from the front door. `question` is what this page asks them; under `needs`, each entry is one alternative they can pick, with the form behind it.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"description": "<WRITE: one or two short sentences>",
"needs": {
"commission": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"encouragement": "<WRITE: one reassuring sentence: what happens with what they send, or how little it takes; or empty>",
"form_description": "<WRITE: one short line of guidance above the form, or empty>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"hints": {
"email": "<WRITE: an example answer for the field `email`, as a placeholder; or empty>",
"name": "<WRITE: an example answer for the field `name`, as a placeholder; or empty>",
"org_contact": "<WRITE: an example answer for the field `org_contact`, as a placeholder; or empty>",
"organization": "<WRITE: an example answer for the field `organization`, as a placeholder; or empty>",
"project": "<WRITE: an example answer for the field `project`, as a placeholder; or empty>"
},
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>",
"labels": {
"email": "<WRITE: a form label for the field `email`>",
"name": "<WRITE: a form label for the field `name`>",
"org_contact": "<WRITE: a form label for the field `org_contact`>",
"organization": "<WRITE: a form label for the field `organization`>",
"project": "<WRITE: a form label for the field `project`>"
},
"road_description": "<WRITE: one or two sentences walking the reader through the stages this goes through, in order (the stages are listed above), in their words>",
"road_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"road_title": "<WRITE: a short title, two to four words, for the line that says what happens after sending>",
"who_description": "<WRITE: one sentence: who reads what they send, and how to reach them meanwhile>",
"who_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"who_title": "<WRITE: a short title, two to four words, for the line that says who reads it>"
},
"trial": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"encouragement": "<WRITE: one reassuring sentence: what happens with what they send, or how little it takes; or empty>",
"form_description": "<WRITE: one short line of guidance above the form, or empty>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"hints": {
"business": "<WRITE: an example answer for the field `business`, as a placeholder; or empty>",
"email": "<WRITE: an example answer for the field `email`, as a placeholder; or empty>",
"what_slows_us_down": "<WRITE: an example answer for the field `what_slows_us_down`, as a placeholder; or empty>",
"what_we_do": "<WRITE: an example answer for the field `what_we_do`, as a placeholder; or empty>",
"what_we_keep_track_of": "<WRITE: an example answer for the field `what_we_keep_track_of`, as a placeholder; or empty>",
"who_comes_to_us": "<WRITE: an example answer for the field `who_comes_to_us`, as a placeholder; or empty>",
"who_is_involved": "<WRITE: an example answer for the field `who_is_involved`, as a placeholder; or empty>"
},
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>",
"labels": {
"business": "<WRITE: a form label for the field `business`>",
"email": "<WRITE: a form label for the field `email`>",
"what_slows_us_down": "<WRITE: a form label for the field `what_slows_us_down`>",
"what_we_do": "<WRITE: a form label for the field `what_we_do`>",
"what_we_keep_track_of": "<WRITE: a form label for the field `what_we_keep_track_of`>",
"who_comes_to_us": "<WRITE: a form label for the field `who_comes_to_us`>",
"who_is_involved": "<WRITE: a form label for the field `who_is_involved`>"
},
"road_description": "<WRITE: one or two sentences walking the reader through the stages this goes through, in order (the stages are listed above), in their words>",
"road_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"road_title": "<WRITE: a short title, two to four words, for the line that says what happens after sending>",
"who_description": "<WRITE: one sentence: who reads what they send, and how to reach them meanwhile>",
"who_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"who_title": "<WRITE: a short title, two to four words, for the line that says who reads it>"
}
},
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
```json
{
"description": "Have a problem software should solve, or want to see your own way of working as a site before you pay anyone?",
"needs": {
"commission": {
"button": "Send the brief",
"description": "You know the problem and want it solved. Write it up and send it to people who will read the whole thing.",
"encouragement": "Someone here reads every brief in full before writing back.",
"form_description": "The more of the problem you put in, the better the reply.",
"form_title": "Tell us the problem",
"heading": "A considered reply to your brief",
"hints": {
"email": "sara@company.com",
"name": "Sara Nilsen",
"org_contact": "Sara Nilsen, ops manager",
"organization": "Nilsen Transport AS",
"project": "Our drivers log hours on paper and it takes a day to get them into payroll."
},
"icon": "briefcase",
"labels": {
"email": "Your email",
"name": "Your name",
"org_contact": "Who we should talk to",
"organization": "Your organization",
"project": "The problem you want solved"
},
"road_description": "We read your brief and either take it on or tell you honestly if it's not a fit.",
"road_icon": "route",
"road_title": "What happens next",
"who_description": "One of the owners reads it; write to bl@uhhm.no if you'd rather reach us directly.",
"who_icon": "user-check",
"who_title": "Who reads this"
},
"trial": {
"button": "Start the draft",
"description": "See your own requests, approvals and handovers as a working site, before you commit to anything.",
"encouragement": "A person looks at what you send before anything gets built.",
"form_description": "Answer in your own words - there's no wrong way to describe your business.",
"form_title": "Describe your business",
"heading": "A first draft of your own site",
"hints": {
"business": "Nilsen Transport AS",
"email": "sara@company.com",
"what_slows_us_down": "Approvals sit in someone's inbox for days before anyone acts on them.",
"what_we_do": "We move freight for local businesses and handle the paperwork for them.",
"what_we_keep_track_of": "Bookings, driver hours, and which loads are still waiting on a signature.",
"who_comes_to_us": "Local businesses that need something moved on short notice.",
"who_is_involved": "Drivers, dispatchers, and the customers waiting on their delivery."
},
"icon": "layers",
"labels": {
"business": "Your business",
"email": "Your email",
"what_slows_us_down": "What slows you down",
"what_we_do": "What you do",
"what_we_keep_track_of": "What you keep track of",
"who_comes_to_us": "Who comes to you",
"who_is_involved": "Who's involved"
},
"road_description": "We look at what you sent and, if it's a fit, build a draft from your own roles and words for you to see before anything moves further.",
"road_icon": "route",
"road_title": "What happens next",
"who_description": "An owner looks at what you send; write to bl@uhhm.no if you'd rather reach us directly.",
"who_icon": "user-check",
"who_title": "Who reads this"
}
},
"question": "Do you already know the problem, or do you want to see your own business as a site first?"
}
```
@@ -0,0 +1,108 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/custodians/index.yaml
It is a desk: the page one role inside the business works from. Under `buckets`, each entry is a list of cases; `moves` are the buttons that move a case from one stage to the next (key `from->to`), so label each with what the person has just done. Under `links` are pages this role can open. Under `invites`, each entry is a form that invites a person into that group - they get an account and a one-time link - and `invited` is the list of invites sent.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"buckets": {
"custody_requests": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {
"in_dialogue->declined": "<WRITE: a button, two to four words, for a case going in_dialogue->declined>",
"in_dialogue->resolved": "<WRITE: a button, two to four words, for a case going in_dialogue->resolved>",
"open->declined": "<WRITE: a button, two to four words, for a case going open->declined>",
"open->in_dialogue": "<WRITE: a button, two to four words, for a case going open->in_dialogue>"
}
}
},
"confirm": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"invited": {
"description": "<WRITE: one or two short sentences>",
"done": "<WRITE: a form label for the field `done`>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>"
},
"invites": {
"custodians": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"labels": {
"email": "<WRITE: a form label for the field `email`>",
"name": "<WRITE: a form label for the field `name`>"
}
}
},
"links": {},
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
```json
{
"buckets": {
"custody_requests": {
"description": "Cases from people who use, build on, or answer for something the redoal network touches, and need a custodian's word on it.",
"heading": "Custody cases waiting on you",
"moves": {
"in_dialogue->declined": "Close, no action",
"in_dialogue->resolved": "Mark resolved",
"open->declined": "Decline case",
"open->in_dialogue": "Open dialogue"
}
}
},
"confirm": "Send invite",
"description": "The desk for custodians: open custody cases, and the people invited to answer them.",
"invited": {
"description": "Custodians invited but not yet signed in.",
"done": "Signed in",
"heading": "Invited custodians"
},
"invites": {
"custodians": {
"button": "Invite custodian",
"description": "Give someone an account and a one-time link to join as a custodian.",
"form_title": "Invite a custodian",
"heading": "Bring in another custodian",
"labels": {
"email": "Email",
"name": "Name"
}
}
},
"links": {},
"question": "What does the network owe the people it affects, right now?"
}
```
@@ -0,0 +1,60 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/decide/subscribe.yaml
It is a page the person who sent a form reaches later, through a private link, to make a decision that is theirs: under `moves`, each entry is one thing they can decide.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"description": "<WRITE: one or two short sentences>",
"moves": {
"unsubscribed": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>"
}
},
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
```json
{
"description": "You're on our list. Change your mind whenever you like.",
"moves": {
"unsubscribed": {
"button": "Unsubscribe",
"description": "You'll stop hearing from us. Nothing else changes.",
"heading": "Stop getting notes from us"
}
},
"question": "Do you want to keep hearing from us?"
}
```
@@ -0,0 +1,136 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/index.yaml
It is the front door: the first page any visitor sees. `question` is the page's one question. Under `doors`, each entry is one alternative that leads to a page of its own for one kind of visitor: its heading must let that visitor recognise themselves from the heading alone. Under `needs`, each entry is one alternative with a form behind it.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"description": "<WRITE: one or two short sentences>",
"doors": {
"build": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"for_whom": "<WRITE: a few words naming who this is for, addressed to them; or empty>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>"
},
"join": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"for_whom": "<WRITE: a few words naming who this is for, addressed to them; or empty>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>"
}
},
"needs": {
"custody": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"encouragement": "<WRITE: one reassuring sentence: what happens with what they send, or how little it takes; or empty>",
"form_description": "<WRITE: one short line of guidance above the form, or empty>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"hints": {
"about": "<WRITE: an example answer for the field `about`, as a placeholder; or empty>",
"email": "<WRITE: an example answer for the field `email`, as a placeholder; or empty>",
"name": "<WRITE: an example answer for the field `name`, as a placeholder; or empty>",
"what": "<WRITE: an example answer for the field `what`, as a placeholder; or empty>"
},
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>",
"labels": {
"about": "<WRITE: a form label for the field `about`>",
"email": "<WRITE: a form label for the field `email`>",
"name": "<WRITE: a form label for the field `name`>",
"what": "<WRITE: a form label for the field `what`>"
},
"road_description": "<WRITE: one or two sentences walking the reader through the stages this goes through, in order (the stages are listed above), in their words>",
"road_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"road_title": "<WRITE: a short title, two to four words, for the line that says what happens after sending>",
"who_description": "<WRITE: one sentence: who reads what they send, and how to reach them meanwhile>",
"who_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"who_title": "<WRITE: a short title, two to four words, for the line that says who reads it>"
}
},
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
```json
{
"description": "UHHM builds software for organisations that can say what problem they have, and keeps the redoal network underneath.",
"doors": {
"build": {
"button": "Start here",
"description": "Send us the problem, or try your own workflow as a working site before you pay for anything.",
"for_whom": "For an organisation with a problem, or a business sizing us up",
"heading": "Get software built around your problem",
"icon": "hammer"
},
"join": {
"button": "Start here",
"description": "Build with us, hear from us now and then, or tell us what should change on this page.",
"for_whom": "For anyone who wants in, on their own terms",
"heading": "Work with us, or just stay in touch",
"icon": "handshake"
}
},
"needs": {
"custody": {
"button": "Send to a custodian",
"description": "For anyone who runs on, builds on, or is affected by the redoal network and needs to reach the people who keep its first node.",
"encouragement": "A custodian reads every message that comes in here.",
"form_description": "Tell us what the network is doing, or not doing, and how we can reach you.",
"form_title": "Reach a custodian",
"heading": "Get an answer from the people who keep the network",
"hints": {
"about": "We run our order system on a relay node and it's been dropping messages since Tuesday",
"email": "you@yourcompany.com",
"name": "Your name",
"what": "A relay node is misbehaving"
},
"icon": "shield",
"labels": {
"about": "What's going on",
"email": "Email",
"name": "Name",
"what": "In short"
},
"road_description": "We open it and start a dialogue with you. Once we understand what the network is keeping that it shouldn't, we work it through to resolved, or tell you plainly if we can't.",
"road_icon": "route",
"road_title": "What happens next",
"who_title": "Who reads this",
"who_icon": "user-check",
"who_description": "A custodian reads it directly; if it's urgent, write to bl@uhhm.no in the meantime."
}
},
"question": "What brings you here?"
}
```
@@ -0,0 +1,208 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/join/index.yaml
It is a page one kind of visitor reaches from the front door. `question` is what this page asks them; under `needs`, each entry is one alternative they can pick, with the form behind it.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"description": "<WRITE: one or two short sentences>",
"needs": {
"collaborate": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"encouragement": "<WRITE: one reassuring sentence: what happens with what they send, or how little it takes; or empty>",
"form_description": "<WRITE: one short line of guidance above the form, or empty>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"hints": {
"email": "<WRITE: an example answer for the field `email`, as a placeholder; or empty>",
"interest": "<WRITE: an example answer for the field `interest`, as a placeholder; or empty>",
"name": "<WRITE: an example answer for the field `name`, as a placeholder; or empty>",
"note": "<WRITE: an example answer for the field `note`, as a placeholder; or empty>"
},
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>",
"labels": {
"email": "<WRITE: a form label for the field `email`>",
"interest": "<WRITE: a form label for the field `interest`>",
"name": "<WRITE: a form label for the field `name`>",
"note": "<WRITE: a form label for the field `note`>"
},
"road_description": "<WRITE: one or two sentences walking the reader through the stages this goes through, in order (the stages are listed above), in their words>",
"road_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"road_title": "<WRITE: a short title, two to four words, for the line that says what happens after sending>",
"who_description": "<WRITE: one sentence: who reads what they send, and how to reach them meanwhile>",
"who_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"who_title": "<WRITE: a short title, two to four words, for the line that says who reads it>"
},
"propose": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"encouragement": "<WRITE: one reassuring sentence: what happens with what they send, or how little it takes; or empty>",
"form_description": "<WRITE: one short line of guidance above the form, or empty>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"hints": {
"email": "<WRITE: an example answer for the field `email`, as a placeholder; or empty>",
"page": "<WRITE: an example answer for the field `page`, as a placeholder; or empty>",
"proposed_yaml": "<WRITE: an example answer for the field `proposed_yaml`, as a placeholder; or empty>",
"rationale": "<WRITE: an example answer for the field `rationale`, as a placeholder; or empty>",
"submitted_by": "<WRITE: an example answer for the field `submitted_by`, as a placeholder; or empty>"
},
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>",
"labels": {
"email": "<WRITE: a form label for the field `email`>",
"page": "<WRITE: a form label for the field `page`>",
"proposed_yaml": "<WRITE: a form label for the field `proposed_yaml`>",
"rationale": "<WRITE: a form label for the field `rationale`>",
"submitted_by": "<WRITE: a form label for the field `submitted_by`>"
},
"road_description": "<WRITE: one or two sentences walking the reader through the stages this goes through, in order (the stages are listed above), in their words>",
"road_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"road_title": "<WRITE: a short title, two to four words, for the line that says what happens after sending>",
"who_description": "<WRITE: one sentence: who reads what they send, and how to reach them meanwhile>",
"who_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"who_title": "<WRITE: a short title, two to four words, for the line that says who reads it>"
},
"subscribe": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"encouragement": "<WRITE: one reassuring sentence: what happens with what they send, or how little it takes; or empty>",
"form_description": "<WRITE: one short line of guidance above the form, or empty>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"hints": {
"email": "<WRITE: an example answer for the field `email`, as a placeholder; or empty>",
"name": "<WRITE: an example answer for the field `name`, as a placeholder; or empty>"
},
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>",
"labels": {
"email": "<WRITE: a form label for the field `email`>",
"name": "<WRITE: a form label for the field `name`>"
},
"road_description": "<WRITE: one or two sentences walking the reader through the stages this goes through, in order (the stages are listed above), in their words>",
"road_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"road_title": "<WRITE: a short title, two to four words, for the line that says what happens after sending>",
"who_description": "<WRITE: one sentence: who reads what they send, and how to reach them meanwhile>",
"who_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"who_title": "<WRITE: a short title, two to four words, for the line that says who reads it>"
}
},
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
```json
{
"description": "Three ways to be part of what UHHM builds: work with us, hear from us, or fix something on this site.",
"needs": {
"collaborate": {
"button": "Get in touch",
"description": "You want to build software with people who read the whole brief, not just the summary.",
"encouragement": "A person reads this, not a form filter — worth the ten minutes.",
"form_description": "Tell us who you are and what kind of work you're after.",
"form_title": "Say hello",
"heading": "Work with people who read the whole thing",
"hints": {
"email": "you@example.com",
"interest": "Backend work, or something design-heavy",
"name": "Your name",
"note": "A bit about what you'd want to work on, or a link to your work"
},
"icon": "handshake",
"labels": {
"email": "Email",
"interest": "What kind of work",
"name": "Name",
"note": "Tell us more"
},
"road_description": "We read what you send and get back to you. If there's a fit, we invite you in and you start working with us — and if things ever change, that's fine too.",
"road_icon": "route",
"road_title": "What happens next",
"who_description": "One of the owners reads this directly — for anything urgent, write to bl@uhhm.no.",
"who_icon": "user-check",
"who_title": "Who reads this"
},
"propose": {
"button": "Send change",
"description": "You've spotted something on this site that should read differently, and you know roughly how.",
"encouragement": "Even a rough version helps — we can tidy the wording ourselves.",
"form_description": "Point us to the page and show us the change.",
"form_title": "Propose a change",
"heading": "Get a page fixed the way you'd write it",
"hints": {
"email": "you@example.com",
"page": "questions/join/index.yaml",
"proposed_yaml": "heading: \"A clearer way to say this\"",
"rationale": "The current heading doesn't say what you actually get",
"submitted_by": "Your name"
},
"icon": "pencil",
"labels": {
"email": "Email",
"page": "Which page",
"proposed_yaml": "Your proposed text",
"rationale": "Why this is better",
"submitted_by": "Your name"
},
"road_description": "Someone here reads your proposal and either makes the change or explains why not. Either way, you'll hear back.",
"road_icon": "route",
"road_title": "What happens next",
"who_description": "An owner reads every proposal before anything changes — reach us at bl@uhhm.no if it's time-sensitive.",
"who_icon": "user-check",
"who_title": "Who reads this"
},
"subscribe": {
"button": "Sign up",
"description": "You'd rather hear from us now and then than check back on your own.",
"encouragement": "One click unsubscribes you later, no questions asked.",
"form_description": "Just your email, or your name too if you'd like.",
"form_title": "Stay in the loop",
"heading": "Hear from us only when there's something to say",
"hints": {
"email": "you@example.com",
"name": "Your name"
},
"icon": "mail",
"labels": {
"email": "Email",
"name": "Name"
},
"road_description": "You're on the list. We write when there's something worth saying, and you can leave the list whenever you like.",
"road_icon": "bell",
"road_title": "What happens next",
"who_description": "An owner sends these notes directly — write to bl@uhhm.no if you'd rather ask something first.",
"who_icon": "user-check",
"who_title": "Who reads this"
}
},
"question": "How do you want to be part of this?"
}
```
@@ -0,0 +1,236 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/owners/index.yaml
It is a desk: the page one role inside the business works from. Under `buckets`, each entry is a list of cases; `moves` are the buttons that move a case from one stage to the next (key `from->to`), so label each with what the person has just done. Under `links` are pages this role can open. Under `invites`, each entry is a form that invites a person into that group - they get an account and a one-time link - and `invited` is the list of invites sent.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"buckets": {
"applicants": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {
"active->declined": "<WRITE: a button, two to four words, for a case going active->declined>",
"active->departed": "<WRITE: a button, two to four words, for a case going active->departed>",
"invited->active": "<WRITE: a button, two to four words, for a case going invited->active>",
"invited->declined": "<WRITE: a button, two to four words, for a case going invited->declined>",
"open->declined": "<WRITE: a button, two to four words, for a case going open->declined>",
"open->invited": "<WRITE: a button, two to four words, for a case going open->invited>"
}
},
"custody_requests": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {}
},
"development_proposals": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {
"open->approved": "<WRITE: a button, two to four words, for a case going open->approved>",
"open->rejected": "<WRITE: a button, two to four words, for a case going open->rejected>"
}
},
"organizations": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {
"client->past_client": "<WRITE: a button, two to four words, for a case going client->past_client>",
"prospect->client": "<WRITE: a button, two to four words, for a case going prospect->client>",
"prospect->past_client": "<WRITE: a button, two to four words, for a case going prospect->past_client>"
}
},
"projects": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {
"open->accepted": "<WRITE: a button, two to four words, for a case going open->accepted>",
"open->declined": "<WRITE: a button, two to four words, for a case going open->declined>"
}
},
"subscribers": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {
"open->unsubscribed": "<WRITE: a button, two to four words, for a case going open->unsubscribed>"
}
},
"trials": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {
"approved->declined": "<WRITE: a button, two to four words, for a case going approved->declined>",
"approved->previewed": "<WRITE: a button, two to four words, for a case going approved->previewed>",
"open->approved": "<WRITE: a button, two to four words, for a case going open->approved>",
"open->declined": "<WRITE: a button, two to four words, for a case going open->declined>"
}
}
},
"confirm": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"invited": {
"description": "<WRITE: one or two short sentences>",
"done": "<WRITE: a form label for the field `done`>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>"
},
"invites": {
"custodians": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"labels": {
"email": "<WRITE: a form label for the field `email`>",
"name": "<WRITE: a form label for the field `name`>"
}
},
"owners": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"labels": {
"email": "<WRITE: a form label for the field `email`>",
"name": "<WRITE: a form label for the field `name`>"
}
}
},
"links": {
"prospect": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>"
}
},
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
{
"buckets": {
"applicants": {
"description": "People who've asked to build with us, waiting on a decision or already working alongside us.",
"heading": "People who want to build with us",
"moves": {
"active->declined": "End collaboration",
"active->departed": "Mark departed",
"invited->active": "Confirm active",
"invited->declined": "Withdraw invite",
"open->declined": "Decline applicant",
"open->invited": "Send invite"
}
},
"custody_requests": {
"description": "Questions and issues raised with the people who keep the first node - custodians handle these, but you can see where each one stands.",
"heading": "What's been raised with custodians",
"moves": {}
},
"development_proposals": {
"description": "Changes visitors have proposed for pages on this site, waiting on a yes or no.",
"heading": "Proposed changes to the site",
"moves": {
"open->approved": "Approve change",
"open->rejected": "Reject change"
}
},
"organizations": {
"description": "Organizations you've met, tracked from first contact through to client and beyond.",
"heading": "Organizations you're tracking",
"moves": {
"client->past_client": "Mark past client",
"prospect->client": "Mark as client",
"prospect->past_client": "Mark not pursued"
}
},
"projects": {
"description": "Briefs sent in by organizations with a problem they want solved.",
"heading": "Briefs waiting on a reply",
"moves": {
"open->accepted": "Accept brief",
"open->declined": "Decline brief"
}
},
"subscribers": {
"description": "People who want to hear from you now and then.",
"heading": "Who's hearing from you",
"moves": {
"open->unsubscribed": "Unsubscribe them"
}
},
"trials": {
"description": "Businesses who want to see their own workflow as a working site before committing to anything.",
"heading": "Trial sites in progress",
"moves": {
"approved->declined": "Decline trial",
"approved->previewed": "Mark previewed",
"open->approved": "Approve trial",
"open->declined": "Decline trial"
}
}
},
"confirm": "Confirm",
"description": "Everything waiting on you: briefs, trials, applicants, subscribers, and proposals, all in one place.",
"invited": {
"description": "People you've invited in, and whether they've taken it up yet.",
"done": "Taken up",
"heading": "Invites you've sent"
},
"invites": {
"custodians": {
"button": "Send invite",
"description": "Bring someone in to help keep the first node and answer for the network.",
"form_title": "Invite a custodian",
"heading": "Bring in a custodian",
"labels": {
"email": "Their email",
"name": "Their name"
}
},
"owners": {
"button": "Send invite",
"description": "Bring someone in to work this desk alongside you.",
"form_title": "Invite an owner",
"heading": "Bring in another owner",
"labels": {
"email": "Their email",
"name": "Their name"
}
}
},
"links": {
"prospect": {
"button": "Add prospect",
"description": "Write down an organization worth following up, and track it from first contact onward.",
"heading": "Track a new organization"
}
},
"question": "What's waiting on me today?"
}
@@ -0,0 +1,52 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/owners/prospect-sent.yaml
It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"back": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"next_description": "<WRITE: one or two short sentences>",
"next_heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
```json
{
"back": "Back to site",
"description": "Thanks — we've got your prospect written down, and it now moves through the desk with everything else we're tracking.",
"next_description": "An owner walks it from prospect to client, and on to past client, as the relationship moves.",
"next_heading": "It's on the desk now",
"question": "What happens to this now?"
}
```
@@ -0,0 +1,92 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/owners/prospect.yaml
It is a page only one role inside the business can open, holding one form.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"encouragement": "<WRITE: one reassuring sentence: what happens with what they send, or how little it takes; or empty>",
"form_description": "<WRITE: one short line of guidance above the form, or empty>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"hints": {
"contact": "<WRITE: an example answer for the field `contact`, as a placeholder; or empty>",
"name": "<WRITE: an example answer for the field `name`, as a placeholder; or empty>",
"note": "<WRITE: an example answer for the field `note`, as a placeholder; or empty>"
},
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>",
"labels": {
"contact": "<WRITE: a form label for the field `contact`>",
"name": "<WRITE: a form label for the field `name`>",
"note": "<WRITE: a form label for the field `note`>"
},
"page_description": "<WRITE: one or two short sentences>",
"question": "<WRITE: the one question this page asks its reader>",
"road_description": "<WRITE: one or two sentences walking the reader through the stages this goes through, in order (the stages are listed above), in their words>",
"road_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"road_title": "<WRITE: a short title, two to four words, for the line that says what happens after sending>",
"who_description": "<WRITE: one sentence: who reads what they send, and how to reach them meanwhile>",
"who_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"who_title": "<WRITE: a short title, two to four words, for the line that says who reads it>"
}
Reply with the JSON object only.
=== REPLY ===
```json
{
"button": "Add to prospects",
"description": "One line per organization worth watching, moved through the stages as things develop.",
"encouragement": "Takes a minute, and it's yours to update later.",
"form_description": "Name the organization and where things stand.",
"form_title": "New prospect",
"heading": "Keep an organization on your radar",
"hints": {
"contact": "met at the bakers' conference, [email protected]",
"name": "Nordvik Bakery",
"note": "wants a booking flow, follow up after harvest season"
},
"icon": "briefcase",
"labels": {
"contact": "Contact",
"name": "Organization",
"note": "Note"
},
"page_description": "Write down an organization worth following up, and move it through client and past client as things develop.",
"question": "Is there an organization I should be keeping track of?",
"road_description": "It sits as a prospect until something moves - then you mark it client, and later past client if the work ends.",
"road_icon": "route",
"road_title": "Moves as you update it",
"who_description": "Only you see this, so keep it wherever you check next.",
"who_icon": "user",
"who_title": "Just for you"
}
```
@@ -0,0 +1,52 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/received/collaborate.yaml
It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"back": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"next_description": "<WRITE: one or two short sentences>",
"next_heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
```json
{
"back": "Back to site",
"description": "Your note is in. An owner reads every one and will get back to you if there's a fit worth exploring.",
"next_description": "If it looks like a fit, we'll reach out to talk about where you could help.",
"next_heading": "We'll write if there's a fit",
"question": "What happens to what I just sent?"
}
```
@@ -0,0 +1,52 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/received/commission.yaml
It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"back": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"next_description": "<WRITE: one or two short sentences>",
"next_heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
```json
{
"back": "Back to home",
"description": "Your brief is in. An owner reads every commission end to end before replying.",
"next_description": "Expect a reply within a few working days, either way, straight to your inbox.",
"next_heading": "A real reply from someone who read it",
"question": "What happens now that we've sent our brief?"
}
```
@@ -0,0 +1,52 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/received/custody.yaml
It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"back": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"next_description": "<WRITE: one or two short sentences>",
"next_heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
```json
{
"back": "Back to the site",
"description": "A custodian reads every message about the redoal network and what it keeps.",
"next_description": "Expect a reply once your report has been looked at and the network checked.",
"next_heading": "A custodian is on it",
"question": "Who looks after what the network keeps?"
}
```
@@ -0,0 +1,52 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/received/propose.yaml
It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"back": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"next_description": "<WRITE: one or two short sentences>",
"next_heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
```json
{
"back": "Back home",
"description": "Your proposal is in. Someone here will read it and decide whether it fits before anything changes on the page.",
"next_description": "We'll write back once it's been read — approved and made live, or turned down with a reason.",
"next_heading": "A read, then a decision",
"question": "What happens to my proposal now?"
}
```
@@ -0,0 +1,52 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/received/subscribe.yaml
It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"back": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"next_description": "<WRITE: one or two short sentences>",
"next_heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
```json
{
"back": "Back to site",
"description": "You'll hear from us when there's something worth saying, not on a schedule.",
"next_description": "You're on the list. Every note has an unsubscribe link if it stops being useful.",
"next_heading": "You're on the list",
"question": "What happens now that I've subscribed?"
}
```
@@ -0,0 +1,52 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/received/trial.yaml
It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"back": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"next_description": "<WRITE: one or two short sentences>",
"next_heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
```json
{
"back": "Back to site",
"description": "We read every trial request ourselves before anything gets built.",
"next_description": "If it looks like a fit, we'll draft your site from your own words and send it back for your say before anything goes live.",
"next_heading": "A first draft, built from your own words",
"question": "What happens now that you've sent this?"
}
```
+173
View File
@@ -0,0 +1,173 @@
needs:
- done_when:
- accepted
- declined
enters: /
handled_by: owners
id: commission
lands_in: projects
max_fields: 4
max_steps: 2
stages:
- open
- accepted
- declined
success:
- accepted
via: Get software built around your problem
wants: a considered reply to a brief, from people who read the whole thing
who: an organization with a problem it wants software to solve
- done_when:
- previewed
- declined
enters: /
handled_by: owners
id: trial
lands_in: trials
max_fields: 6
max_steps: 2
stages:
- open
- approved
- previewed
- declined
success:
- previewed
via: Get software built around your problem
wants: a first draft of a site for their own roles, built from their own words and approved by a person first
who: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything
- done_when:
- departed
- declined
enters: /
handled_by: owners
id: collaborate
lands_in: applicants
max_fields: 3
max_steps: 2
stages:
- open
- invited
- active
- departed
- declined
success:
- departed
via: Work with us, or just stay in touch
wants: to be read as a person, and invited in if there is a fit
who: someone who wants to work with us on what we build
- done_when:
- unsubscribed
enters: /
handled_by: owners
id: subscribe
lands_in: subscribers
max_fields: 2
max_steps: 2
stages:
- open
- unsubscribed
success: []
via: Work with us, or just stay in touch
wants: a note now and then, and an easy way out
who: someone who wants to hear from us when there is something to say
- done_when:
- approved
- rejected
enters: /
handled_by: owners
id: propose
lands_in: development_proposals
max_fields: 3
max_steps: 2
stages:
- open
- approved
- rejected
success:
- approved
via: Work with us, or just stay in touch
wants: the change read by a person and, if approved, made
who: a visitor who sees how a page on this site should change
- done_when:
- resolved
- declined
enters: /
handled_by: custodians
id: custody
lands_in: custody_requests
max_fields: 4
max_steps: 1
stages:
- open
- in_dialogue
- resolved
- declined
success:
- resolved
via: Get an answer from the people who keep the network
wants: an answer from a custodian, and action where the network keeps something it should not
who: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node
- done_when:
- past_client
enters: /owners/prospect
enters_as: owners
handled_by: owners
id: prospect
lands_in: organizations
max_fields: 2
max_steps: 1
stages:
- prospect
- client
- past_client
success: []
via: Keep an organization on your radar
wants: it written down and walked through its states from the desk
who: an owner who has met an organization worth following up
personas:
- id: architecture-firm
need: commission
text: We run a small architecture firm and our project files are scattered across three cloud drives. We want to pay someone to set up proper storage and backups we control ourselves.
- id: climbing-gym-founder
need: commission
text: I have an idea for a booking app for climbing gyms and I'm looking for a team that can build the first version with me.
- id: municipality-buyer
need: commission
text: Our municipality needs an internal tool for tracking building permits. We are looking for a vendor who can scope it and deliver it.
- id: exhibition-visitor
need: subscribe
text: I saw your drawing network at an exhibition and liked it. I don't want to get involved, I'd just like to know when there is news.
- id: tech-journalist
need: subscribe
text: I write about Nordic technology. Keep me posted on what you release so I can cover it.
- id: rust-developer
need: collaborate
text: I'm a Rust developer between jobs and I like that you build in the open. I would love to contribute, and maybe join you.
- id: interaction-designer
need: collaborate
text: I'm an interaction designer. I want to work with you on the drawing interface.
- id: student-intern
need: collaborate
text: I'm a computer science student looking for a summer internship doing infrastructure work.
- id: plumber-owner
need: trial
text: I run a plumbing company with four vans. Jobs come in by phone and text and some get lost. I'd like to see how this would look for us before I spend any money.
- id: dance-school
need: trial
text: We are a dance school. Enrolments, cancellations and invoices all go through one email inbox that only I understand. Can you show me a version made for us?
- id: node-runner
need: custody
text: I run a small server in Berlin and want to host a redoal node that peers with yours. Who do I talk to?
- id: recorded-name
need: custody
text: Someone left a recording on redoal that says my full name and where I live. I want it gone, and I want to know who is responsible for that network.
- id: app-builder
need: custody
text: I'm building a music app and would like to use redoal's gesture addresses in it. Is that possible, and who decides?
- id: wording-fix
need: propose
text: The subscribe page should say how often you actually write. I'd like to suggest that exact change to the page.
- id: rewrite
need: propose
text: One page on this site reads wrong to me and I know exactly how I'd rewrite it. Where do I send the new text?
@@ -0,0 +1,94 @@
alternatives:
- action: /received/commission
consequence:
- Send the brief
description: You know the problem and want it solved. Write it up and send it to people who will read the whole thing.
encouragements:
- Someone here reads every brief in full before writing back.
features:
- description: We read your brief and either take it on or tell you honestly if it's not a fit.
icon: lucide:route
name: What happens next
- description: One of the owners reads it; write to bl@uhhm.no if you'd rather reach us directly.
icon: lucide:user-check
name: Who reads this
- description: The more of the problem you put in, the better the reply.
icon: lucide:briefcase
name: Tell us the problem
requirements:
- label: Your name
name: name
placeholder: Sara Nilsen
type: text
- label: Your email
name: email
placeholder: sara@company.com
type: email
- label: The problem you want solved
name: project
placeholder: Our drivers log hours on paper and it takes a day to get them into payroll.
type: textarea
- label: Your organization
name: organization
placeholder: Nilsen Transport AS
type: text
- label: Who we should talk to
name: org_contact
optional: true
placeholder: Sara Nilsen, ops manager
type: text
name: A considered reply to your brief
record_as: projects
- action: /received/trial
consequence:
- Start the draft
description: See your own requests, approvals and handovers as a working site, before you commit to anything.
encouragements:
- A person looks at what you send before anything gets built.
features:
- description: We look at what you sent and, if it's a fit, build a draft from your own roles and words for you to see before anything moves further.
icon: lucide:route
name: What happens next
- description: An owner looks at what you send; write to bl@uhhm.no if you'd rather reach us directly.
icon: lucide:user-check
name: Who reads this
- description: Answer in your own words - there's no wrong way to describe your business.
icon: lucide:layers
name: Describe your business
requirements:
- label: Your business
name: business
placeholder: Nilsen Transport AS
type: text
- label: Your email
name: email
placeholder: sara@company.com
type: email
- label: What you do
name: what_we_do
placeholder: We move freight for local businesses and handle the paperwork for them.
type: textarea
- label: Who comes to you
name: who_comes_to_us
placeholder: Local businesses that need something moved on short notice.
type: textarea
- label: What you keep track of
name: what_we_keep_track_of
placeholder: Bookings, driver hours, and which loads are still waiting on a signature.
type: textarea
- label: Who's involved
name: who_is_involved
placeholder: Drivers, dispatchers, and the customers waiting on their delivery.
type: textarea
- label: What slows you down
name: what_slows_us_down
optional: true
placeholder: Approvals sit in someone's inbox for days before anyone acts on them.
type: textarea
name: A first draft of your own site
record_as: trials
description: Have a problem software should solve, or want to see your own way of working as a site before you pay anyone?
name: Do you already know the problem, or do you want to see your own business as a site first?
responsible:
contact: bl@uhhm.no
name: Bendik Aagaard Lynghaug
@@ -0,0 +1 @@
qualifies: custodians
@@ -0,0 +1,65 @@
alternatives:
- action: /custodians
consequence:
- Send invite
description: Cases from people who use, build on, or answer for something the redoal network touches, and need a custodian's word on it.
features:
- description: ''
name: ''
resource:
requires_group: custodians
source:
bucket: custody_requests
kind: kv
transitions:
- from: in_dialogue
label: Mark resolved
to: resolved
- from: in_dialogue
label: Close, no action
to: declined
- from: open
label: Open dialogue
to: in_dialogue
- from: open
label: Decline case
to: declined
name: Custody cases waiting on you
- action: /custodians
consequence:
- Invite custodian
description: Give someone an account and a one-time link to join as a custodian.
features:
- description: ''
name: Invite a custodian
requirements:
- label: Name
name: name
- label: Email
name: email
type: email
invite:
group: custodians
name: Bring in another custodian
- action: /custodians
consequence:
- Send invite
description: Custodians invited but not yet signed in.
features:
- description: ''
name: ''
resource:
requires_group: custodians
source:
bucket: portal_invites
kind: kv
transitions:
- from: open
label: Signed in
to: done
name: Invited custodians
description: 'The desk for custodians: open custody cases, and the people invited to answer them.'
name: What does the network owe the people it affects, right now?
responsible:
contact: bl@uhhm.no
name: Bendik Aagaard Lynghaug
@@ -0,0 +1,9 @@
alternatives:
- description: You'll stop hearing from us. Nothing else changes.
name: Stop getting notes from us
self_transition:
bucket: subscribers
label: Unsubscribe
to: unsubscribed
description: You're on our list. Change your mind whenever you like.
name: Do you want to keep hearing from us?
@@ -0,0 +1,63 @@
alternatives:
- action: /build
consequence:
- Start here
description: Send us the problem, or try your own workflow as a working site before you pay for anything.
features:
- description: ''
icon: lucide:hammer
name: For an organisation with a problem, or a business sizing us up
name: Get software built around your problem
- action: /join
consequence:
- Start here
description: Build with us, hear from us now and then, or tell us what should change on this page.
features:
- description: ''
icon: lucide:handshake
name: For anyone who wants in, on their own terms
name: Work with us, or just stay in touch
- action: /received/custody
consequence:
- Send to a custodian
description: For anyone who runs on, builds on, or is affected by the redoal network and needs to reach the people who keep its first node.
encouragements:
- A custodian reads every message that comes in here.
features:
- description: We open it and start a dialogue with you. Once we understand what the network is keeping that it shouldn't, we work it through to resolved, or tell you plainly if we can't.
icon: lucide:route
name: What happens next
- description: A custodian reads it directly; if it's urgent, write to bl@uhhm.no in the meantime.
icon: lucide:user-check
name: Who reads this
- description: Tell us what the network is doing, or not doing, and how we can reach you.
icon: lucide:shield
name: Reach a custodian
requirements:
- label: Name
name: name
placeholder: Your name
type: text
- label: Email
name: email
placeholder: you@yourcompany.com
type: email
- label: What's going on
name: about
options:
- Running a node of my own
- Building on the network
- Something the network keeps about me
- Something else
type: select
- label: In short
name: what
placeholder: A relay node is misbehaving
type: textarea
name: Get an answer from the people who keep the network
record_as: custody_requests
description: UHHM builds software for organisations that can say what problem they have, and keeps the redoal network underneath.
name: What brings you here?
responsible:
contact: bl@uhhm.no
name: Bendik Aagaard Lynghaug
@@ -0,0 +1,110 @@
alternatives:
- action: /received/collaborate
consequence:
- Get in touch
description: You want to build software with people who read the whole brief, not just the summary.
encouragements:
- A person reads this, not a form filter — worth the ten minutes.
features:
- description: We read what you send and get back to you. If there's a fit, we invite you in and you start working with us — and if things ever change, that's fine too.
icon: lucide:route
name: What happens next
- description: One of the owners reads this directly — for anything urgent, write to bl@uhhm.no.
icon: lucide:user-check
name: Who reads this
- description: Tell us who you are and what kind of work you're after.
icon: lucide:handshake
name: Say hello
requirements:
- label: Name
name: name
placeholder: Your name
type: text
- label: Email
name: email
placeholder: you@example.com
type: email
- label: What kind of work
name: interest
placeholder: Backend work, or something design-heavy
type: textarea
- label: Tell us more
name: note
optional: true
placeholder: A bit about what you'd want to work on, or a link to your work
type: textarea
name: Work with people who read the whole thing
record_as: applicants
- action: /received/subscribe
consequence:
- Sign up
description: You'd rather hear from us now and then than check back on your own.
encouragements:
- One click unsubscribes you later, no questions asked.
features:
- description: You're on the list. We write when there's something worth saying, and you can leave the list whenever you like.
icon: lucide:bell
name: What happens next
- description: An owner sends these notes directly — write to bl@uhhm.no if you'd rather ask something first.
icon: lucide:user-check
name: Who reads this
- description: Just your email, or your name too if you'd like.
icon: lucide:mail
name: Stay in the loop
requirements:
- label: Name
name: name
placeholder: Your name
type: text
- label: Email
name: email
placeholder: you@example.com
type: email
name: Hear from us only when there's something to say
record_as: subscribers
- action: /received/propose
consequence:
- Send change
description: You've spotted something on this site that should read differently, and you know roughly how.
encouragements:
- Even a rough version helps — we can tidy the wording ourselves.
features:
- description: Someone here reads your proposal and either makes the change or explains why not. Either way, you'll hear back.
icon: lucide:route
name: What happens next
- description: An owner reads every proposal before anything changes — reach us at bl@uhhm.no if it's time-sensitive.
icon: lucide:user-check
name: Who reads this
- description: Point us to the page and show us the change.
icon: lucide:pencil
name: Propose a change
requirements:
- label: Your name
name: submitted_by
placeholder: Your name
type: text
- label: Email
name: email
optional: true
placeholder: you@example.com
type: email
- label: Which page
name: page
optional: true
placeholder: questions/join/index.yaml
type: text
- label: Why this is better
name: rationale
placeholder: The current heading doesn't say what you actually get
type: textarea
- label: Your proposed text
name: proposed_yaml
placeholder: 'heading: "A clearer way to say this"'
type: textarea
name: Get a page fixed the way you'd write it
record_as: development_proposals
description: 'Three ways to be part of what UHHM builds: work with us, hear from us, or fix something on this site.'
name: How do you want to be part of this?
responsible:
contact: bl@uhhm.no
name: Bendik Aagaard Lynghaug
@@ -0,0 +1 @@
qualifies: owners
@@ -0,0 +1,212 @@
alternatives:
- action: /owners
consequence:
- Confirm
description: People who've asked to build with us, waiting on a decision or already working alongside us.
features:
- description: ''
name: ''
resource:
requires_group: owners
source:
bucket: applicants
kind: kv
transitions:
- from: active
label: Mark departed
to: departed
- from: active
label: End collaboration
to: declined
- from: invited
label: Confirm active
to: active
- from: invited
label: Withdraw invite
to: declined
- from: open
label: Send invite
to: invited
- from: open
label: Decline applicant
to: declined
name: People who want to build with us
- action: /owners
consequence:
- Confirm
description: Questions and issues raised with the people who keep the first node - custodians handle these, but you can see where each one stands.
features:
- description: ''
name: ''
resource:
requires_group: owners
source:
bucket: custody_requests
kind: kv
transitions: []
name: What's been raised with custodians
- action: /owners
consequence:
- Confirm
description: Changes visitors have proposed for pages on this site, waiting on a yes or no.
features:
- description: ''
name: ''
resource:
requires_group: owners
source:
bucket: development_proposals
kind: kv
transitions:
- from: open
label: Approve change
to: approved
- from: open
label: Reject change
to: rejected
name: Proposed changes to the site
- action: /owners
consequence:
- Confirm
description: Organizations you've met, tracked from first contact through to client and beyond.
features:
- description: ''
name: ''
resource:
requires_group: owners
source:
bucket: organizations
kind: kv
transitions:
- from: client
label: Mark past client
to: past_client
- from: prospect
label: Mark as client
to: client
- from: prospect
label: Mark not pursued
to: past_client
name: Organizations you're tracking
- action: /owners
consequence:
- Confirm
description: Briefs sent in by organizations with a problem they want solved.
features:
- description: ''
name: ''
resource:
requires_group: owners
source:
bucket: projects
kind: kv
transitions:
- from: open
label: Accept brief
to: accepted
- from: open
label: Decline brief
to: declined
name: Briefs waiting on a reply
- action: /owners
consequence:
- Confirm
description: People who want to hear from you now and then.
features:
- description: ''
name: ''
resource:
requires_group: owners
source:
bucket: subscribers
kind: kv
transitions:
- from: open
label: Unsubscribe them
to: unsubscribed
name: Who's hearing from you
- action: /owners
consequence:
- Confirm
description: Businesses who want to see their own workflow as a working site before committing to anything.
features:
- description: ''
name: ''
resource:
requires_group: owners
source:
bucket: trials
kind: kv
transitions:
- from: approved
label: Mark previewed
to: previewed
- from: approved
label: Decline trial
to: declined
- from: open
label: Approve trial
to: approved
- from: open
label: Decline trial
to: declined
name: Trial sites in progress
- action: /owners/prospect
consequence:
- Add prospect
description: Write down an organization worth following up, and track it from first contact onward.
name: Track a new organization
- action: /owners
consequence:
- Send invite
description: Bring someone in to help keep the first node and answer for the network.
features:
- description: ''
name: Invite a custodian
requirements:
- label: Their name
name: name
- label: Their email
name: email
type: email
invite:
group: custodians
name: Bring in a custodian
- action: /owners
consequence:
- Send invite
description: Bring someone in to work this desk alongside you.
features:
- description: ''
name: Invite an owner
requirements:
- label: Their name
name: name
- label: Their email
name: email
type: email
invite:
group: owners
name: Bring in another owner
- action: /owners
consequence:
- Confirm
description: People you've invited in, and whether they've taken it up yet.
features:
- description: ''
name: ''
resource:
requires_group: owners
source:
bucket: portal_invites
kind: kv
transitions:
- from: open
label: Taken up
to: done
name: Invites you've sent
description: 'Everything waiting on you: briefs, trials, applicants, subscribers, and proposals, all in one place.'
name: What's waiting on me today?
responsible:
contact: bl@uhhm.no
name: Bendik Aagaard Lynghaug
@@ -0,0 +1,10 @@
alternatives:
- description: An owner walks it from prospect to client, and on to past client, as the relationship moves.
name: It's on the desk now
- action: /owners
consequence:
- Back to site
description: ''
name: Back to site
description: Thanks — we've got your prospect written down, and it now moves through the desk with everything else we're tracking.
name: What happens to this now?
@@ -0,0 +1,39 @@
alternatives:
- action: /owners/prospect-sent
consequence:
- Add to prospects
description: One line per organization worth watching, moved through the stages as things develop.
encouragements:
- Takes a minute, and it's yours to update later.
features:
- description: It sits as a prospect until something moves - then you mark it client, and later past client if the work ends.
icon: lucide:route
name: Moves as you update it
- description: Only you see this, so keep it wherever you check next.
icon: lucide:user
name: Just for you
- description: Name the organization and where things stand.
icon: lucide:briefcase
name: New prospect
requirements:
- label: Organization
name: name
placeholder: Nordvik Bakery
type: text
- label: Contact
name: contact
placeholder: met at the bakers' conference, [email protected]
type: text
- label: Note
name: note
optional: true
placeholder: wants a booking flow, follow up after harvest season
type: textarea
name: Keep an organization on your radar
record_as: organizations
description: Write down an organization worth following up, and move it through client and past client as things develop.
followup: false
name: Is there an organization I should be keeping track of?
responsible:
contact: bl@uhhm.no
name: Bendik Aagaard Lynghaug
@@ -0,0 +1,10 @@
alternatives:
- description: If it looks like a fit, we'll reach out to talk about where you could help.
name: We'll write if there's a fit
- action: /
consequence:
- Back to site
description: ''
name: Back to site
description: Your note is in. An owner reads every one and will get back to you if there's a fit worth exploring.
name: What happens to what I just sent?
@@ -0,0 +1,10 @@
alternatives:
- description: Expect a reply within a few working days, either way, straight to your inbox.
name: A real reply from someone who read it
- action: /
consequence:
- Back to home
description: ''
name: Back to home
description: Your brief is in. An owner reads every commission end to end before replying.
name: What happens now that we've sent our brief?
@@ -0,0 +1,10 @@
alternatives:
- description: Expect a reply once your report has been looked at and the network checked.
name: A custodian is on it
- action: /
consequence:
- Back to the site
description: ''
name: Back to the site
description: A custodian reads every message about the redoal network and what it keeps.
name: Who looks after what the network keeps?
@@ -0,0 +1,10 @@
alternatives:
- description: We'll write back once it's been read — approved and made live, or turned down with a reason.
name: A read, then a decision
- action: /
consequence:
- Back home
description: ''
name: Back home
description: Your proposal is in. Someone here will read it and decide whether it fits before anything changes on the page.
name: What happens to my proposal now?
@@ -0,0 +1,10 @@
alternatives:
- description: You're on the list. Every note has an unsubscribe link if it stops being useful.
name: You're on the list
- action: /
consequence:
- Back to site
description: ''
name: Back to site
description: You'll hear from us when there's something worth saying, not on a schedule.
name: What happens now that I've subscribed?
@@ -0,0 +1,10 @@
alternatives:
- description: If it looks like a fit, we'll draft your site from your own words and send it back for your say before anything goes live.
name: A first draft, built from your own words
- action: /
consequence:
- Back to site
description: ''
name: Back to site
description: We read every trial request ourselves before anything gets built.
name: What happens now that you've sent this?
+2
View File
@@ -0,0 +1,2 @@
lang: en
title: UHHM
+426
View File
@@ -0,0 +1,426 @@
{
"questions/build/index.yaml": {
"description": "Have a problem software should solve, or want to see your own way of working as a site before you pay anyone?",
"needs": {
"commission": {
"button": "Send the brief",
"description": "You know the problem and want it solved. Write it up and send it to people who will read the whole thing.",
"encouragement": "Someone here reads every brief in full before writing back.",
"form_description": "The more of the problem you put in, the better the reply.",
"form_title": "Tell us the problem",
"heading": "A considered reply to your brief",
"hints": {
"email": "sara@company.com",
"name": "Sara Nilsen",
"org_contact": "Sara Nilsen, ops manager",
"organization": "Nilsen Transport AS",
"project": "Our drivers log hours on paper and it takes a day to get them into payroll."
},
"icon": "briefcase",
"labels": {
"email": "Your email",
"name": "Your name",
"org_contact": "Who we should talk to",
"organization": "Your organization",
"project": "The problem you want solved"
},
"road_description": "We read your brief and either take it on or tell you honestly if it's not a fit.",
"road_icon": "route",
"road_title": "What happens next",
"who_description": "One of the owners reads it; write to bl@uhhm.no if you'd rather reach us directly.",
"who_icon": "user-check",
"who_title": "Who reads this"
},
"trial": {
"button": "Start the draft",
"description": "See your own requests, approvals and handovers as a working site, before you commit to anything.",
"encouragement": "A person looks at what you send before anything gets built.",
"form_description": "Answer in your own words - there's no wrong way to describe your business.",
"form_title": "Describe your business",
"heading": "A first draft of your own site",
"hints": {
"business": "Nilsen Transport AS",
"email": "sara@company.com",
"what_slows_us_down": "Approvals sit in someone's inbox for days before anyone acts on them.",
"what_we_do": "We move freight for local businesses and handle the paperwork for them.",
"what_we_keep_track_of": "Bookings, driver hours, and which loads are still waiting on a signature.",
"who_comes_to_us": "Local businesses that need something moved on short notice.",
"who_is_involved": "Drivers, dispatchers, and the customers waiting on their delivery."
},
"icon": "layers",
"labels": {
"business": "Your business",
"email": "Your email",
"what_slows_us_down": "What slows you down",
"what_we_do": "What you do",
"what_we_keep_track_of": "What you keep track of",
"who_comes_to_us": "Who comes to you",
"who_is_involved": "Who's involved"
},
"road_description": "We look at what you sent and, if it's a fit, build a draft from your own roles and words for you to see before anything moves further.",
"road_icon": "route",
"road_title": "What happens next",
"who_description": "An owner looks at what you send; write to bl@uhhm.no if you'd rather reach us directly.",
"who_icon": "user-check",
"who_title": "Who reads this"
}
},
"question": "Do you already know the problem, or do you want to see your own business as a site first?"
},
"questions/custodians/index.yaml": {
"buckets": {
"custody_requests": {
"description": "Cases from people who use, build on, or answer for something the redoal network touches, and need a custodian's word on it.",
"heading": "Custody cases waiting on you",
"moves": {
"in_dialogue->declined": "Close, no action",
"in_dialogue->resolved": "Mark resolved",
"open->declined": "Decline case",
"open->in_dialogue": "Open dialogue"
}
}
},
"confirm": "Send invite",
"description": "The desk for custodians: open custody cases, and the people invited to answer them.",
"invited": {
"description": "Custodians invited but not yet signed in.",
"done": "Signed in",
"heading": "Invited custodians"
},
"invites": {
"custodians": {
"button": "Invite custodian",
"description": "Give someone an account and a one-time link to join as a custodian.",
"form_title": "Invite a custodian",
"heading": "Bring in another custodian",
"labels": {
"email": "Email",
"name": "Name"
}
}
},
"links": {},
"question": "What does the network owe the people it affects, right now?"
},
"questions/decide/subscribe.yaml": {
"description": "You're on our list. Change your mind whenever you like.",
"moves": {
"unsubscribed": {
"button": "Unsubscribe",
"description": "You'll stop hearing from us. Nothing else changes.",
"heading": "Stop getting notes from us"
}
},
"question": "Do you want to keep hearing from us?"
},
"questions/index.yaml": {
"description": "UHHM builds software for organisations that can say what problem they have, and keeps the redoal network underneath.",
"doors": {
"build": {
"button": "Start here",
"description": "Send us the problem, or try your own workflow as a working site before you pay for anything.",
"for_whom": "For an organisation with a problem, or a business sizing us up",
"heading": "Get software built around your problem",
"icon": "hammer"
},
"join": {
"button": "Start here",
"description": "Build with us, hear from us now and then, or tell us what should change on this page.",
"for_whom": "For anyone who wants in, on their own terms",
"heading": "Work with us, or just stay in touch",
"icon": "handshake"
}
},
"needs": {
"custody": {
"button": "Send to a custodian",
"description": "For anyone who runs on, builds on, or is affected by the redoal network and needs to reach the people who keep its first node.",
"encouragement": "A custodian reads every message that comes in here.",
"form_description": "Tell us what the network is doing, or not doing, and how we can reach you.",
"form_title": "Reach a custodian",
"heading": "Get an answer from the people who keep the network",
"hints": {
"about": "We run our order system on a relay node and it's been dropping messages since Tuesday",
"email": "you@yourcompany.com",
"name": "Your name",
"what": "A relay node is misbehaving"
},
"icon": "shield",
"labels": {
"about": "What's going on",
"email": "Email",
"name": "Name",
"what": "In short"
},
"road_description": "We open it and start a dialogue with you. Once we understand what the network is keeping that it shouldn't, we work it through to resolved, or tell you plainly if we can't.",
"road_icon": "route",
"road_title": "What happens next",
"who_description": "A custodian reads it directly; if it's urgent, write to bl@uhhm.no in the meantime.",
"who_icon": "user-check",
"who_title": "Who reads this"
}
},
"question": "What brings you here?"
},
"questions/join/index.yaml": {
"description": "Three ways to be part of what UHHM builds: work with us, hear from us, or fix something on this site.",
"needs": {
"collaborate": {
"button": "Get in touch",
"description": "You want to build software with people who read the whole brief, not just the summary.",
"encouragement": "A person reads this, not a form filter — worth the ten minutes.",
"form_description": "Tell us who you are and what kind of work you're after.",
"form_title": "Say hello",
"heading": "Work with people who read the whole thing",
"hints": {
"email": "you@example.com",
"interest": "Backend work, or something design-heavy",
"name": "Your name",
"note": "A bit about what you'd want to work on, or a link to your work"
},
"icon": "handshake",
"labels": {
"email": "Email",
"interest": "What kind of work",
"name": "Name",
"note": "Tell us more"
},
"road_description": "We read what you send and get back to you. If there's a fit, we invite you in and you start working with us — and if things ever change, that's fine too.",
"road_icon": "route",
"road_title": "What happens next",
"who_description": "One of the owners reads this directly — for anything urgent, write to bl@uhhm.no.",
"who_icon": "user-check",
"who_title": "Who reads this"
},
"propose": {
"button": "Send change",
"description": "You've spotted something on this site that should read differently, and you know roughly how.",
"encouragement": "Even a rough version helps — we can tidy the wording ourselves.",
"form_description": "Point us to the page and show us the change.",
"form_title": "Propose a change",
"heading": "Get a page fixed the way you'd write it",
"hints": {
"email": "you@example.com",
"page": "questions/join/index.yaml",
"proposed_yaml": "heading: \"A clearer way to say this\"",
"rationale": "The current heading doesn't say what you actually get",
"submitted_by": "Your name"
},
"icon": "pencil",
"labels": {
"email": "Email",
"page": "Which page",
"proposed_yaml": "Your proposed text",
"rationale": "Why this is better",
"submitted_by": "Your name"
},
"road_description": "Someone here reads your proposal and either makes the change or explains why not. Either way, you'll hear back.",
"road_icon": "route",
"road_title": "What happens next",
"who_description": "An owner reads every proposal before anything changes — reach us at bl@uhhm.no if it's time-sensitive.",
"who_icon": "user-check",
"who_title": "Who reads this"
},
"subscribe": {
"button": "Sign up",
"description": "You'd rather hear from us now and then than check back on your own.",
"encouragement": "One click unsubscribes you later, no questions asked.",
"form_description": "Just your email, or your name too if you'd like.",
"form_title": "Stay in the loop",
"heading": "Hear from us only when there's something to say",
"hints": {
"email": "you@example.com",
"name": "Your name"
},
"icon": "mail",
"labels": {
"email": "Email",
"name": "Name"
},
"road_description": "You're on the list. We write when there's something worth saying, and you can leave the list whenever you like.",
"road_icon": "bell",
"road_title": "What happens next",
"who_description": "An owner sends these notes directly — write to bl@uhhm.no if you'd rather ask something first.",
"who_icon": "user-check",
"who_title": "Who reads this"
}
},
"question": "How do you want to be part of this?"
},
"questions/owners/index.yaml": {
"buckets": {
"applicants": {
"description": "People who've asked to build with us, waiting on a decision or already working alongside us.",
"heading": "People who want to build with us",
"moves": {
"active->declined": "End collaboration",
"active->departed": "Mark departed",
"invited->active": "Confirm active",
"invited->declined": "Withdraw invite",
"open->declined": "Decline applicant",
"open->invited": "Send invite"
}
},
"custody_requests": {
"description": "Questions and issues raised with the people who keep the first node - custodians handle these, but you can see where each one stands.",
"heading": "What's been raised with custodians",
"moves": {}
},
"development_proposals": {
"description": "Changes visitors have proposed for pages on this site, waiting on a yes or no.",
"heading": "Proposed changes to the site",
"moves": {
"open->approved": "Approve change",
"open->rejected": "Reject change"
}
},
"organizations": {
"description": "Organizations you've met, tracked from first contact through to client and beyond.",
"heading": "Organizations you're tracking",
"moves": {
"client->past_client": "Mark past client",
"prospect->client": "Mark as client",
"prospect->past_client": "Mark not pursued"
}
},
"projects": {
"description": "Briefs sent in by organizations with a problem they want solved.",
"heading": "Briefs waiting on a reply",
"moves": {
"open->accepted": "Accept brief",
"open->declined": "Decline brief"
}
},
"subscribers": {
"description": "People who want to hear from you now and then.",
"heading": "Who's hearing from you",
"moves": {
"open->unsubscribed": "Unsubscribe them"
}
},
"trials": {
"description": "Businesses who want to see their own workflow as a working site before committing to anything.",
"heading": "Trial sites in progress",
"moves": {
"approved->declined": "Decline trial",
"approved->previewed": "Mark previewed",
"open->approved": "Approve trial",
"open->declined": "Decline trial"
}
}
},
"confirm": "Confirm",
"description": "Everything waiting on you: briefs, trials, applicants, subscribers, and proposals, all in one place.",
"invited": {
"description": "People you've invited in, and whether they've taken it up yet.",
"done": "Taken up",
"heading": "Invites you've sent"
},
"invites": {
"custodians": {
"button": "Send invite",
"description": "Bring someone in to help keep the first node and answer for the network.",
"form_title": "Invite a custodian",
"heading": "Bring in a custodian",
"labels": {
"email": "Their email",
"name": "Their name"
}
},
"owners": {
"button": "Send invite",
"description": "Bring someone in to work this desk alongside you.",
"form_title": "Invite an owner",
"heading": "Bring in another owner",
"labels": {
"email": "Their email",
"name": "Their name"
}
}
},
"links": {
"prospect": {
"button": "Add prospect",
"description": "Write down an organization worth following up, and track it from first contact onward.",
"heading": "Track a new organization"
}
},
"question": "What's waiting on me today?"
},
"questions/owners/prospect-sent.yaml": {
"back": "Back to site",
"description": "Thanks — we've got your prospect written down, and it now moves through the desk with everything else we're tracking.",
"next_description": "An owner walks it from prospect to client, and on to past client, as the relationship moves.",
"next_heading": "It's on the desk now",
"question": "What happens to this now?"
},
"questions/owners/prospect.yaml": {
"button": "Add to prospects",
"description": "One line per organization worth watching, moved through the stages as things develop.",
"encouragement": "Takes a minute, and it's yours to update later.",
"form_description": "Name the organization and where things stand.",
"form_title": "New prospect",
"heading": "Keep an organization on your radar",
"hints": {
"contact": "met at the bakers' conference, [email protected]",
"name": "Nordvik Bakery",
"note": "wants a booking flow, follow up after harvest season"
},
"icon": "briefcase",
"labels": {
"contact": "Contact",
"name": "Organization",
"note": "Note"
},
"page_description": "Write down an organization worth following up, and move it through client and past client as things develop.",
"question": "Is there an organization I should be keeping track of?",
"road_description": "It sits as a prospect until something moves - then you mark it client, and later past client if the work ends.",
"road_icon": "route",
"road_title": "Moves as you update it",
"who_description": "Only you see this, so keep it wherever you check next.",
"who_icon": "user",
"who_title": "Just for you"
},
"questions/received/collaborate.yaml": {
"back": "Back to site",
"description": "Your note is in. An owner reads every one and will get back to you if there's a fit worth exploring.",
"next_description": "If it looks like a fit, we'll reach out to talk about where you could help.",
"next_heading": "We'll write if there's a fit",
"question": "What happens to what I just sent?"
},
"questions/received/commission.yaml": {
"back": "Back to home",
"description": "Your brief is in. An owner reads every commission end to end before replying.",
"next_description": "Expect a reply within a few working days, either way, straight to your inbox.",
"next_heading": "A real reply from someone who read it",
"question": "What happens now that we've sent our brief?"
},
"questions/received/custody.yaml": {
"back": "Back to the site",
"description": "A custodian reads every message about the redoal network and what it keeps.",
"next_description": "Expect a reply once your report has been looked at and the network checked.",
"next_heading": "A custodian is on it",
"question": "Who looks after what the network keeps?"
},
"questions/received/propose.yaml": {
"back": "Back home",
"description": "Your proposal is in. Someone here will read it and decide whether it fits before anything changes on the page.",
"next_description": "We'll write back once it's been read — approved and made live, or turned down with a reason.",
"next_heading": "A read, then a decision",
"question": "What happens to my proposal now?"
},
"questions/received/subscribe.yaml": {
"back": "Back to site",
"description": "You'll hear from us when there's something worth saying, not on a schedule.",
"next_description": "You're on the list. Every note has an unsubscribe link if it stops being useful.",
"next_heading": "You're on the list",
"question": "What happens now that I've subscribed?"
},
"questions/received/trial.yaml": {
"back": "Back to site",
"description": "We read every trial request ourselves before anything gets built.",
"next_description": "If it looks like a fit, we'll draft your site from your own words and send it back for your say before anything goes live.",
"next_heading": "A first draft, built from your own words",
"question": "What happens now that you've sent this?"
}
}
+27
View File
@@ -0,0 +1,27 @@
{"id":"architecture-firm@/","persona":"architecture-firm","need":"commission","page":"/","state":{"body":"We run a small architecture firm and our project files are scattered across three cloud drives. We want to pay someone to set up proper storage and backups we control ourselves."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Get an answer from the people who keep the network":"For anyone who runs on, builds on, or is affected by the redoal network and needs to reach the people who keep its first node.","Get software built around your problem":"Send us the problem, or try your own workflow as a working site before you pay for anything.","Work with us, or just stay in touch":"Build with us, hear from us now and then, or tell us what should change on this page."}}},"expect":["Get software built around your problem"]}
{"id":"architecture-firm@/build","persona":"architecture-firm","need":"commission","page":"/build","state":{"body":"We run a small architecture firm and our project files are scattered across three cloud drives. We want to pay someone to set up proper storage and backups we control ourselves."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Do you already know the problem, or do you want to see your own business as a site first?\". Which alternative do they choose?","criteria":{"A considered reply to your brief":"You know the problem and want it solved. Write it up and send it to people who will read the whole thing.","A first draft of your own site":"See your own requests, approvals and handovers as a working site, before you commit to anything."}}},"expect":["A considered reply to your brief"]}
{"id":"climbing-gym-founder@/","persona":"climbing-gym-founder","need":"commission","page":"/","state":{"body":"I have an idea for a booking app for climbing gyms and I'm looking for a team that can build the first version with me."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Get an answer from the people who keep the network":"For anyone who runs on, builds on, or is affected by the redoal network and needs to reach the people who keep its first node.","Get software built around your problem":"Send us the problem, or try your own workflow as a working site before you pay for anything.","Work with us, or just stay in touch":"Build with us, hear from us now and then, or tell us what should change on this page."}}},"expect":["Get software built around your problem"]}
{"id":"climbing-gym-founder@/build","persona":"climbing-gym-founder","need":"commission","page":"/build","state":{"body":"I have an idea for a booking app for climbing gyms and I'm looking for a team that can build the first version with me."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Do you already know the problem, or do you want to see your own business as a site first?\". Which alternative do they choose?","criteria":{"A considered reply to your brief":"You know the problem and want it solved. Write it up and send it to people who will read the whole thing.","A first draft of your own site":"See your own requests, approvals and handovers as a working site, before you commit to anything."}}},"expect":["A considered reply to your brief"]}
{"id":"municipality-buyer@/","persona":"municipality-buyer","need":"commission","page":"/","state":{"body":"Our municipality needs an internal tool for tracking building permits. We are looking for a vendor who can scope it and deliver it."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Get an answer from the people who keep the network":"For anyone who runs on, builds on, or is affected by the redoal network and needs to reach the people who keep its first node.","Get software built around your problem":"Send us the problem, or try your own workflow as a working site before you pay for anything.","Work with us, or just stay in touch":"Build with us, hear from us now and then, or tell us what should change on this page."}}},"expect":["Get software built around your problem"]}
{"id":"municipality-buyer@/build","persona":"municipality-buyer","need":"commission","page":"/build","state":{"body":"Our municipality needs an internal tool for tracking building permits. We are looking for a vendor who can scope it and deliver it."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Do you already know the problem, or do you want to see your own business as a site first?\". Which alternative do they choose?","criteria":{"A considered reply to your brief":"You know the problem and want it solved. Write it up and send it to people who will read the whole thing.","A first draft of your own site":"See your own requests, approvals and handovers as a working site, before you commit to anything."}}},"expect":["A considered reply to your brief"]}
{"id":"exhibition-visitor@/","persona":"exhibition-visitor","need":"subscribe","page":"/","state":{"body":"I saw your drawing network at an exhibition and liked it. I don't want to get involved, I'd just like to know when there is news."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Get an answer from the people who keep the network":"For anyone who runs on, builds on, or is affected by the redoal network and needs to reach the people who keep its first node.","Get software built around your problem":"Send us the problem, or try your own workflow as a working site before you pay for anything.","Work with us, or just stay in touch":"Build with us, hear from us now and then, or tell us what should change on this page."}}},"expect":["Work with us, or just stay in touch"]}
{"id":"exhibition-visitor@/join","persona":"exhibition-visitor","need":"subscribe","page":"/join","state":{"body":"I saw your drawing network at an exhibition and liked it. I don't want to get involved, I'd just like to know when there is news."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"How do you want to be part of this?\". Which alternative do they choose?","criteria":{"Get a page fixed the way you'd write it":"You've spotted something on this site that should read differently, and you know roughly how.","Hear from us only when there's something to say":"You'd rather hear from us now and then than check back on your own.","Work with people who read the whole thing":"You want to build software with people who read the whole brief, not just the summary."}}},"expect":["Hear from us only when there's something to say"]}
{"id":"tech-journalist@/","persona":"tech-journalist","need":"subscribe","page":"/","state":{"body":"I write about Nordic technology. Keep me posted on what you release so I can cover it."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Get an answer from the people who keep the network":"For anyone who runs on, builds on, or is affected by the redoal network and needs to reach the people who keep its first node.","Get software built around your problem":"Send us the problem, or try your own workflow as a working site before you pay for anything.","Work with us, or just stay in touch":"Build with us, hear from us now and then, or tell us what should change on this page."}}},"expect":["Work with us, or just stay in touch"]}
{"id":"tech-journalist@/join","persona":"tech-journalist","need":"subscribe","page":"/join","state":{"body":"I write about Nordic technology. Keep me posted on what you release so I can cover it."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"How do you want to be part of this?\". Which alternative do they choose?","criteria":{"Get a page fixed the way you'd write it":"You've spotted something on this site that should read differently, and you know roughly how.","Hear from us only when there's something to say":"You'd rather hear from us now and then than check back on your own.","Work with people who read the whole thing":"You want to build software with people who read the whole brief, not just the summary."}}},"expect":["Hear from us only when there's something to say"]}
{"id":"rust-developer@/","persona":"rust-developer","need":"collaborate","page":"/","state":{"body":"I'm a Rust developer between jobs and I like that you build in the open. I would love to contribute, and maybe join you."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Get an answer from the people who keep the network":"For anyone who runs on, builds on, or is affected by the redoal network and needs to reach the people who keep its first node.","Get software built around your problem":"Send us the problem, or try your own workflow as a working site before you pay for anything.","Work with us, or just stay in touch":"Build with us, hear from us now and then, or tell us what should change on this page."}}},"expect":["Work with us, or just stay in touch"]}
{"id":"rust-developer@/join","persona":"rust-developer","need":"collaborate","page":"/join","state":{"body":"I'm a Rust developer between jobs and I like that you build in the open. I would love to contribute, and maybe join you."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"How do you want to be part of this?\". Which alternative do they choose?","criteria":{"Get a page fixed the way you'd write it":"You've spotted something on this site that should read differently, and you know roughly how.","Hear from us only when there's something to say":"You'd rather hear from us now and then than check back on your own.","Work with people who read the whole thing":"You want to build software with people who read the whole brief, not just the summary."}}},"expect":["Work with people who read the whole thing"]}
{"id":"interaction-designer@/","persona":"interaction-designer","need":"collaborate","page":"/","state":{"body":"I'm an interaction designer. I want to work with you on the drawing interface."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Get an answer from the people who keep the network":"For anyone who runs on, builds on, or is affected by the redoal network and needs to reach the people who keep its first node.","Get software built around your problem":"Send us the problem, or try your own workflow as a working site before you pay for anything.","Work with us, or just stay in touch":"Build with us, hear from us now and then, or tell us what should change on this page."}}},"expect":["Work with us, or just stay in touch"]}
{"id":"interaction-designer@/join","persona":"interaction-designer","need":"collaborate","page":"/join","state":{"body":"I'm an interaction designer. I want to work with you on the drawing interface."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"How do you want to be part of this?\". Which alternative do they choose?","criteria":{"Get a page fixed the way you'd write it":"You've spotted something on this site that should read differently, and you know roughly how.","Hear from us only when there's something to say":"You'd rather hear from us now and then than check back on your own.","Work with people who read the whole thing":"You want to build software with people who read the whole brief, not just the summary."}}},"expect":["Work with people who read the whole thing"]}
{"id":"student-intern@/","persona":"student-intern","need":"collaborate","page":"/","state":{"body":"I'm a computer science student looking for a summer internship doing infrastructure work."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Get an answer from the people who keep the network":"For anyone who runs on, builds on, or is affected by the redoal network and needs to reach the people who keep its first node.","Get software built around your problem":"Send us the problem, or try your own workflow as a working site before you pay for anything.","Work with us, or just stay in touch":"Build with us, hear from us now and then, or tell us what should change on this page."}}},"expect":["Work with us, or just stay in touch"]}
{"id":"student-intern@/join","persona":"student-intern","need":"collaborate","page":"/join","state":{"body":"I'm a computer science student looking for a summer internship doing infrastructure work."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"How do you want to be part of this?\". Which alternative do they choose?","criteria":{"Get a page fixed the way you'd write it":"You've spotted something on this site that should read differently, and you know roughly how.","Hear from us only when there's something to say":"You'd rather hear from us now and then than check back on your own.","Work with people who read the whole thing":"You want to build software with people who read the whole brief, not just the summary."}}},"expect":["Work with people who read the whole thing"]}
{"id":"plumber-owner@/","persona":"plumber-owner","need":"trial","page":"/","state":{"body":"I run a plumbing company with four vans. Jobs come in by phone and text and some get lost. I'd like to see how this would look for us before I spend any money."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Get an answer from the people who keep the network":"For anyone who runs on, builds on, or is affected by the redoal network and needs to reach the people who keep its first node.","Get software built around your problem":"Send us the problem, or try your own workflow as a working site before you pay for anything.","Work with us, or just stay in touch":"Build with us, hear from us now and then, or tell us what should change on this page."}}},"expect":["Get software built around your problem"]}
{"id":"plumber-owner@/build","persona":"plumber-owner","need":"trial","page":"/build","state":{"body":"I run a plumbing company with four vans. Jobs come in by phone and text and some get lost. I'd like to see how this would look for us before I spend any money."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Do you already know the problem, or do you want to see your own business as a site first?\". Which alternative do they choose?","criteria":{"A considered reply to your brief":"You know the problem and want it solved. Write it up and send it to people who will read the whole thing.","A first draft of your own site":"See your own requests, approvals and handovers as a working site, before you commit to anything."}}},"expect":["A first draft of your own site"]}
{"id":"dance-school@/","persona":"dance-school","need":"trial","page":"/","state":{"body":"We are a dance school. Enrolments, cancellations and invoices all go through one email inbox that only I understand. Can you show me a version made for us?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Get an answer from the people who keep the network":"For anyone who runs on, builds on, or is affected by the redoal network and needs to reach the people who keep its first node.","Get software built around your problem":"Send us the problem, or try your own workflow as a working site before you pay for anything.","Work with us, or just stay in touch":"Build with us, hear from us now and then, or tell us what should change on this page."}}},"expect":["Get software built around your problem"]}
{"id":"dance-school@/build","persona":"dance-school","need":"trial","page":"/build","state":{"body":"We are a dance school. Enrolments, cancellations and invoices all go through one email inbox that only I understand. Can you show me a version made for us?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Do you already know the problem, or do you want to see your own business as a site first?\". Which alternative do they choose?","criteria":{"A considered reply to your brief":"You know the problem and want it solved. Write it up and send it to people who will read the whole thing.","A first draft of your own site":"See your own requests, approvals and handovers as a working site, before you commit to anything."}}},"expect":["A first draft of your own site"]}
{"id":"node-runner@/","persona":"node-runner","need":"custody","page":"/","state":{"body":"I run a small server in Berlin and want to host a redoal node that peers with yours. Who do I talk to?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Get an answer from the people who keep the network":"For anyone who runs on, builds on, or is affected by the redoal network and needs to reach the people who keep its first node.","Get software built around your problem":"Send us the problem, or try your own workflow as a working site before you pay for anything.","Work with us, or just stay in touch":"Build with us, hear from us now and then, or tell us what should change on this page."}}},"expect":["Get an answer from the people who keep the network"]}
{"id":"recorded-name@/","persona":"recorded-name","need":"custody","page":"/","state":{"body":"Someone left a recording on redoal that says my full name and where I live. I want it gone, and I want to know who is responsible for that network."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Get an answer from the people who keep the network":"For anyone who runs on, builds on, or is affected by the redoal network and needs to reach the people who keep its first node.","Get software built around your problem":"Send us the problem, or try your own workflow as a working site before you pay for anything.","Work with us, or just stay in touch":"Build with us, hear from us now and then, or tell us what should change on this page."}}},"expect":["Get an answer from the people who keep the network"]}
{"id":"app-builder@/","persona":"app-builder","need":"custody","page":"/","state":{"body":"I'm building a music app and would like to use redoal's gesture addresses in it. Is that possible, and who decides?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Get an answer from the people who keep the network":"For anyone who runs on, builds on, or is affected by the redoal network and needs to reach the people who keep its first node.","Get software built around your problem":"Send us the problem, or try your own workflow as a working site before you pay for anything.","Work with us, or just stay in touch":"Build with us, hear from us now and then, or tell us what should change on this page."}}},"expect":["Get an answer from the people who keep the network"]}
{"id":"wording-fix@/","persona":"wording-fix","need":"propose","page":"/","state":{"body":"The subscribe page should say how often you actually write. I'd like to suggest that exact change to the page."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Get an answer from the people who keep the network":"For anyone who runs on, builds on, or is affected by the redoal network and needs to reach the people who keep its first node.","Get software built around your problem":"Send us the problem, or try your own workflow as a working site before you pay for anything.","Work with us, or just stay in touch":"Build with us, hear from us now and then, or tell us what should change on this page."}}},"expect":["Work with us, or just stay in touch"]}
{"id":"wording-fix@/join","persona":"wording-fix","need":"propose","page":"/join","state":{"body":"The subscribe page should say how often you actually write. I'd like to suggest that exact change to the page."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"How do you want to be part of this?\". Which alternative do they choose?","criteria":{"Get a page fixed the way you'd write it":"You've spotted something on this site that should read differently, and you know roughly how.","Hear from us only when there's something to say":"You'd rather hear from us now and then than check back on your own.","Work with people who read the whole thing":"You want to build software with people who read the whole brief, not just the summary."}}},"expect":["Get a page fixed the way you'd write it"]}
{"id":"rewrite@/","persona":"rewrite","need":"propose","page":"/","state":{"body":"One page on this site reads wrong to me and I know exactly how I'd rewrite it. Where do I send the new text?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Get an answer from the people who keep the network":"For anyone who runs on, builds on, or is affected by the redoal network and needs to reach the people who keep its first node.","Get software built around your problem":"Send us the problem, or try your own workflow as a working site before you pay for anything.","Work with us, or just stay in touch":"Build with us, hear from us now and then, or tell us what should change on this page."}}},"expect":["Work with us, or just stay in touch"]}
{"id":"rewrite@/join","persona":"rewrite","need":"propose","page":"/join","state":{"body":"One page on this site reads wrong to me and I know exactly how I'd rewrite it. Where do I send the new text?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"How do you want to be part of this?\". Which alternative do they choose?","criteria":{"Get a page fixed the way you'd write it":"You've spotted something on this site that should read differently, and you know roughly how.","Hear from us only when there's something to say":"You'd rather hear from us now and then than check back on your own.","Work with people who read the whole thing":"You want to build software with people who read the whole brief, not just the summary."}}},"expect":["Get a page fixed the way you'd write it"]}
+27
View File
@@ -0,0 +1,27 @@
{"id":"architecture-firm@/","persona":"architecture-firm","need":"commission","page":"/","state":{"body":"We run a small architecture firm and our project files are scattered across three cloud drives. We want to pay someone to set up proper storage and backups we control ourselves."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Get an answer from the people who keep the network":"Get an answer from the people who keep the network","Get software built around your problem":"Get software built around your problem","Work with us, or just stay in touch":"Work with us, or just stay in touch"}}},"expect":["Get software built around your problem"]}
{"id":"architecture-firm@/build","persona":"architecture-firm","need":"commission","page":"/build","state":{"body":"We run a small architecture firm and our project files are scattered across three cloud drives. We want to pay someone to set up proper storage and backups we control ourselves."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Do you already know the problem, or do you want to see your own business as a site first?\". Which alternative do they choose?","criteria":{"A considered reply to your brief":"A considered reply to your brief","A first draft of your own site":"A first draft of your own site"}}},"expect":["A considered reply to your brief"]}
{"id":"climbing-gym-founder@/","persona":"climbing-gym-founder","need":"commission","page":"/","state":{"body":"I have an idea for a booking app for climbing gyms and I'm looking for a team that can build the first version with me."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Get an answer from the people who keep the network":"Get an answer from the people who keep the network","Get software built around your problem":"Get software built around your problem","Work with us, or just stay in touch":"Work with us, or just stay in touch"}}},"expect":["Get software built around your problem"]}
{"id":"climbing-gym-founder@/build","persona":"climbing-gym-founder","need":"commission","page":"/build","state":{"body":"I have an idea for a booking app for climbing gyms and I'm looking for a team that can build the first version with me."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Do you already know the problem, or do you want to see your own business as a site first?\". Which alternative do they choose?","criteria":{"A considered reply to your brief":"A considered reply to your brief","A first draft of your own site":"A first draft of your own site"}}},"expect":["A considered reply to your brief"]}
{"id":"municipality-buyer@/","persona":"municipality-buyer","need":"commission","page":"/","state":{"body":"Our municipality needs an internal tool for tracking building permits. We are looking for a vendor who can scope it and deliver it."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Get an answer from the people who keep the network":"Get an answer from the people who keep the network","Get software built around your problem":"Get software built around your problem","Work with us, or just stay in touch":"Work with us, or just stay in touch"}}},"expect":["Get software built around your problem"]}
{"id":"municipality-buyer@/build","persona":"municipality-buyer","need":"commission","page":"/build","state":{"body":"Our municipality needs an internal tool for tracking building permits. We are looking for a vendor who can scope it and deliver it."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Do you already know the problem, or do you want to see your own business as a site first?\". Which alternative do they choose?","criteria":{"A considered reply to your brief":"A considered reply to your brief","A first draft of your own site":"A first draft of your own site"}}},"expect":["A considered reply to your brief"]}
{"id":"exhibition-visitor@/","persona":"exhibition-visitor","need":"subscribe","page":"/","state":{"body":"I saw your drawing network at an exhibition and liked it. I don't want to get involved, I'd just like to know when there is news."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Get an answer from the people who keep the network":"Get an answer from the people who keep the network","Get software built around your problem":"Get software built around your problem","Work with us, or just stay in touch":"Work with us, or just stay in touch"}}},"expect":["Work with us, or just stay in touch"]}
{"id":"exhibition-visitor@/join","persona":"exhibition-visitor","need":"subscribe","page":"/join","state":{"body":"I saw your drawing network at an exhibition and liked it. I don't want to get involved, I'd just like to know when there is news."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"How do you want to be part of this?\". Which alternative do they choose?","criteria":{"Get a page fixed the way you'd write it":"Get a page fixed the way you'd write it","Hear from us only when there's something to say":"Hear from us only when there's something to say","Work with people who read the whole thing":"Work with people who read the whole thing"}}},"expect":["Hear from us only when there's something to say"]}
{"id":"tech-journalist@/","persona":"tech-journalist","need":"subscribe","page":"/","state":{"body":"I write about Nordic technology. Keep me posted on what you release so I can cover it."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Get an answer from the people who keep the network":"Get an answer from the people who keep the network","Get software built around your problem":"Get software built around your problem","Work with us, or just stay in touch":"Work with us, or just stay in touch"}}},"expect":["Work with us, or just stay in touch"]}
{"id":"tech-journalist@/join","persona":"tech-journalist","need":"subscribe","page":"/join","state":{"body":"I write about Nordic technology. Keep me posted on what you release so I can cover it."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"How do you want to be part of this?\". Which alternative do they choose?","criteria":{"Get a page fixed the way you'd write it":"Get a page fixed the way you'd write it","Hear from us only when there's something to say":"Hear from us only when there's something to say","Work with people who read the whole thing":"Work with people who read the whole thing"}}},"expect":["Hear from us only when there's something to say"]}
{"id":"rust-developer@/","persona":"rust-developer","need":"collaborate","page":"/","state":{"body":"I'm a Rust developer between jobs and I like that you build in the open. I would love to contribute, and maybe join you."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Get an answer from the people who keep the network":"Get an answer from the people who keep the network","Get software built around your problem":"Get software built around your problem","Work with us, or just stay in touch":"Work with us, or just stay in touch"}}},"expect":["Work with us, or just stay in touch"]}
{"id":"rust-developer@/join","persona":"rust-developer","need":"collaborate","page":"/join","state":{"body":"I'm a Rust developer between jobs and I like that you build in the open. I would love to contribute, and maybe join you."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"How do you want to be part of this?\". Which alternative do they choose?","criteria":{"Get a page fixed the way you'd write it":"Get a page fixed the way you'd write it","Hear from us only when there's something to say":"Hear from us only when there's something to say","Work with people who read the whole thing":"Work with people who read the whole thing"}}},"expect":["Work with people who read the whole thing"]}
{"id":"interaction-designer@/","persona":"interaction-designer","need":"collaborate","page":"/","state":{"body":"I'm an interaction designer. I want to work with you on the drawing interface."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Get an answer from the people who keep the network":"Get an answer from the people who keep the network","Get software built around your problem":"Get software built around your problem","Work with us, or just stay in touch":"Work with us, or just stay in touch"}}},"expect":["Work with us, or just stay in touch"]}
{"id":"interaction-designer@/join","persona":"interaction-designer","need":"collaborate","page":"/join","state":{"body":"I'm an interaction designer. I want to work with you on the drawing interface."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"How do you want to be part of this?\". Which alternative do they choose?","criteria":{"Get a page fixed the way you'd write it":"Get a page fixed the way you'd write it","Hear from us only when there's something to say":"Hear from us only when there's something to say","Work with people who read the whole thing":"Work with people who read the whole thing"}}},"expect":["Work with people who read the whole thing"]}
{"id":"student-intern@/","persona":"student-intern","need":"collaborate","page":"/","state":{"body":"I'm a computer science student looking for a summer internship doing infrastructure work."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Get an answer from the people who keep the network":"Get an answer from the people who keep the network","Get software built around your problem":"Get software built around your problem","Work with us, or just stay in touch":"Work with us, or just stay in touch"}}},"expect":["Work with us, or just stay in touch"]}
{"id":"student-intern@/join","persona":"student-intern","need":"collaborate","page":"/join","state":{"body":"I'm a computer science student looking for a summer internship doing infrastructure work."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"How do you want to be part of this?\". Which alternative do they choose?","criteria":{"Get a page fixed the way you'd write it":"Get a page fixed the way you'd write it","Hear from us only when there's something to say":"Hear from us only when there's something to say","Work with people who read the whole thing":"Work with people who read the whole thing"}}},"expect":["Work with people who read the whole thing"]}
{"id":"plumber-owner@/","persona":"plumber-owner","need":"trial","page":"/","state":{"body":"I run a plumbing company with four vans. Jobs come in by phone and text and some get lost. I'd like to see how this would look for us before I spend any money."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Get an answer from the people who keep the network":"Get an answer from the people who keep the network","Get software built around your problem":"Get software built around your problem","Work with us, or just stay in touch":"Work with us, or just stay in touch"}}},"expect":["Get software built around your problem"]}
{"id":"plumber-owner@/build","persona":"plumber-owner","need":"trial","page":"/build","state":{"body":"I run a plumbing company with four vans. Jobs come in by phone and text and some get lost. I'd like to see how this would look for us before I spend any money."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Do you already know the problem, or do you want to see your own business as a site first?\". Which alternative do they choose?","criteria":{"A considered reply to your brief":"A considered reply to your brief","A first draft of your own site":"A first draft of your own site"}}},"expect":["A first draft of your own site"]}
{"id":"dance-school@/","persona":"dance-school","need":"trial","page":"/","state":{"body":"We are a dance school. Enrolments, cancellations and invoices all go through one email inbox that only I understand. Can you show me a version made for us?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Get an answer from the people who keep the network":"Get an answer from the people who keep the network","Get software built around your problem":"Get software built around your problem","Work with us, or just stay in touch":"Work with us, or just stay in touch"}}},"expect":["Get software built around your problem"]}
{"id":"dance-school@/build","persona":"dance-school","need":"trial","page":"/build","state":{"body":"We are a dance school. Enrolments, cancellations and invoices all go through one email inbox that only I understand. Can you show me a version made for us?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"Do you already know the problem, or do you want to see your own business as a site first?\". Which alternative do they choose?","criteria":{"A considered reply to your brief":"A considered reply to your brief","A first draft of your own site":"A first draft of your own site"}}},"expect":["A first draft of your own site"]}
{"id":"node-runner@/","persona":"node-runner","need":"custody","page":"/","state":{"body":"I run a small server in Berlin and want to host a redoal node that peers with yours. Who do I talk to?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Get an answer from the people who keep the network":"Get an answer from the people who keep the network","Get software built around your problem":"Get software built around your problem","Work with us, or just stay in touch":"Work with us, or just stay in touch"}}},"expect":["Get an answer from the people who keep the network"]}
{"id":"recorded-name@/","persona":"recorded-name","need":"custody","page":"/","state":{"body":"Someone left a recording on redoal that says my full name and where I live. I want it gone, and I want to know who is responsible for that network."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Get an answer from the people who keep the network":"Get an answer from the people who keep the network","Get software built around your problem":"Get software built around your problem","Work with us, or just stay in touch":"Work with us, or just stay in touch"}}},"expect":["Get an answer from the people who keep the network"]}
{"id":"app-builder@/","persona":"app-builder","need":"custody","page":"/","state":{"body":"I'm building a music app and would like to use redoal's gesture addresses in it. Is that possible, and who decides?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Get an answer from the people who keep the network":"Get an answer from the people who keep the network","Get software built around your problem":"Get software built around your problem","Work with us, or just stay in touch":"Work with us, or just stay in touch"}}},"expect":["Get an answer from the people who keep the network"]}
{"id":"wording-fix@/","persona":"wording-fix","need":"propose","page":"/","state":{"body":"The subscribe page should say how often you actually write. I'd like to suggest that exact change to the page."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Get an answer from the people who keep the network":"Get an answer from the people who keep the network","Get software built around your problem":"Get software built around your problem","Work with us, or just stay in touch":"Work with us, or just stay in touch"}}},"expect":["Work with us, or just stay in touch"]}
{"id":"wording-fix@/join","persona":"wording-fix","need":"propose","page":"/join","state":{"body":"The subscribe page should say how often you actually write. I'd like to suggest that exact change to the page."},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"How do you want to be part of this?\". Which alternative do they choose?","criteria":{"Get a page fixed the way you'd write it":"Get a page fixed the way you'd write it","Hear from us only when there's something to say":"Hear from us only when there's something to say","Work with people who read the whole thing":"Work with people who read the whole thing"}}},"expect":["Get a page fixed the way you'd write it"]}
{"id":"rewrite@/","persona":"rewrite","need":"propose","page":"/","state":{"body":"One page on this site reads wrong to me and I know exactly how I'd rewrite it. Where do I send the new text?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"What brings you here?\". Which alternative do they choose?","criteria":{"Get an answer from the people who keep the network":"Get an answer from the people who keep the network","Get software built around your problem":"Get software built around your problem","Work with us, or just stay in touch":"Work with us, or just stay in touch"}}},"expect":["Work with us, or just stay in touch"]}
{"id":"rewrite@/join","persona":"rewrite","need":"propose","page":"/join","state":{"body":"One page on this site reads wrong to me and I know exactly how I'd rewrite it. Where do I send the new text?"},"questions":{"pick":{"type":"choice","instructions":"A visitor reads the page question \"How do you want to be part of this?\". Which alternative do they choose?","criteria":{"Get a page fixed the way you'd write it":"Get a page fixed the way you'd write it","Hear from us only when there's something to say":"Hear from us only when there's something to say","Work with people who read the whole thing":"Work with people who read the whole thing"}}},"expect":["Get a page fixed the way you'd write it"]}
@@ -0,0 +1,27 @@
{"choice":"Get software built, or try a site for your business first","confidence":0.85,"id":"architecture-firm@/"}
{"choice":"See your own business as a site, before you buy anything","confidence":0.95,"id":"architecture-firm@/build"}
{"choice":"Get software built, or try a site for your business first","confidence":0.95,"id":"climbing-gym-founder@/"}
{"choice":"See your own business as a site, before you buy anything","confidence":0.95,"id":"climbing-gym-founder@/build"}
{"choice":"Get software built, or try a site for your business first","confidence":0.95,"id":"municipality-buyer@/"}
{"choice":"Have us build it: send the brief","confidence":0.95,"id":"municipality-buyer@/build"}
{"choice":"About the redoal network: run a node, build on it, or have something removed","confidence":0.95,"id":"exhibition-visitor@/"}
{"choice":"Hear from us now and then","confidence":0.95,"id":"exhibition-visitor@/join"}
{"choice":"Get software built, or try a site for your business first","confidence":0.95,"id":"tech-journalist@/"}
{"choice":"Hear from us now and then","confidence":0.95,"id":"tech-journalist@/join"}
{"choice":"Work with us, hear from us, or change this website","confidence":0.95,"id":"rust-developer@/"}
{"choice":"Work with us","confidence":0.95,"id":"rust-developer@/join"}
{"choice":"Get software built, or try a site for your business first","confidence":0.95,"id":"interaction-designer@/"}
{"choice":"Work with us","confidence":0.95,"id":"interaction-designer@/join"}
{"choice":"About the redoal network: run a node, build on it, or have something removed","confidence":0.85,"id":"student-intern@/"}
{"choice":"Work with us","confidence":0.95,"id":"student-intern@/join"}
{"choice":"Get software built, or try a site for your business first","confidence":0.95,"id":"plumber-owner@/"}
{"choice":"See your own business as a site, before you buy anything","confidence":0.95,"id":"plumber-owner@/build"}
{"choice":"About the redoal network: run a node, build on it, or have something removed","confidence":0.95,"id":"dance-school@/"}
{"choice":"See your own business as a site, before you buy anything","confidence":0.95,"id":"dance-school@/build"}
{"choice":"About the redoal network: run a node, build on it, or have something removed","confidence":0.95,"id":"node-runner@/"}
{"choice":"About the redoal network: run a node, build on it, or have something removed","confidence":0.95,"id":"recorded-name@/"}
{"choice":"About the redoal network: run a node, build on it, or have something removed","confidence":0.95,"id":"app-builder@/"}
{"choice":"Work with us, hear from us, or change this website","confidence":0.95,"id":"wording-fix@/"}
{"choice":"Suggest a change to this website","confidence":0.95,"id":"wording-fix@/join"}
{"choice":"About the redoal network: run a node, build on it, or have something removed","confidence":0.95,"id":"rewrite@/"}
{"choice":"Suggest a change to this website","confidence":1.0,"id":"rewrite@/join"}
@@ -0,0 +1,27 @@
{"choice":"Get software built, or try a site for your business first","confidence":0.95,"id":"architecture-firm@/"}
{"choice":"Have us build it: send the brief","confidence":0.95,"id":"architecture-firm@/build"}
{"choice":"Get software built, or try a site for your business first","confidence":0.95,"id":"climbing-gym-founder@/"}
{"choice":"Have us build it: send the brief","confidence":0.95,"id":"climbing-gym-founder@/build"}
{"choice":"Get software built, or try a site for your business first","confidence":0.95,"id":"municipality-buyer@/"}
{"choice":"Have us build it: send the brief","confidence":0.95,"id":"municipality-buyer@/build"}
{"choice":"About the redoal network: run a node, build on it, or have something removed","confidence":0.95,"id":"exhibition-visitor@/"}
{"choice":"Hear from us now and then","confidence":0.95,"id":"exhibition-visitor@/join"}
{"choice":"Get software built, or try a site for your business first","confidence":0.95,"id":"tech-journalist@/"}
{"choice":"Hear from us now and then","confidence":0.95,"id":"tech-journalist@/join"}
{"choice":"Work with us, hear from us, or change this website","confidence":0.95,"id":"rust-developer@/"}
{"choice":"Work with us","confidence":0.95,"id":"rust-developer@/join"}
{"choice":"Work with us, hear from us, or change this website","confidence":0.95,"id":"interaction-designer@/"}
{"choice":"Work with us","confidence":0.95,"id":"interaction-designer@/join"}
{"choice":"About the redoal network: run a node, build on it, or have something removed","confidence":0.95,"id":"student-intern@/"}
{"choice":"Work with us","confidence":0.95,"id":"student-intern@/join"}
{"choice":"Get software built, or try a site for your business first","confidence":0.95,"id":"plumber-owner@/"}
{"choice":"See your own business as a site, before you buy anything","confidence":0.95,"id":"plumber-owner@/build"}
{"choice":"Work with us, hear from us, or change this website","confidence":0.95,"id":"dance-school@/"}
{"choice":"Have us build it: send the brief","confidence":0.95,"id":"dance-school@/build"}
{"choice":"About the redoal network: run a node, build on it, or have something removed","confidence":0.95,"id":"node-runner@/"}
{"choice":"About the redoal network: run a node, build on it, or have something removed","confidence":0.95,"id":"recorded-name@/"}
{"choice":"Get software built, or try a site for your business first","confidence":0.95,"id":"app-builder@/"}
{"choice":"Work with us, hear from us, or change this website","confidence":0.95,"id":"wording-fix@/"}
{"choice":"Hear from us now and then","confidence":0.95,"id":"wording-fix@/join"}
{"choice":"Work with us, hear from us, or change this website","confidence":0.85,"id":"rewrite@/"}
{"choice":"Suggest a change to this website","confidence":1.0,"id":"rewrite@/join"}
+274
View File
@@ -0,0 +1,274 @@
{
"collaborate": {
"pages": [
{
"control": {
"asked": 0,
"next": null,
"where": 0,
"which": 0
},
"control_ok": true,
"followup_shown": false,
"lix": 27.081300813008127,
"options": 3,
"overloaded": false,
"page": "/",
"personas": 3,
"required_fields": 0,
"understanding": {
"asked": 3,
"next": null,
"where": 3,
"which": 2
}
},
{
"control": {
"asked": 0,
"next": 0,
"where": 0,
"which": 0
},
"control_ok": true,
"followup_shown": true,
"lix": 19.40740740740741,
"options": 3,
"overloaded": false,
"page": "/join",
"personas": 3,
"required_fields": 3,
"understanding": {
"asked": 3,
"next": 3,
"where": 3,
"which": 3
}
}
],
"steps": 2
},
"commission": {
"pages": [
{
"control": {
"asked": 0,
"next": null,
"where": 0,
"which": 0
},
"control_ok": true,
"followup_shown": false,
"lix": 27.081300813008127,
"options": 3,
"overloaded": false,
"page": "/",
"personas": 3,
"required_fields": 0,
"understanding": {
"asked": 3,
"next": null,
"where": 2,
"which": 1
}
},
{
"control": {
"asked": 0,
"next": 0,
"where": 0,
"which": 0
},
"control_ok": true,
"followup_shown": true,
"lix": 31.056192660550458,
"options": 2,
"overloaded": false,
"page": "/build",
"personas": 3,
"required_fields": 4,
"understanding": {
"asked": 3,
"next": 3,
"where": 3,
"which": 3
}
}
],
"steps": 2
},
"custody": {
"pages": [
{
"control": {
"asked": 0,
"next": 0,
"where": 0,
"which": 0
},
"control_ok": true,
"followup_shown": true,
"lix": 28.303899082568808,
"options": 3,
"overloaded": false,
"page": "/",
"personas": 3,
"required_fields": 4,
"understanding": {
"asked": 3,
"next": 3,
"where": 3,
"which": 2
}
}
],
"steps": 1
},
"propose": {
"pages": [
{
"control": {
"asked": 0,
"next": null,
"where": 0,
"which": 0
},
"control_ok": true,
"followup_shown": false,
"lix": 27.081300813008127,
"options": 3,
"overloaded": false,
"page": "/",
"personas": 2,
"required_fields": 0,
"understanding": {
"asked": 2,
"next": null,
"where": 1,
"which": 0
}
},
{
"control": {
"asked": 0,
"next": 0,
"where": 0,
"which": 0
},
"control_ok": true,
"followup_shown": true,
"lix": 23.11111111111111,
"options": 3,
"overloaded": false,
"page": "/join",
"personas": 2,
"required_fields": 3,
"understanding": {
"asked": 2,
"next": 2,
"where": 2,
"which": 2
}
}
],
"steps": 2
},
"subscribe": {
"pages": [
{
"control": {
"asked": 0,
"next": null,
"where": 0,
"which": 0
},
"control_ok": true,
"followup_shown": false,
"lix": 27.081300813008127,
"options": 3,
"overloaded": false,
"page": "/",
"personas": 2,
"required_fields": 0,
"understanding": {
"asked": 2,
"next": null,
"where": 2,
"which": 0
}
},
{
"control": {
"asked": 0,
"next": 0,
"where": 0,
"which": 0
},
"control_ok": true,
"followup_shown": true,
"lix": 21.1010101010101,
"options": 3,
"overloaded": false,
"page": "/join",
"personas": 2,
"required_fields": 2,
"understanding": {
"asked": 2,
"next": 2,
"where": 2,
"which": 2
}
}
],
"steps": 2
},
"trial": {
"pages": [
{
"control": {
"asked": 0,
"next": null,
"where": 0,
"which": 0
},
"control_ok": true,
"followup_shown": false,
"lix": 27.081300813008127,
"options": 3,
"overloaded": false,
"page": "/",
"personas": 2,
"required_fields": 0,
"understanding": {
"asked": 2,
"next": null,
"where": 0,
"which": 0
}
},
{
"control": {
"asked": 0,
"next": 0,
"where": 0,
"which": 0
},
"control_ok": true,
"followup_shown": true,
"lix": 32.95073891625616,
"options": 2,
"overloaded": true,
"page": "/build",
"personas": 2,
"required_fields": 6,
"understanding": {
"asked": 2,
"next": 2,
"where": 2,
"which": 2
}
}
],
"steps": 2
}
}
+35
View File
@@ -0,0 +1,35 @@
== answer full
== answer skim
== score full
MISROUTE: architecture-firm@/build: picked "See your own business as a site, before you buy anything" (0.95), the need is met by ["Have us build it: send the brief"]
MISROUTE: climbing-gym-founder@/build: picked "See your own business as a site, before you buy anything" (0.95), the need is met by ["Have us build it: send the brief"]
MISROUTE: exhibition-visitor@/: picked "About the redoal network: run a node, build on it, or have something removed" (0.95), the need is met by ["Work with us, hear from us, or change this website"]
MISROUTE: tech-journalist@/: picked "Get software built, or try a site for your business first" (0.95), the need is met by ["Work with us, hear from us, or change this website"]
MISROUTE: interaction-designer@/: picked "Get software built, or try a site for your business first" (0.95), the need is met by ["Work with us, hear from us, or change this website"]
MISROUTE: student-intern@/: picked "About the redoal network: run a node, build on it, or have something removed" (0.85), the need is met by ["Work with us, hear from us, or change this website"]
MISROUTE: dance-school@/: picked "About the redoal network: run a node, build on it, or have something removed" (0.95), the need is met by ["Get software built, or try a site for your business first"]
MISROUTE: rewrite@/: picked "About the redoal network: run a node, build on it, or have something removed" (0.95), the need is met by ["Work with us, hear from us, or change this website"]
wording: 19/27 routed right (70%)
== score skim
MISROUTE: exhibition-visitor@/: picked "About the redoal network: run a node, build on it, or have something removed" (0.95), the need is met by ["Work with us, hear from us, or change this website"]
MISROUTE: tech-journalist@/: picked "Get software built, or try a site for your business first" (0.95), the need is met by ["Work with us, hear from us, or change this website"]
MISROUTE: student-intern@/: picked "About the redoal network: run a node, build on it, or have something removed" (0.95), the need is met by ["Work with us, hear from us, or change this website"]
MISROUTE: dance-school@/: picked "Work with us, hear from us, or change this website" (0.95), the need is met by ["Get software built, or try a site for your business first"]
MISROUTE: dance-school@/build: picked "Have us build it: send the brief" (0.95), the need is met by ["See your own business as a site, before you buy anything"]
MISROUTE: app-builder@/: picked "Get software built, or try a site for your business first" (0.95), the need is met by ["About the redoal network: run a node, build on it, or have something removed"]
MISROUTE: wording-fix@/join: picked "Hear from us now and then" (0.95), the need is met by ["Suggest a change to this website"]
wording: 20/27 routed right (74%)
== rate
need LIX which where asked next gutted twin says page load
commission @/ 27 very easy 1/3 2/3 3/3 - 0/0/0/- ok 3 options, 0 required
commission @/build 31 easy 3/3 3/3 3/3 3/3 0/0/0/0 ok 2 options, 4 required
trial @/ 27 very easy 0/2 0/2 2/2 - 0/0/0/- ok 3 options, 0 required
trial @/build 33 easy 2/2 2/2 2/2 2/2 0/0/0/0 ok 2 options, 6 required - SPLIT
collaborate @/ 27 very easy 2/3 3/3 3/3 - 0/0/0/- ok 3 options, 0 required
collaborate @/join 19 very easy 3/3 3/3 3/3 3/3 0/0/0/0 ok 3 options, 3 required
subscribe @/ 27 very easy 0/2 2/2 2/2 - 0/0/0/- ok 3 options, 0 required
subscribe @/join 21 very easy 2/2 2/2 2/2 2/2 0/0/0/0 ok 3 options, 2 required
propose @/ 27 very easy 0/2 1/2 2/2 - 0/0/0/- ok 3 options, 0 required
propose @/join 23 very easy 2/2 2/2 2/2 2/2 0/0/0/0 ok 3 options, 3 required
custody 28 very easy 2/3 3/3 3/3 3/3 0/0/0/0 ok 3 options, 4 required
== done
@@ -0,0 +1,113 @@
aggregates:
- bucket: applicants
initial: open
states:
active:
event: onboarded
declined:
event: declined
departed:
event: departed
invited:
event: invited
open:
event: applied
transitions:
active:
- departed
- declined
invited:
- active
- declined
open:
- invited
- declined
- bucket: custody_requests
initial: open
states:
declined:
event: declined
in_dialogue:
event: in_dialogue
open:
event: received
resolved:
event: resolved
transitions:
in_dialogue:
- resolved
- declined
open:
- in_dialogue
- declined
- bucket: development_proposals
initial: open
states:
approved:
event: approved
open:
event: proposed
rejected:
event: rejected
transitions:
open:
- approved
- rejected
- bucket: organizations
initial: prospect
states:
client:
event: became_client
past_client:
event: churned
prospect:
event: identified
transitions:
client:
- past_client
prospect:
- client
- past_client
- bucket: projects
initial: open
states:
accepted:
event: accepted
declined:
event: declined
open:
event: submitted
transitions:
open:
- accepted
- declined
- bucket: subscribers
initial: open
states:
open:
event: subscribed
unsubscribed:
event: unsubscribed
transitions:
open:
- unsubscribed
- attended_by: |
approved -> previewed: the n8n workflow that builds the draft site from an approved intake (docker, rauthy, portal content) and sends the preview link. Until it exists, owners run portal-trainer by hand and press the button.
bucket: trials
initial: open
states:
approved:
event: approved
declined:
event: declined
open:
event: received
previewed:
event: previewed
transitions:
approved:
- previewed
- declined
open:
- approved
- declined
@@ -0,0 +1,174 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/build/index.yaml
It is a page one kind of visitor reaches from the front door. `question` is what this page asks them; under `needs`, each entry is one alternative they can pick, with the form behind it.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"description": "<WRITE: one or two short sentences>",
"needs": {
"commission": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"encouragement": "<WRITE: one reassuring sentence: what happens with what they send, or how little it takes; or empty>",
"form_description": "<WRITE: one short line of guidance above the form, or empty>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"hints": {
"email": "<WRITE: an example answer for the field `email`, as a placeholder; or empty>",
"name": "<WRITE: an example answer for the field `name`, as a placeholder; or empty>",
"org_contact": "<WRITE: an example answer for the field `org_contact`, as a placeholder; or empty>",
"organization": "<WRITE: an example answer for the field `organization`, as a placeholder; or empty>",
"project": "<WRITE: an example answer for the field `project`, as a placeholder; or empty>"
},
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>",
"labels": {
"email": "<WRITE: a form label for the field `email`>",
"name": "<WRITE: a form label for the field `name`>",
"org_contact": "<WRITE: a form label for the field `org_contact`>",
"organization": "<WRITE: a form label for the field `organization`>",
"project": "<WRITE: a form label for the field `project`>"
},
"road_description": "<WRITE: one or two sentences walking the reader through the stages this goes through, in order (the stages are listed above), in their words>",
"road_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"road_title": "<WRITE: a short title, two to four words, for the line that says what happens after sending>",
"who_description": "<WRITE: one sentence: who reads what they send, and how to reach them meanwhile>",
"who_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"who_title": "<WRITE: a short title, two to four words, for the line that says who reads it>"
},
"trial": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"encouragement": "<WRITE: one reassuring sentence: what happens with what they send, or how little it takes; or empty>",
"form_description": "<WRITE: one short line of guidance above the form, or empty>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"hints": {
"business": "<WRITE: an example answer for the field `business`, as a placeholder; or empty>",
"email": "<WRITE: an example answer for the field `email`, as a placeholder; or empty>",
"what_slows_us_down": "<WRITE: an example answer for the field `what_slows_us_down`, as a placeholder; or empty>",
"what_we_do": "<WRITE: an example answer for the field `what_we_do`, as a placeholder; or empty>",
"what_we_keep_track_of": "<WRITE: an example answer for the field `what_we_keep_track_of`, as a placeholder; or empty>",
"who_comes_to_us": "<WRITE: an example answer for the field `who_comes_to_us`, as a placeholder; or empty>",
"who_is_involved": "<WRITE: an example answer for the field `who_is_involved`, as a placeholder; or empty>"
},
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>",
"labels": {
"business": "<WRITE: a form label for the field `business`>",
"email": "<WRITE: a form label for the field `email`>",
"what_slows_us_down": "<WRITE: a form label for the field `what_slows_us_down`>",
"what_we_do": "<WRITE: a form label for the field `what_we_do`>",
"what_we_keep_track_of": "<WRITE: a form label for the field `what_we_keep_track_of`>",
"who_comes_to_us": "<WRITE: a form label for the field `who_comes_to_us`>",
"who_is_involved": "<WRITE: a form label for the field `who_is_involved`>"
},
"road_description": "<WRITE: one or two sentences walking the reader through the stages this goes through, in order (the stages are listed above), in their words>",
"road_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"road_title": "<WRITE: a short title, two to four words, for the line that says what happens after sending>",
"who_description": "<WRITE: one sentence: who reads what they send, and how to reach them meanwhile>",
"who_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"who_title": "<WRITE: a short title, two to four words, for the line that says who reads it>"
}
},
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
```json
{
"description": "Have a problem software should solve, or want to see your own way of working as a site before you pay anyone?",
"needs": {
"commission": {
"button": "Send the brief",
"description": "You know the problem and want it solved. Write it up and send it to people who will read the whole thing.",
"encouragement": "Someone here reads every brief in full before writing back.",
"form_description": "The more of the problem you put in, the better the reply.",
"form_title": "Tell us the problem",
"heading": "A considered reply to your brief",
"hints": {
"email": "sara@company.com",
"name": "Sara Nilsen",
"org_contact": "Sara Nilsen, ops manager",
"organization": "Nilsen Transport AS",
"project": "Our drivers log hours on paper and it takes a day to get them into payroll."
},
"icon": "briefcase",
"labels": {
"email": "Your email",
"name": "Your name",
"org_contact": "Who we should talk to",
"organization": "Your organization",
"project": "The problem you want solved"
},
"road_description": "We read your brief and either take it on or tell you honestly if it's not a fit.",
"road_icon": "route",
"road_title": "What happens next",
"who_description": "One of the owners reads it; write to bl@uhhm.no if you'd rather reach us directly.",
"who_icon": "user-check",
"who_title": "Who reads this"
},
"trial": {
"button": "Start the draft",
"description": "See your own requests, approvals and handovers as a working site, before you commit to anything.",
"encouragement": "A person looks at what you send before anything gets built.",
"form_description": "Answer in your own words - there's no wrong way to describe your business.",
"form_title": "Describe your business",
"heading": "A first draft of your own site",
"hints": {
"business": "Nilsen Transport AS",
"email": "sara@company.com",
"what_slows_us_down": "Approvals sit in someone's inbox for days before anyone acts on them.",
"what_we_do": "We move freight for local businesses and handle the paperwork for them.",
"what_we_keep_track_of": "Bookings, driver hours, and which loads are still waiting on a signature.",
"who_comes_to_us": "Local businesses that need something moved on short notice.",
"who_is_involved": "Drivers, dispatchers, and the customers waiting on their delivery."
},
"icon": "layers",
"labels": {
"business": "Your business",
"email": "Your email",
"what_slows_us_down": "What slows you down",
"what_we_do": "What you do",
"what_we_keep_track_of": "What you keep track of",
"who_comes_to_us": "Who comes to you",
"who_is_involved": "Who's involved"
},
"road_description": "We look at what you sent and, if it's a fit, build a draft from your own roles and words for you to see before anything moves further.",
"road_icon": "route",
"road_title": "What happens next",
"who_description": "An owner looks at what you send; write to bl@uhhm.no if you'd rather reach us directly.",
"who_icon": "user-check",
"who_title": "Who reads this"
}
},
"question": "Do you already know the problem, or do you want to see your own business as a site first?"
}
```
@@ -0,0 +1,108 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/custodians/index.yaml
It is a desk: the page one role inside the business works from. Under `buckets`, each entry is a list of cases; `moves` are the buttons that move a case from one stage to the next (key `from->to`), so label each with what the person has just done. Under `links` are pages this role can open. Under `invites`, each entry is a form that invites a person into that group - they get an account and a one-time link - and `invited` is the list of invites sent.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"buckets": {
"custody_requests": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {
"in_dialogue->declined": "<WRITE: a button, two to four words, for a case going in_dialogue->declined>",
"in_dialogue->resolved": "<WRITE: a button, two to four words, for a case going in_dialogue->resolved>",
"open->declined": "<WRITE: a button, two to four words, for a case going open->declined>",
"open->in_dialogue": "<WRITE: a button, two to four words, for a case going open->in_dialogue>"
}
}
},
"confirm": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"invited": {
"description": "<WRITE: one or two short sentences>",
"done": "<WRITE: a form label for the field `done`>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>"
},
"invites": {
"custodians": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"labels": {
"email": "<WRITE: a form label for the field `email`>",
"name": "<WRITE: a form label for the field `name`>"
}
}
},
"links": {},
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
```json
{
"buckets": {
"custody_requests": {
"description": "Cases from people who use, build on, or answer for something the redoal network touches, and need a custodian's word on it.",
"heading": "Custody cases waiting on you",
"moves": {
"in_dialogue->declined": "Close, no action",
"in_dialogue->resolved": "Mark resolved",
"open->declined": "Decline case",
"open->in_dialogue": "Open dialogue"
}
}
},
"confirm": "Send invite",
"description": "The desk for custodians: open custody cases, and the people invited to answer them.",
"invited": {
"description": "Custodians invited but not yet signed in.",
"done": "Signed in",
"heading": "Invited custodians"
},
"invites": {
"custodians": {
"button": "Invite custodian",
"description": "Give someone an account and a one-time link to join as a custodian.",
"form_title": "Invite a custodian",
"heading": "Bring in another custodian",
"labels": {
"email": "Email",
"name": "Name"
}
}
},
"links": {},
"question": "What does the network owe the people it affects, right now?"
}
```
@@ -0,0 +1,60 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/decide/subscribe.yaml
It is a page the person who sent a form reaches later, through a private link, to make a decision that is theirs: under `moves`, each entry is one thing they can decide.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"description": "<WRITE: one or two short sentences>",
"moves": {
"unsubscribed": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>"
}
},
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
```json
{
"description": "You're on our list. Change your mind whenever you like.",
"moves": {
"unsubscribed": {
"button": "Unsubscribe",
"description": "You'll stop hearing from us. Nothing else changes.",
"heading": "Stop getting notes from us"
}
},
"question": "Do you want to keep hearing from us?"
}
```
@@ -0,0 +1,136 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/index.yaml
It is the front door: the first page any visitor sees. `question` is the page's one question. Under `doors`, each entry is one alternative that leads to a page of its own for one kind of visitor: its heading must let that visitor recognise themselves from the heading alone. Under `needs`, each entry is one alternative with a form behind it.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"description": "<WRITE: one or two short sentences>",
"doors": {
"build": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"for_whom": "<WRITE: a few words naming who this is for, addressed to them; or empty>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>"
},
"join": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"for_whom": "<WRITE: a few words naming who this is for, addressed to them; or empty>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>"
}
},
"needs": {
"custody": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"encouragement": "<WRITE: one reassuring sentence: what happens with what they send, or how little it takes; or empty>",
"form_description": "<WRITE: one short line of guidance above the form, or empty>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"hints": {
"about": "<WRITE: an example answer for the field `about`, as a placeholder; or empty>",
"email": "<WRITE: an example answer for the field `email`, as a placeholder; or empty>",
"name": "<WRITE: an example answer for the field `name`, as a placeholder; or empty>",
"what": "<WRITE: an example answer for the field `what`, as a placeholder; or empty>"
},
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>",
"labels": {
"about": "<WRITE: a form label for the field `about`>",
"email": "<WRITE: a form label for the field `email`>",
"name": "<WRITE: a form label for the field `name`>",
"what": "<WRITE: a form label for the field `what`>"
},
"road_description": "<WRITE: one or two sentences walking the reader through the stages this goes through, in order (the stages are listed above), in their words>",
"road_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"road_title": "<WRITE: a short title, two to four words, for the line that says what happens after sending>",
"who_description": "<WRITE: one sentence: who reads what they send, and how to reach them meanwhile>",
"who_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"who_title": "<WRITE: a short title, two to four words, for the line that says who reads it>"
}
},
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
```json
{
"description": "UHHM builds software for organisations that can say what problem they have, and keeps the redoal network underneath.",
"doors": {
"build": {
"button": "Start here",
"description": "Send us the problem, or try your own workflow as a working site before you pay for anything.",
"for_whom": "For an organisation with a problem, or a business sizing us up",
"heading": "Get software built around your problem",
"icon": "hammer"
},
"join": {
"button": "Start here",
"description": "Build with us, hear from us now and then, or tell us what should change on this page.",
"for_whom": "For anyone who wants in, on their own terms",
"heading": "Work with us, or just stay in touch",
"icon": "handshake"
}
},
"needs": {
"custody": {
"button": "Send to a custodian",
"description": "For anyone who runs on, builds on, or is affected by the redoal network and needs to reach the people who keep its first node.",
"encouragement": "A custodian reads every message that comes in here.",
"form_description": "Tell us what the network is doing, or not doing, and how we can reach you.",
"form_title": "Reach a custodian",
"heading": "Get an answer from the people who keep the network",
"hints": {
"about": "We run our order system on a relay node and it's been dropping messages since Tuesday",
"email": "you@yourcompany.com",
"name": "Your name",
"what": "A relay node is misbehaving"
},
"icon": "shield",
"labels": {
"about": "What's going on",
"email": "Email",
"name": "Name",
"what": "In short"
},
"road_description": "We open it and start a dialogue with you. Once we understand what the network is keeping that it shouldn't, we work it through to resolved, or tell you plainly if we can't.",
"road_icon": "route",
"road_title": "What happens next",
"who_title": "Who reads this",
"who_icon": "user-check",
"who_description": "A custodian reads it directly; if it's urgent, write to bl@uhhm.no in the meantime."
}
},
"question": "What brings you here?"
}
```
@@ -0,0 +1,208 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/join/index.yaml
It is a page one kind of visitor reaches from the front door. `question` is what this page asks them; under `needs`, each entry is one alternative they can pick, with the form behind it.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"description": "<WRITE: one or two short sentences>",
"needs": {
"collaborate": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"encouragement": "<WRITE: one reassuring sentence: what happens with what they send, or how little it takes; or empty>",
"form_description": "<WRITE: one short line of guidance above the form, or empty>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"hints": {
"email": "<WRITE: an example answer for the field `email`, as a placeholder; or empty>",
"interest": "<WRITE: an example answer for the field `interest`, as a placeholder; or empty>",
"name": "<WRITE: an example answer for the field `name`, as a placeholder; or empty>",
"note": "<WRITE: an example answer for the field `note`, as a placeholder; or empty>"
},
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>",
"labels": {
"email": "<WRITE: a form label for the field `email`>",
"interest": "<WRITE: a form label for the field `interest`>",
"name": "<WRITE: a form label for the field `name`>",
"note": "<WRITE: a form label for the field `note`>"
},
"road_description": "<WRITE: one or two sentences walking the reader through the stages this goes through, in order (the stages are listed above), in their words>",
"road_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"road_title": "<WRITE: a short title, two to four words, for the line that says what happens after sending>",
"who_description": "<WRITE: one sentence: who reads what they send, and how to reach them meanwhile>",
"who_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"who_title": "<WRITE: a short title, two to four words, for the line that says who reads it>"
},
"propose": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"encouragement": "<WRITE: one reassuring sentence: what happens with what they send, or how little it takes; or empty>",
"form_description": "<WRITE: one short line of guidance above the form, or empty>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"hints": {
"email": "<WRITE: an example answer for the field `email`, as a placeholder; or empty>",
"page": "<WRITE: an example answer for the field `page`, as a placeholder; or empty>",
"proposed_yaml": "<WRITE: an example answer for the field `proposed_yaml`, as a placeholder; or empty>",
"rationale": "<WRITE: an example answer for the field `rationale`, as a placeholder; or empty>",
"submitted_by": "<WRITE: an example answer for the field `submitted_by`, as a placeholder; or empty>"
},
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>",
"labels": {
"email": "<WRITE: a form label for the field `email`>",
"page": "<WRITE: a form label for the field `page`>",
"proposed_yaml": "<WRITE: a form label for the field `proposed_yaml`>",
"rationale": "<WRITE: a form label for the field `rationale`>",
"submitted_by": "<WRITE: a form label for the field `submitted_by`>"
},
"road_description": "<WRITE: one or two sentences walking the reader through the stages this goes through, in order (the stages are listed above), in their words>",
"road_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"road_title": "<WRITE: a short title, two to four words, for the line that says what happens after sending>",
"who_description": "<WRITE: one sentence: who reads what they send, and how to reach them meanwhile>",
"who_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"who_title": "<WRITE: a short title, two to four words, for the line that says who reads it>"
},
"subscribe": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"encouragement": "<WRITE: one reassuring sentence: what happens with what they send, or how little it takes; or empty>",
"form_description": "<WRITE: one short line of guidance above the form, or empty>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"hints": {
"email": "<WRITE: an example answer for the field `email`, as a placeholder; or empty>",
"name": "<WRITE: an example answer for the field `name`, as a placeholder; or empty>"
},
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>",
"labels": {
"email": "<WRITE: a form label for the field `email`>",
"name": "<WRITE: a form label for the field `name`>"
},
"road_description": "<WRITE: one or two sentences walking the reader through the stages this goes through, in order (the stages are listed above), in their words>",
"road_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"road_title": "<WRITE: a short title, two to four words, for the line that says what happens after sending>",
"who_description": "<WRITE: one sentence: who reads what they send, and how to reach them meanwhile>",
"who_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"who_title": "<WRITE: a short title, two to four words, for the line that says who reads it>"
}
},
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
```json
{
"description": "Three ways to be part of what UHHM builds: work with us, hear from us, or fix something on this site.",
"needs": {
"collaborate": {
"button": "Get in touch",
"description": "You want to build software with people who read the whole brief, not just the summary.",
"encouragement": "A person reads this, not a form filter — worth the ten minutes.",
"form_description": "Tell us who you are and what kind of work you're after.",
"form_title": "Say hello",
"heading": "Work with people who read the whole thing",
"hints": {
"email": "you@example.com",
"interest": "Backend work, or something design-heavy",
"name": "Your name",
"note": "A bit about what you'd want to work on, or a link to your work"
},
"icon": "handshake",
"labels": {
"email": "Email",
"interest": "What kind of work",
"name": "Name",
"note": "Tell us more"
},
"road_description": "We read what you send and get back to you. If there's a fit, we invite you in and you start working with us — and if things ever change, that's fine too.",
"road_icon": "route",
"road_title": "What happens next",
"who_description": "One of the owners reads this directly — for anything urgent, write to bl@uhhm.no.",
"who_icon": "user-check",
"who_title": "Who reads this"
},
"propose": {
"button": "Send change",
"description": "You've spotted something on this site that should read differently, and you know roughly how.",
"encouragement": "Even a rough version helps — we can tidy the wording ourselves.",
"form_description": "Point us to the page and show us the change.",
"form_title": "Propose a change",
"heading": "Get a page fixed the way you'd write it",
"hints": {
"email": "you@example.com",
"page": "questions/join/index.yaml",
"proposed_yaml": "heading: \"A clearer way to say this\"",
"rationale": "The current heading doesn't say what you actually get",
"submitted_by": "Your name"
},
"icon": "pencil",
"labels": {
"email": "Email",
"page": "Which page",
"proposed_yaml": "Your proposed text",
"rationale": "Why this is better",
"submitted_by": "Your name"
},
"road_description": "Someone here reads your proposal and either makes the change or explains why not. Either way, you'll hear back.",
"road_icon": "route",
"road_title": "What happens next",
"who_description": "An owner reads every proposal before anything changes — reach us at bl@uhhm.no if it's time-sensitive.",
"who_icon": "user-check",
"who_title": "Who reads this"
},
"subscribe": {
"button": "Sign up",
"description": "You'd rather hear from us now and then than check back on your own.",
"encouragement": "One click unsubscribes you later, no questions asked.",
"form_description": "Just your email, or your name too if you'd like.",
"form_title": "Stay in the loop",
"heading": "Hear from us only when there's something to say",
"hints": {
"email": "you@example.com",
"name": "Your name"
},
"icon": "mail",
"labels": {
"email": "Email",
"name": "Name"
},
"road_description": "You're on the list. We write when there's something worth saying, and you can leave the list whenever you like.",
"road_icon": "bell",
"road_title": "What happens next",
"who_description": "An owner sends these notes directly — write to bl@uhhm.no if you'd rather ask something first.",
"who_icon": "user-check",
"who_title": "Who reads this"
}
},
"question": "How do you want to be part of this?"
}
```
@@ -0,0 +1,236 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/owners/index.yaml
It is a desk: the page one role inside the business works from. Under `buckets`, each entry is a list of cases; `moves` are the buttons that move a case from one stage to the next (key `from->to`), so label each with what the person has just done. Under `links` are pages this role can open. Under `invites`, each entry is a form that invites a person into that group - they get an account and a one-time link - and `invited` is the list of invites sent.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"buckets": {
"applicants": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {
"active->declined": "<WRITE: a button, two to four words, for a case going active->declined>",
"active->departed": "<WRITE: a button, two to four words, for a case going active->departed>",
"invited->active": "<WRITE: a button, two to four words, for a case going invited->active>",
"invited->declined": "<WRITE: a button, two to four words, for a case going invited->declined>",
"open->declined": "<WRITE: a button, two to four words, for a case going open->declined>",
"open->invited": "<WRITE: a button, two to four words, for a case going open->invited>"
}
},
"custody_requests": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {}
},
"development_proposals": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {
"open->approved": "<WRITE: a button, two to four words, for a case going open->approved>",
"open->rejected": "<WRITE: a button, two to four words, for a case going open->rejected>"
}
},
"organizations": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {
"client->past_client": "<WRITE: a button, two to four words, for a case going client->past_client>",
"prospect->client": "<WRITE: a button, two to four words, for a case going prospect->client>",
"prospect->past_client": "<WRITE: a button, two to four words, for a case going prospect->past_client>"
}
},
"projects": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {
"open->accepted": "<WRITE: a button, two to four words, for a case going open->accepted>",
"open->declined": "<WRITE: a button, two to four words, for a case going open->declined>"
}
},
"subscribers": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {
"open->unsubscribed": "<WRITE: a button, two to four words, for a case going open->unsubscribed>"
}
},
"trials": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {
"approved->declined": "<WRITE: a button, two to four words, for a case going approved->declined>",
"approved->previewed": "<WRITE: a button, two to four words, for a case going approved->previewed>",
"open->approved": "<WRITE: a button, two to four words, for a case going open->approved>",
"open->declined": "<WRITE: a button, two to four words, for a case going open->declined>"
}
}
},
"confirm": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"invited": {
"description": "<WRITE: one or two short sentences>",
"done": "<WRITE: a form label for the field `done`>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>"
},
"invites": {
"custodians": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"labels": {
"email": "<WRITE: a form label for the field `email`>",
"name": "<WRITE: a form label for the field `name`>"
}
},
"owners": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"labels": {
"email": "<WRITE: a form label for the field `email`>",
"name": "<WRITE: a form label for the field `name`>"
}
}
},
"links": {
"prospect": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>"
}
},
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
{
"buckets": {
"applicants": {
"description": "People who've asked to build with us, waiting on a decision or already working alongside us.",
"heading": "People who want to build with us",
"moves": {
"active->declined": "End collaboration",
"active->departed": "Mark departed",
"invited->active": "Confirm active",
"invited->declined": "Withdraw invite",
"open->declined": "Decline applicant",
"open->invited": "Send invite"
}
},
"custody_requests": {
"description": "Questions and issues raised with the people who keep the first node - custodians handle these, but you can see where each one stands.",
"heading": "What's been raised with custodians",
"moves": {}
},
"development_proposals": {
"description": "Changes visitors have proposed for pages on this site, waiting on a yes or no.",
"heading": "Proposed changes to the site",
"moves": {
"open->approved": "Approve change",
"open->rejected": "Reject change"
}
},
"organizations": {
"description": "Organizations you've met, tracked from first contact through to client and beyond.",
"heading": "Organizations you're tracking",
"moves": {
"client->past_client": "Mark past client",
"prospect->client": "Mark as client",
"prospect->past_client": "Mark not pursued"
}
},
"projects": {
"description": "Briefs sent in by organizations with a problem they want solved.",
"heading": "Briefs waiting on a reply",
"moves": {
"open->accepted": "Accept brief",
"open->declined": "Decline brief"
}
},
"subscribers": {
"description": "People who want to hear from you now and then.",
"heading": "Who's hearing from you",
"moves": {
"open->unsubscribed": "Unsubscribe them"
}
},
"trials": {
"description": "Businesses who want to see their own workflow as a working site before committing to anything.",
"heading": "Trial sites in progress",
"moves": {
"approved->declined": "Decline trial",
"approved->previewed": "Mark previewed",
"open->approved": "Approve trial",
"open->declined": "Decline trial"
}
}
},
"confirm": "Confirm",
"description": "Everything waiting on you: briefs, trials, applicants, subscribers, and proposals, all in one place.",
"invited": {
"description": "People you've invited in, and whether they've taken it up yet.",
"done": "Taken up",
"heading": "Invites you've sent"
},
"invites": {
"custodians": {
"button": "Send invite",
"description": "Bring someone in to help keep the first node and answer for the network.",
"form_title": "Invite a custodian",
"heading": "Bring in a custodian",
"labels": {
"email": "Their email",
"name": "Their name"
}
},
"owners": {
"button": "Send invite",
"description": "Bring someone in to work this desk alongside you.",
"form_title": "Invite an owner",
"heading": "Bring in another owner",
"labels": {
"email": "Their email",
"name": "Their name"
}
}
},
"links": {
"prospect": {
"button": "Add prospect",
"description": "Write down an organization worth following up, and track it from first contact onward.",
"heading": "Track a new organization"
}
},
"question": "What's waiting on me today?"
}
@@ -0,0 +1,52 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/owners/prospect-sent.yaml
It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"back": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"next_description": "<WRITE: one or two short sentences>",
"next_heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
```json
{
"back": "Back to site",
"description": "Thanks — we've got your prospect written down, and it now moves through the desk with everything else we're tracking.",
"next_description": "An owner walks it from prospect to client, and on to past client, as the relationship moves.",
"next_heading": "It's on the desk now",
"question": "What happens to this now?"
}
```
@@ -0,0 +1,92 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/owners/prospect.yaml
It is a page only one role inside the business can open, holding one form.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"encouragement": "<WRITE: one reassuring sentence: what happens with what they send, or how little it takes; or empty>",
"form_description": "<WRITE: one short line of guidance above the form, or empty>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"hints": {
"contact": "<WRITE: an example answer for the field `contact`, as a placeholder; or empty>",
"name": "<WRITE: an example answer for the field `name`, as a placeholder; or empty>",
"note": "<WRITE: an example answer for the field `note`, as a placeholder; or empty>"
},
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>",
"labels": {
"contact": "<WRITE: a form label for the field `contact`>",
"name": "<WRITE: a form label for the field `name`>",
"note": "<WRITE: a form label for the field `note`>"
},
"page_description": "<WRITE: one or two short sentences>",
"question": "<WRITE: the one question this page asks its reader>",
"road_description": "<WRITE: one or two sentences walking the reader through the stages this goes through, in order (the stages are listed above), in their words>",
"road_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"road_title": "<WRITE: a short title, two to four words, for the line that says what happens after sending>",
"who_description": "<WRITE: one sentence: who reads what they send, and how to reach them meanwhile>",
"who_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"who_title": "<WRITE: a short title, two to four words, for the line that says who reads it>"
}
Reply with the JSON object only.
=== REPLY ===
```json
{
"button": "Add to prospects",
"description": "One line per organization worth watching, moved through the stages as things develop.",
"encouragement": "Takes a minute, and it's yours to update later.",
"form_description": "Name the organization and where things stand.",
"form_title": "New prospect",
"heading": "Keep an organization on your radar",
"hints": {
"contact": "met at the bakers' conference, [email protected]",
"name": "Nordvik Bakery",
"note": "wants a booking flow, follow up after harvest season"
},
"icon": "briefcase",
"labels": {
"contact": "Contact",
"name": "Organization",
"note": "Note"
},
"page_description": "Write down an organization worth following up, and move it through client and past client as things develop.",
"question": "Is there an organization I should be keeping track of?",
"road_description": "It sits as a prospect until something moves - then you mark it client, and later past client if the work ends.",
"road_icon": "route",
"road_title": "Moves as you update it",
"who_description": "Only you see this, so keep it wherever you check next.",
"who_icon": "user",
"who_title": "Just for you"
}
```
@@ -0,0 +1,52 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/received/collaborate.yaml
It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"back": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"next_description": "<WRITE: one or two short sentences>",
"next_heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
```json
{
"back": "Back to site",
"description": "Your note is in. An owner reads every one and will get back to you if there's a fit worth exploring.",
"next_description": "If it looks like a fit, we'll reach out to talk about where you could help.",
"next_heading": "We'll write if there's a fit",
"question": "What happens to what I just sent?"
}
```
@@ -0,0 +1,52 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/received/commission.yaml
It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"back": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"next_description": "<WRITE: one or two short sentences>",
"next_heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
```json
{
"back": "Back to home",
"description": "Your brief is in. An owner reads every commission end to end before replying.",
"next_description": "Expect a reply within a few working days, either way, straight to your inbox.",
"next_heading": "A real reply from someone who read it",
"question": "What happens now that we've sent our brief?"
}
```
@@ -0,0 +1,52 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/received/custody.yaml
It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"back": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"next_description": "<WRITE: one or two short sentences>",
"next_heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
```json
{
"back": "Back to the site",
"description": "A custodian reads every message about the redoal network and what it keeps.",
"next_description": "Expect a reply once your report has been looked at and the network checked.",
"next_heading": "A custodian is on it",
"question": "Who looks after what the network keeps?"
}
```
@@ -0,0 +1,52 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/received/propose.yaml
It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"back": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"next_description": "<WRITE: one or two short sentences>",
"next_heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
```json
{
"back": "Back home",
"description": "Your proposal is in. Someone here will read it and decide whether it fits before anything changes on the page.",
"next_description": "We'll write back once it's been read — approved and made live, or turned down with a reason.",
"next_heading": "A read, then a decision",
"question": "What happens to my proposal now?"
}
```
@@ -0,0 +1,52 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/received/subscribe.yaml
It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"back": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"next_description": "<WRITE: one or two short sentences>",
"next_heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
```json
{
"back": "Back to site",
"description": "You'll hear from us when there's something worth saying, not on a schedule.",
"next_description": "You're on the list. Every note has an unsubscribe link if it stops being useful.",
"next_heading": "You're on the list",
"question": "What happens now that I've subscribed?"
}
```
@@ -0,0 +1,52 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/received/trial.yaml
It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"back": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"next_description": "<WRITE: one or two short sentences>",
"next_heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
```json
{
"back": "Back to site",
"description": "We read every trial request ourselves before anything gets built.",
"next_description": "If it looks like a fit, we'll draft your site from your own words and send it back for your say before anything goes live.",
"next_heading": "A first draft, built from your own words",
"question": "What happens now that you've sent this?"
}
```
+173
View File
@@ -0,0 +1,173 @@
needs:
- done_when:
- accepted
- declined
enters: /
handled_by: owners
id: commission
lands_in: projects
max_fields: 4
max_steps: 2
stages:
- open
- accepted
- declined
success:
- accepted
via: Get software built, or try a site for your business first
wants: a considered reply to a brief, from people who read the whole thing
who: an organization with a problem it wants software to solve
- done_when:
- previewed
- declined
enters: /
handled_by: owners
id: trial
lands_in: trials
max_fields: 6
max_steps: 2
stages:
- open
- approved
- previewed
- declined
success:
- previewed
via: Get software built, or try a site for your business first
wants: a first draft of a site for their own roles, built from their own words and approved by a person first
who: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything
- done_when:
- departed
- declined
enters: /
handled_by: owners
id: collaborate
lands_in: applicants
max_fields: 3
max_steps: 2
stages:
- open
- invited
- active
- departed
- declined
success:
- departed
via: Work with us, hear from us, or change this website
wants: to be read as a person, and invited in if there is a fit
who: someone who wants to work with us on what we build
- done_when:
- unsubscribed
enters: /
handled_by: owners
id: subscribe
lands_in: subscribers
max_fields: 2
max_steps: 2
stages:
- open
- unsubscribed
success: []
via: Work with us, hear from us, or change this website
wants: a note now and then, and an easy way out
who: someone who wants to hear from us when there is something to say
- done_when:
- approved
- rejected
enters: /
handled_by: owners
id: propose
lands_in: development_proposals
max_fields: 3
max_steps: 2
stages:
- open
- approved
- rejected
success:
- approved
via: Work with us, hear from us, or change this website
wants: the change read by a person and, if approved, made
who: a visitor who sees how a page on this site should change
- done_when:
- resolved
- declined
enters: /
handled_by: custodians
id: custody
lands_in: custody_requests
max_fields: 4
max_steps: 1
stages:
- open
- in_dialogue
- resolved
- declined
success:
- resolved
via: 'About the redoal network: run a node, build on it, or have something removed'
wants: an answer from a custodian, and action where the network keeps something it should not
who: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node
- done_when:
- past_client
enters: /owners/prospect
enters_as: owners
handled_by: owners
id: prospect
lands_in: organizations
max_fields: 2
max_steps: 1
stages:
- prospect
- client
- past_client
success: []
via: Keep an organization on your radar
wants: it written down and walked through its states from the desk
who: an owner who has met an organization worth following up
personas:
- id: architecture-firm
need: commission
text: We run a small architecture firm and our project files are scattered across three cloud drives. We want to pay someone to set up proper storage and backups we control ourselves.
- id: climbing-gym-founder
need: commission
text: I have an idea for a booking app for climbing gyms and I'm looking for a team that can build the first version with me.
- id: municipality-buyer
need: commission
text: Our municipality needs an internal tool for tracking building permits. We are looking for a vendor who can scope it and deliver it.
- id: exhibition-visitor
need: subscribe
text: I saw your drawing network at an exhibition and liked it. I don't want to get involved, I'd just like to know when there is news.
- id: tech-journalist
need: subscribe
text: I write about Nordic technology. Keep me posted on what you release so I can cover it.
- id: rust-developer
need: collaborate
text: I'm a Rust developer between jobs and I like that you build in the open. I would love to contribute, and maybe join you.
- id: interaction-designer
need: collaborate
text: I'm an interaction designer. I want to work with you on the drawing interface.
- id: student-intern
need: collaborate
text: I'm a computer science student looking for a summer internship doing infrastructure work.
- id: plumber-owner
need: trial
text: I run a plumbing company with four vans. Jobs come in by phone and text and some get lost. I'd like to see how this would look for us before I spend any money.
- id: dance-school
need: trial
text: We are a dance school. Enrolments, cancellations and invoices all go through one email inbox that only I understand. Can you show me a version made for us?
- id: node-runner
need: custody
text: I run a small server in Berlin and want to host a redoal node that peers with yours. Who do I talk to?
- id: recorded-name
need: custody
text: Someone left a recording on redoal that says my full name and where I live. I want it gone, and I want to know who is responsible for that network.
- id: app-builder
need: custody
text: I'm building a music app and would like to use redoal's gesture addresses in it. Is that possible, and who decides?
- id: wording-fix
need: propose
text: The subscribe page should say how often you actually write. I'd like to suggest that exact change to the page.
- id: rewrite
need: propose
text: One page on this site reads wrong to me and I know exactly how I'd rewrite it. Where do I send the new text?
@@ -0,0 +1,94 @@
alternatives:
- action: /received/commission
consequence:
- Send the brief
description: You know the problem and want it solved, whether it is infrastructure, a tool, or the first version of a product. Write it up for people who read the whole thing.
encouragements:
- Someone here reads every brief in full before writing back.
features:
- description: We read your brief and either take it on or tell you honestly if it's not a fit.
icon: lucide:route
name: What happens next
- description: One of the owners reads it; write to bl@uhhm.no if you'd rather reach us directly.
icon: lucide:user-check
name: Who reads this
- description: The more of the problem you put in, the better the reply.
icon: lucide:briefcase
name: Tell us the problem
requirements:
- label: Your name
name: name
placeholder: Sara Nilsen
type: text
- label: Your email
name: email
placeholder: sara@company.com
type: email
- label: The problem you want solved
name: project
placeholder: Our drivers log hours on paper and it takes a day to get them into payroll.
type: textarea
- label: Your organization
name: organization
placeholder: Nilsen Transport AS
type: text
- label: Who we should talk to
name: org_contact
optional: true
placeholder: Sara Nilsen, ops manager
type: text
name: 'Have us build it: send the brief'
record_as: projects
- action: /received/trial
consequence:
- Start the draft
description: Describe how requests, approvals and handovers move through your business today. We approve it by hand and build a working draft of a site for your own roles, for you to click through.
encouragements:
- A person looks at what you send before anything gets built.
features:
- description: We look at what you sent and, if it's a fit, build a draft from your own roles and words for you to see before anything moves further.
icon: lucide:route
name: What happens next
- description: An owner looks at what you send; write to bl@uhhm.no if you'd rather reach us directly.
icon: lucide:user-check
name: Who reads this
- description: Answer in your own words - there's no wrong way to describe your business.
icon: lucide:layers
name: Describe your business
requirements:
- label: Your business
name: business
placeholder: Nilsen Transport AS
type: text
- label: Your email
name: email
placeholder: sara@company.com
type: email
- label: What you do
name: what_we_do
placeholder: We move freight for local businesses and handle the paperwork for them.
type: textarea
- label: Who comes to you
name: who_comes_to_us
placeholder: Local businesses that need something moved on short notice.
type: textarea
- label: What you keep track of
name: what_we_keep_track_of
placeholder: Bookings, driver hours, and which loads are still waiting on a signature.
type: textarea
- label: Who's involved
name: who_is_involved
placeholder: Drivers, dispatchers, and the customers waiting on their delivery.
type: textarea
- label: What slows you down
name: what_slows_us_down
optional: true
placeholder: Approvals sit in someone's inbox for days before anyone acts on them.
type: textarea
name: See your own business as a site, before you buy anything
record_as: trials
description: Have a problem software should solve, or want to see your own way of working as a site before you pay anyone?
name: Do you have a brief, or do you want to see your business as a site first?
responsible:
contact: bl@uhhm.no
name: Bendik Aagaard Lynghaug
@@ -0,0 +1 @@
qualifies: custodians
@@ -0,0 +1,65 @@
alternatives:
- action: /custodians
consequence:
- Confirm
description: Cases from people who use, build on, or answer for something the redoal network touches, and need a custodian's word on it.
features:
- description: ''
name: ''
resource:
requires_group: custodians
source:
bucket: custody_requests
kind: kv
transitions:
- from: in_dialogue
label: Mark resolved
to: resolved
- from: in_dialogue
label: Close, no action
to: declined
- from: open
label: Open dialogue
to: in_dialogue
- from: open
label: Decline case
to: declined
name: Custody cases waiting on you
- action: /custodians
consequence:
- Invite custodian
description: Give someone an account and a one-time link to join as a custodian.
features:
- description: ''
name: Invite a custodian
requirements:
- label: Name
name: name
- label: Email
name: email
type: email
invite:
group: custodians
name: Bring in another custodian
- action: /custodians
consequence:
- Confirm
description: Custodians invited but not yet signed in.
features:
- description: ''
name: ''
resource:
requires_group: custodians
source:
bucket: portal_invites
kind: kv
transitions:
- from: open
label: Signed in
to: done
name: Invited custodians
description: 'The desk for custodians: open custody cases, and the people invited to answer them.'
name: What is waiting on the custodians?
responsible:
contact: bl@uhhm.no
name: Bendik Aagaard Lynghaug
@@ -0,0 +1,9 @@
alternatives:
- description: You'll stop hearing from us. Nothing else changes.
name: Stop getting notes from us
self_transition:
bucket: subscribers
label: Unsubscribe
to: unsubscribed
description: You're on our list. Change your mind whenever you like.
name: Do you want to keep hearing from us?
@@ -0,0 +1,63 @@
alternatives:
- action: /build
consequence:
- Start here
description: Send us a brief, or describe how work flows through your business and see it as a working site before you pay for anything.
features:
- description: ''
icon: lucide:hammer
name: For an organisation with a problem, or a business sizing us up
name: Get software built, or try a site for your business first
- action: /join
consequence:
- Start here
description: Join us as a collaborator, get a note now and then, or suggest a change to a page on uhhm.no.
features:
- description: ''
icon: lucide:handshake
name: For anyone who wants in, on their own terms
name: Work with us, hear from us, or change this website
- action: /received/custody
consequence:
- Send to a custodian
description: UHHM hosts the redoal network's first node and answers for what it keeps. Write here if you run a node, build on the network, or want something it holds about you looked at.
encouragements:
- A custodian reads every message that comes in here.
features:
- description: A custodian opens a dialogue with you. A node gets its peer, a builder gets an answer, and something the network should not keep gets removed. Either way you hear what was decided.
icon: lucide:route
name: What happens next
- description: A custodian reads it directly; if it's urgent, write to bl@uhhm.no in the meantime.
icon: lucide:user-check
name: Who reads this
- description: Say which of the four it is, and what you need, in a few lines.
icon: lucide:shield
name: Reach a custodian
requirements:
- label: Name
name: name
placeholder: Your name
type: text
- label: Email
name: email
placeholder: you@yourcompany.com
type: email
- label: What's going on
name: about
options:
- Running a node of my own
- Building on the network
- Something the network keeps about me
- Something else
type: select
- label: In short
name: what
placeholder: A relay node is misbehaving
type: textarea
name: 'About the redoal network: run a node, build on it, or have something removed'
record_as: custody_requests
description: UHHM builds software for organisations that can say what problem they have, and keeps the redoal network underneath.
name: What brings you here?
responsible:
contact: bl@uhhm.no
name: Bendik Aagaard Lynghaug
@@ -0,0 +1,110 @@
alternatives:
- action: /received/collaborate
consequence:
- Get in touch
description: 'A developer, a designer, a student: say what you would want to build with us, and we read it as a person and invite you in if there is a fit.'
encouragements:
- A person reads this, not a form filter — worth the ten minutes.
features:
- description: We read what you send and get back to you. If there's a fit, we invite you in and you start working with us — and if things ever change, that's fine too.
icon: lucide:route
name: What happens next
- description: One of the owners reads this directly — for anything urgent, write to bl@uhhm.no.
icon: lucide:user-check
name: Who reads this
- description: Tell us who you are and what kind of work you're after.
icon: lucide:handshake
name: Say hello
requirements:
- label: Name
name: name
placeholder: Your name
type: text
- label: Email
name: email
placeholder: you@example.com
type: email
- label: What kind of work
name: interest
placeholder: Backend work, or something design-heavy
type: textarea
- label: Tell us more
name: note
optional: true
placeholder: A bit about what you'd want to work on, or a link to your work
type: textarea
name: Work with us
record_as: applicants
- action: /received/subscribe
consequence:
- Sign up
description: You'd rather hear from us now and then than check back on your own.
encouragements:
- One click unsubscribes you later, no questions asked.
features:
- description: You're on the list. We write when there's something worth saying, and you can leave the list whenever you like.
icon: lucide:bell
name: What happens next
- description: An owner sends these notes directly — write to bl@uhhm.no if you'd rather ask something first.
icon: lucide:user-check
name: Who reads this
- description: Just your email, or your name too if you'd like.
icon: lucide:mail
name: Stay in the loop
requirements:
- label: Name
name: name
placeholder: Your name
type: text
- label: Email
name: email
placeholder: you@example.com
type: email
name: Hear from us now and then
record_as: subscribers
- action: /received/propose
consequence:
- Send change
description: You have spotted a page on uhhm.no that should read differently, and you know roughly how.
encouragements:
- Even a rough version helps — we can tidy the wording ourselves.
features:
- description: Someone here reads your proposal and either makes the change or explains why not. Either way, you'll hear back.
icon: lucide:route
name: What happens next
- description: An owner reads every proposal before anything changes — reach us at bl@uhhm.no if it's time-sensitive.
icon: lucide:user-check
name: Who reads this
- description: Point us to the page and show us the change.
icon: lucide:pencil
name: Propose a change
requirements:
- label: Your name
name: submitted_by
placeholder: Your name
type: text
- label: Email
name: email
optional: true
placeholder: you@example.com
type: email
- label: Which page
name: page
optional: true
placeholder: questions/join/index.yaml
type: text
- label: Why this is better
name: rationale
placeholder: The current heading doesn't say what you actually get
type: textarea
- label: Your proposed text
name: proposed_yaml
placeholder: 'heading: "A clearer way to say this"'
type: textarea
name: Suggest a change to this website
record_as: development_proposals
description: 'Three ways to be part of what UHHM builds: work with us, hear from us, or fix something on this site.'
name: How do you want to be part of this?
responsible:
contact: bl@uhhm.no
name: Bendik Aagaard Lynghaug
@@ -0,0 +1 @@
qualifies: owners
@@ -0,0 +1,212 @@
alternatives:
- action: /owners
consequence:
- Confirm
description: People who've asked to build with us, waiting on a decision or already working alongside us.
features:
- description: ''
name: ''
resource:
requires_group: owners
source:
bucket: applicants
kind: kv
transitions:
- from: active
label: Mark departed
to: departed
- from: active
label: End collaboration
to: declined
- from: invited
label: Confirm active
to: active
- from: invited
label: Withdraw invite
to: declined
- from: open
label: Send invite
to: invited
- from: open
label: Decline applicant
to: declined
name: People who want to build with us
- action: /owners
consequence:
- Confirm
description: Questions and issues raised with the people who keep the first node - custodians handle these, but you can see where each one stands.
features:
- description: ''
name: ''
resource:
requires_group: owners
source:
bucket: custody_requests
kind: kv
transitions: []
name: What's been raised with custodians
- action: /owners
consequence:
- Confirm
description: Changes visitors have proposed for pages on this site, waiting on a yes or no.
features:
- description: ''
name: ''
resource:
requires_group: owners
source:
bucket: development_proposals
kind: kv
transitions:
- from: open
label: Approve change
to: approved
- from: open
label: Reject change
to: rejected
name: Proposed changes to the site
- action: /owners
consequence:
- Confirm
description: Organizations you've met, tracked from first contact through to client and beyond.
features:
- description: ''
name: ''
resource:
requires_group: owners
source:
bucket: organizations
kind: kv
transitions:
- from: client
label: Mark past client
to: past_client
- from: prospect
label: Mark as client
to: client
- from: prospect
label: Mark not pursued
to: past_client
name: Organizations you're tracking
- action: /owners
consequence:
- Confirm
description: Briefs sent in by organizations with a problem they want solved.
features:
- description: ''
name: ''
resource:
requires_group: owners
source:
bucket: projects
kind: kv
transitions:
- from: open
label: Accept brief
to: accepted
- from: open
label: Decline brief
to: declined
name: Briefs waiting on a reply
- action: /owners
consequence:
- Confirm
description: People who want to hear from you now and then.
features:
- description: ''
name: ''
resource:
requires_group: owners
source:
bucket: subscribers
kind: kv
transitions:
- from: open
label: Unsubscribe them
to: unsubscribed
name: Who's hearing from you
- action: /owners
consequence:
- Confirm
description: Businesses who want to see their own workflow as a working site before committing to anything.
features:
- description: ''
name: ''
resource:
requires_group: owners
source:
bucket: trials
kind: kv
transitions:
- from: approved
label: Mark previewed
to: previewed
- from: approved
label: Decline trial
to: declined
- from: open
label: Approve trial
to: approved
- from: open
label: Decline trial
to: declined
name: Trial sites in progress
- action: /owners/prospect
consequence:
- Add prospect
description: Write down an organization worth following up, and track it from first contact onward.
name: Track a new organization
- action: /owners
consequence:
- Send invite
description: Bring someone in to help keep the first node and answer for the network.
features:
- description: ''
name: Invite a custodian
requirements:
- label: Their name
name: name
- label: Their email
name: email
type: email
invite:
group: custodians
name: Bring in a custodian
- action: /owners
consequence:
- Send invite
description: Bring someone in to work this desk alongside you.
features:
- description: ''
name: Invite an owner
requirements:
- label: Their name
name: name
- label: Their email
name: email
type: email
invite:
group: owners
name: Bring in another owner
- action: /owners
consequence:
- Confirm
description: People you've invited in, and whether they've taken it up yet.
features:
- description: ''
name: ''
resource:
requires_group: owners
source:
bucket: portal_invites
kind: kv
transitions:
- from: open
label: Taken up
to: done
name: Invites you've sent
description: 'Everything waiting on you: briefs, trials, applicants, subscribers, and proposals, all in one place.'
name: What's waiting on me today?
responsible:
contact: bl@uhhm.no
name: Bendik Aagaard Lynghaug
@@ -0,0 +1,10 @@
alternatives:
- description: An owner walks it from prospect to client, and on to past client, as the relationship moves.
name: It's on the desk now
- action: /owners
consequence:
- Back to site
description: ''
name: Back to site
description: Thanks — we've got your prospect written down, and it now moves through the desk with everything else we're tracking.
name: What happens to this now?
@@ -0,0 +1,39 @@
alternatives:
- action: /owners/prospect-sent
consequence:
- Add to prospects
description: One line per organization worth watching, moved through the stages as things develop.
encouragements:
- Takes a minute, and it's yours to update later.
features:
- description: It sits as a prospect until something moves - then you mark it client, and later past client if the work ends.
icon: lucide:route
name: Moves as you update it
- description: Only you see this, so keep it wherever you check next.
icon: lucide:user
name: Just for you
- description: Name the organization and where things stand.
icon: lucide:briefcase
name: New prospect
requirements:
- label: Organization
name: name
placeholder: Nordvik Bakery
type: text
- label: Contact
name: contact
placeholder: met at the bakers' conference, [email protected]
type: text
- label: Note
name: note
optional: true
placeholder: wants a booking flow, follow up after harvest season
type: textarea
name: Keep an organization on your radar
record_as: organizations
description: Write down an organization worth following up, and move it through client and past client as things develop.
followup: false
name: Is there an organization I should be keeping track of?
responsible:
contact: bl@uhhm.no
name: Bendik Aagaard Lynghaug
@@ -0,0 +1,10 @@
alternatives:
- description: If it looks like a fit, we'll reach out to talk about where you could help.
name: We'll write if there's a fit
- action: /
consequence:
- Back to site
description: ''
name: Back to site
description: Your note is in. An owner reads every one and will get back to you if there's a fit worth exploring.
name: What happens to what I just sent?
@@ -0,0 +1,10 @@
alternatives:
- description: Expect a reply within a few working days, either way, straight to your inbox.
name: A real reply from someone who read it
- action: /
consequence:
- Back to home
description: ''
name: Back to home
description: Your brief is in. An owner reads every commission end to end before replying.
name: What happens now that we've sent our brief?
@@ -0,0 +1,10 @@
alternatives:
- description: Expect a reply once your report has been looked at and the network checked.
name: A custodian is on it
- action: /
consequence:
- Back to the site
description: ''
name: Back to the site
description: A custodian reads every message about the redoal network and what it keeps.
name: Who looks after what the network keeps?
@@ -0,0 +1,10 @@
alternatives:
- description: We'll write back once it's been read — approved and made live, or turned down with a reason.
name: A read, then a decision
- action: /
consequence:
- Back home
description: ''
name: Back home
description: Your proposal is in. Someone here will read it and decide whether it fits before anything changes on the page.
name: What happens to my proposal now?
@@ -0,0 +1,10 @@
alternatives:
- description: You're on the list. Every note has an unsubscribe link if it stops being useful.
name: You're on the list
- action: /
consequence:
- Back to site
description: ''
name: Back to site
description: You'll hear from us when there's something worth saying, not on a schedule.
name: What happens now that I've subscribed?
@@ -0,0 +1,10 @@
alternatives:
- description: If it looks like a fit, we'll draft your site from your own words and send it back for your say before anything goes live.
name: A first draft, built from your own words
- action: /
consequence:
- Back to site
description: ''
name: Back to site
description: We read every trial request ourselves before anything gets built.
name: What happens now that you've sent this?
+2
View File
@@ -0,0 +1,2 @@
lang: en
title: UHHM
+426
View File
@@ -0,0 +1,426 @@
{
"questions/build/index.yaml": {
"description": "Have a problem software should solve, or want to see your own way of working as a site before you pay anyone?",
"needs": {
"commission": {
"button": "Send the brief",
"description": "You know the problem and want it solved, whether it is infrastructure, a tool, or the first version of a product. Write it up for people who read the whole thing.",
"encouragement": "Someone here reads every brief in full before writing back.",
"form_description": "The more of the problem you put in, the better the reply.",
"form_title": "Tell us the problem",
"heading": "Have us build it: send the brief",
"hints": {
"email": "sara@company.com",
"name": "Sara Nilsen",
"org_contact": "Sara Nilsen, ops manager",
"organization": "Nilsen Transport AS",
"project": "Our drivers log hours on paper and it takes a day to get them into payroll."
},
"icon": "briefcase",
"labels": {
"email": "Your email",
"name": "Your name",
"org_contact": "Who we should talk to",
"organization": "Your organization",
"project": "The problem you want solved"
},
"road_description": "We read your brief and either take it on or tell you honestly if it's not a fit.",
"road_icon": "route",
"road_title": "What happens next",
"who_description": "One of the owners reads it; write to bl@uhhm.no if you'd rather reach us directly.",
"who_icon": "user-check",
"who_title": "Who reads this"
},
"trial": {
"button": "Start the draft",
"description": "Describe how requests, approvals and handovers move through your business today. We approve it by hand and build a working draft of a site for your own roles, for you to click through.",
"encouragement": "A person looks at what you send before anything gets built.",
"form_description": "Answer in your own words - there's no wrong way to describe your business.",
"form_title": "Describe your business",
"heading": "See your own business as a site, before you buy anything",
"hints": {
"business": "Nilsen Transport AS",
"email": "sara@company.com",
"what_slows_us_down": "Approvals sit in someone's inbox for days before anyone acts on them.",
"what_we_do": "We move freight for local businesses and handle the paperwork for them.",
"what_we_keep_track_of": "Bookings, driver hours, and which loads are still waiting on a signature.",
"who_comes_to_us": "Local businesses that need something moved on short notice.",
"who_is_involved": "Drivers, dispatchers, and the customers waiting on their delivery."
},
"icon": "layers",
"labels": {
"business": "Your business",
"email": "Your email",
"what_slows_us_down": "What slows you down",
"what_we_do": "What you do",
"what_we_keep_track_of": "What you keep track of",
"who_comes_to_us": "Who comes to you",
"who_is_involved": "Who's involved"
},
"road_description": "We look at what you sent and, if it's a fit, build a draft from your own roles and words for you to see before anything moves further.",
"road_icon": "route",
"road_title": "What happens next",
"who_description": "An owner looks at what you send; write to bl@uhhm.no if you'd rather reach us directly.",
"who_icon": "user-check",
"who_title": "Who reads this"
}
},
"question": "Do you have a brief, or do you want to see your business as a site first?"
},
"questions/custodians/index.yaml": {
"buckets": {
"custody_requests": {
"description": "Cases from people who use, build on, or answer for something the redoal network touches, and need a custodian's word on it.",
"heading": "Custody cases waiting on you",
"moves": {
"in_dialogue->declined": "Close, no action",
"in_dialogue->resolved": "Mark resolved",
"open->declined": "Decline case",
"open->in_dialogue": "Open dialogue"
}
}
},
"confirm": "Confirm",
"description": "The desk for custodians: open custody cases, and the people invited to answer them.",
"invited": {
"description": "Custodians invited but not yet signed in.",
"done": "Signed in",
"heading": "Invited custodians"
},
"invites": {
"custodians": {
"button": "Invite custodian",
"description": "Give someone an account and a one-time link to join as a custodian.",
"form_title": "Invite a custodian",
"heading": "Bring in another custodian",
"labels": {
"email": "Email",
"name": "Name"
}
}
},
"links": {},
"question": "What is waiting on the custodians?"
},
"questions/decide/subscribe.yaml": {
"description": "You're on our list. Change your mind whenever you like.",
"moves": {
"unsubscribed": {
"button": "Unsubscribe",
"description": "You'll stop hearing from us. Nothing else changes.",
"heading": "Stop getting notes from us"
}
},
"question": "Do you want to keep hearing from us?"
},
"questions/index.yaml": {
"description": "UHHM builds software for organisations that can say what problem they have, and keeps the redoal network underneath.",
"doors": {
"build": {
"button": "Start here",
"description": "Send us a brief, or describe how work flows through your business and see it as a working site before you pay for anything.",
"for_whom": "For an organisation with a problem, or a business sizing us up",
"heading": "Get software built, or try a site for your business first",
"icon": "hammer"
},
"join": {
"button": "Start here",
"description": "Join us as a collaborator, get a note now and then, or suggest a change to a page on uhhm.no.",
"for_whom": "For anyone who wants in, on their own terms",
"heading": "Work with us, hear from us, or change this website",
"icon": "handshake"
}
},
"needs": {
"custody": {
"button": "Send to a custodian",
"description": "UHHM hosts the redoal network's first node and answers for what it keeps. Write here if you run a node, build on the network, or want something it holds about you looked at.",
"encouragement": "A custodian reads every message that comes in here.",
"form_description": "Say which of the four it is, and what you need, in a few lines.",
"form_title": "Reach a custodian",
"heading": "About the redoal network: run a node, build on it, or have something removed",
"hints": {
"about": "We run our order system on a relay node and it's been dropping messages since Tuesday",
"email": "you@yourcompany.com",
"name": "Your name",
"what": "A relay node is misbehaving"
},
"icon": "shield",
"labels": {
"about": "What's going on",
"email": "Email",
"name": "Name",
"what": "In short"
},
"road_description": "A custodian opens a dialogue with you. A node gets its peer, a builder gets an answer, and something the network should not keep gets removed. Either way you hear what was decided.",
"road_icon": "route",
"road_title": "What happens next",
"who_description": "A custodian reads it directly; if it's urgent, write to bl@uhhm.no in the meantime.",
"who_icon": "user-check",
"who_title": "Who reads this"
}
},
"question": "What brings you here?"
},
"questions/join/index.yaml": {
"description": "Three ways to be part of what UHHM builds: work with us, hear from us, or fix something on this site.",
"needs": {
"collaborate": {
"button": "Get in touch",
"description": "A developer, a designer, a student: say what you would want to build with us, and we read it as a person and invite you in if there is a fit.",
"encouragement": "A person reads this, not a form filter — worth the ten minutes.",
"form_description": "Tell us who you are and what kind of work you're after.",
"form_title": "Say hello",
"heading": "Work with us",
"hints": {
"email": "you@example.com",
"interest": "Backend work, or something design-heavy",
"name": "Your name",
"note": "A bit about what you'd want to work on, or a link to your work"
},
"icon": "handshake",
"labels": {
"email": "Email",
"interest": "What kind of work",
"name": "Name",
"note": "Tell us more"
},
"road_description": "We read what you send and get back to you. If there's a fit, we invite you in and you start working with us — and if things ever change, that's fine too.",
"road_icon": "route",
"road_title": "What happens next",
"who_description": "One of the owners reads this directly — for anything urgent, write to bl@uhhm.no.",
"who_icon": "user-check",
"who_title": "Who reads this"
},
"propose": {
"button": "Send change",
"description": "You have spotted a page on uhhm.no that should read differently, and you know roughly how.",
"encouragement": "Even a rough version helps — we can tidy the wording ourselves.",
"form_description": "Point us to the page and show us the change.",
"form_title": "Propose a change",
"heading": "Suggest a change to this website",
"hints": {
"email": "you@example.com",
"page": "questions/join/index.yaml",
"proposed_yaml": "heading: \"A clearer way to say this\"",
"rationale": "The current heading doesn't say what you actually get",
"submitted_by": "Your name"
},
"icon": "pencil",
"labels": {
"email": "Email",
"page": "Which page",
"proposed_yaml": "Your proposed text",
"rationale": "Why this is better",
"submitted_by": "Your name"
},
"road_description": "Someone here reads your proposal and either makes the change or explains why not. Either way, you'll hear back.",
"road_icon": "route",
"road_title": "What happens next",
"who_description": "An owner reads every proposal before anything changes — reach us at bl@uhhm.no if it's time-sensitive.",
"who_icon": "user-check",
"who_title": "Who reads this"
},
"subscribe": {
"button": "Sign up",
"description": "You'd rather hear from us now and then than check back on your own.",
"encouragement": "One click unsubscribes you later, no questions asked.",
"form_description": "Just your email, or your name too if you'd like.",
"form_title": "Stay in the loop",
"heading": "Hear from us now and then",
"hints": {
"email": "you@example.com",
"name": "Your name"
},
"icon": "mail",
"labels": {
"email": "Email",
"name": "Name"
},
"road_description": "You're on the list. We write when there's something worth saying, and you can leave the list whenever you like.",
"road_icon": "bell",
"road_title": "What happens next",
"who_description": "An owner sends these notes directly — write to bl@uhhm.no if you'd rather ask something first.",
"who_icon": "user-check",
"who_title": "Who reads this"
}
},
"question": "How do you want to be part of this?"
},
"questions/owners/index.yaml": {
"buckets": {
"applicants": {
"description": "People who've asked to build with us, waiting on a decision or already working alongside us.",
"heading": "People who want to build with us",
"moves": {
"active->declined": "End collaboration",
"active->departed": "Mark departed",
"invited->active": "Confirm active",
"invited->declined": "Withdraw invite",
"open->declined": "Decline applicant",
"open->invited": "Send invite"
}
},
"custody_requests": {
"description": "Questions and issues raised with the people who keep the first node - custodians handle these, but you can see where each one stands.",
"heading": "What's been raised with custodians",
"moves": {}
},
"development_proposals": {
"description": "Changes visitors have proposed for pages on this site, waiting on a yes or no.",
"heading": "Proposed changes to the site",
"moves": {
"open->approved": "Approve change",
"open->rejected": "Reject change"
}
},
"organizations": {
"description": "Organizations you've met, tracked from first contact through to client and beyond.",
"heading": "Organizations you're tracking",
"moves": {
"client->past_client": "Mark past client",
"prospect->client": "Mark as client",
"prospect->past_client": "Mark not pursued"
}
},
"projects": {
"description": "Briefs sent in by organizations with a problem they want solved.",
"heading": "Briefs waiting on a reply",
"moves": {
"open->accepted": "Accept brief",
"open->declined": "Decline brief"
}
},
"subscribers": {
"description": "People who want to hear from you now and then.",
"heading": "Who's hearing from you",
"moves": {
"open->unsubscribed": "Unsubscribe them"
}
},
"trials": {
"description": "Businesses who want to see their own workflow as a working site before committing to anything.",
"heading": "Trial sites in progress",
"moves": {
"approved->declined": "Decline trial",
"approved->previewed": "Mark previewed",
"open->approved": "Approve trial",
"open->declined": "Decline trial"
}
}
},
"confirm": "Confirm",
"description": "Everything waiting on you: briefs, trials, applicants, subscribers, and proposals, all in one place.",
"invited": {
"description": "People you've invited in, and whether they've taken it up yet.",
"done": "Taken up",
"heading": "Invites you've sent"
},
"invites": {
"custodians": {
"button": "Send invite",
"description": "Bring someone in to help keep the first node and answer for the network.",
"form_title": "Invite a custodian",
"heading": "Bring in a custodian",
"labels": {
"email": "Their email",
"name": "Their name"
}
},
"owners": {
"button": "Send invite",
"description": "Bring someone in to work this desk alongside you.",
"form_title": "Invite an owner",
"heading": "Bring in another owner",
"labels": {
"email": "Their email",
"name": "Their name"
}
}
},
"links": {
"prospect": {
"button": "Add prospect",
"description": "Write down an organization worth following up, and track it from first contact onward.",
"heading": "Track a new organization"
}
},
"question": "What's waiting on me today?"
},
"questions/owners/prospect-sent.yaml": {
"back": "Back to site",
"description": "Thanks — we've got your prospect written down, and it now moves through the desk with everything else we're tracking.",
"next_description": "An owner walks it from prospect to client, and on to past client, as the relationship moves.",
"next_heading": "It's on the desk now",
"question": "What happens to this now?"
},
"questions/owners/prospect.yaml": {
"button": "Add to prospects",
"description": "One line per organization worth watching, moved through the stages as things develop.",
"encouragement": "Takes a minute, and it's yours to update later.",
"form_description": "Name the organization and where things stand.",
"form_title": "New prospect",
"heading": "Keep an organization on your radar",
"hints": {
"contact": "met at the bakers' conference, [email protected]",
"name": "Nordvik Bakery",
"note": "wants a booking flow, follow up after harvest season"
},
"icon": "briefcase",
"labels": {
"contact": "Contact",
"name": "Organization",
"note": "Note"
},
"page_description": "Write down an organization worth following up, and move it through client and past client as things develop.",
"question": "Is there an organization I should be keeping track of?",
"road_description": "It sits as a prospect until something moves - then you mark it client, and later past client if the work ends.",
"road_icon": "route",
"road_title": "Moves as you update it",
"who_description": "Only you see this, so keep it wherever you check next.",
"who_icon": "user",
"who_title": "Just for you"
},
"questions/received/collaborate.yaml": {
"back": "Back to site",
"description": "Your note is in. An owner reads every one and will get back to you if there's a fit worth exploring.",
"next_description": "If it looks like a fit, we'll reach out to talk about where you could help.",
"next_heading": "We'll write if there's a fit",
"question": "What happens to what I just sent?"
},
"questions/received/commission.yaml": {
"back": "Back to home",
"description": "Your brief is in. An owner reads every commission end to end before replying.",
"next_description": "Expect a reply within a few working days, either way, straight to your inbox.",
"next_heading": "A real reply from someone who read it",
"question": "What happens now that we've sent our brief?"
},
"questions/received/custody.yaml": {
"back": "Back to the site",
"description": "A custodian reads every message about the redoal network and what it keeps.",
"next_description": "Expect a reply once your report has been looked at and the network checked.",
"next_heading": "A custodian is on it",
"question": "Who looks after what the network keeps?"
},
"questions/received/propose.yaml": {
"back": "Back home",
"description": "Your proposal is in. Someone here will read it and decide whether it fits before anything changes on the page.",
"next_description": "We'll write back once it's been read — approved and made live, or turned down with a reason.",
"next_heading": "A read, then a decision",
"question": "What happens to my proposal now?"
},
"questions/received/subscribe.yaml": {
"back": "Back to site",
"description": "You'll hear from us when there's something worth saying, not on a schedule.",
"next_description": "You're on the list. Every note has an unsubscribe link if it stops being useful.",
"next_heading": "You're on the list",
"question": "What happens now that I've subscribed?"
},
"questions/received/trial.yaml": {
"back": "Back to site",
"description": "We read every trial request ourselves before anything gets built.",
"next_description": "If it looks like a fit, we'll draft your site from your own words and send it back for your say before anything goes live.",
"next_heading": "A first draft, built from your own words",
"question": "What happens now that you've sent this?"
}
}
+274
View File
@@ -0,0 +1,274 @@
{
"collaborate": {
"pages": [
{
"control": {
"asked": 0,
"next": null,
"where": 0,
"which": 0
},
"control_ok": true,
"followup_shown": false,
"lix": 29.517543859649123,
"options": 3,
"overloaded": false,
"page": "/",
"personas": 3,
"required_fields": 0,
"understanding": {
"asked": 3,
"next": null,
"where": 3,
"which": 2
}
},
{
"control": {
"asked": 0,
"next": 0,
"where": 0,
"which": 0
},
"control_ok": true,
"followup_shown": true,
"lix": 19.40740740740741,
"options": 3,
"overloaded": false,
"page": "/join",
"personas": 3,
"required_fields": 3,
"understanding": {
"asked": 3,
"next": 3,
"where": 3,
"which": 3
}
}
],
"steps": 2
},
"commission": {
"pages": [
{
"control": {
"asked": 0,
"next": null,
"where": 0,
"which": 0
},
"control_ok": true,
"followup_shown": false,
"lix": 29.517543859649123,
"options": 3,
"overloaded": false,
"page": "/",
"personas": 3,
"required_fields": 0,
"understanding": {
"asked": 3,
"next": null,
"where": 2,
"which": 1
}
},
{
"control": {
"asked": 0,
"next": 0,
"where": 0,
"which": 0
},
"control_ok": true,
"followup_shown": true,
"lix": 31.056192660550458,
"options": 2,
"overloaded": false,
"page": "/build",
"personas": 3,
"required_fields": 4,
"understanding": {
"asked": 3,
"next": 3,
"where": 3,
"which": 3
}
}
],
"steps": 2
},
"custody": {
"pages": [
{
"control": {
"asked": 0,
"next": 0,
"where": 0,
"which": 0
},
"control_ok": true,
"followup_shown": true,
"lix": 30.00409836065574,
"options": 3,
"overloaded": false,
"page": "/",
"personas": 3,
"required_fields": 4,
"understanding": {
"asked": 3,
"next": 3,
"where": 3,
"which": 3
}
}
],
"steps": 1
},
"propose": {
"pages": [
{
"control": {
"asked": 0,
"next": null,
"where": 0,
"which": 0
},
"control_ok": true,
"followup_shown": false,
"lix": 29.517543859649123,
"options": 3,
"overloaded": false,
"page": "/",
"personas": 2,
"required_fields": 0,
"understanding": {
"asked": 2,
"next": null,
"where": 2,
"which": 1
}
},
{
"control": {
"asked": 0,
"next": 0,
"where": 0,
"which": 0
},
"control_ok": true,
"followup_shown": true,
"lix": 23.11111111111111,
"options": 3,
"overloaded": false,
"page": "/join",
"personas": 2,
"required_fields": 3,
"understanding": {
"asked": 2,
"next": 2,
"where": 2,
"which": 2
}
}
],
"steps": 2
},
"subscribe": {
"pages": [
{
"control": {
"asked": 0,
"next": null,
"where": 0,
"which": 0
},
"control_ok": true,
"followup_shown": false,
"lix": 29.517543859649123,
"options": 3,
"overloaded": false,
"page": "/",
"personas": 2,
"required_fields": 0,
"understanding": {
"asked": 2,
"next": null,
"where": 2,
"which": 2
}
},
{
"control": {
"asked": 0,
"next": 0,
"where": 0,
"which": 0
},
"control_ok": true,
"followup_shown": true,
"lix": 21.1010101010101,
"options": 3,
"overloaded": false,
"page": "/join",
"personas": 2,
"required_fields": 2,
"understanding": {
"asked": 2,
"next": 2,
"where": 2,
"which": 2
}
}
],
"steps": 2
},
"trial": {
"pages": [
{
"control": {
"asked": 0,
"next": null,
"where": 0,
"which": 0
},
"control_ok": true,
"followup_shown": false,
"lix": 29.517543859649123,
"options": 3,
"overloaded": false,
"page": "/",
"personas": 2,
"required_fields": 0,
"understanding": {
"asked": 2,
"next": null,
"where": 2,
"which": 1
}
},
{
"control": {
"asked": 0,
"next": 0,
"where": 0,
"which": 0
},
"control_ok": true,
"followup_shown": true,
"lix": 32.95073891625616,
"options": 2,
"overloaded": true,
"page": "/build",
"personas": 2,
"required_fields": 6,
"understanding": {
"asked": 2,
"next": 2,
"where": 2,
"which": 2
}
}
],
"steps": 2
}
}
+34
View File
@@ -0,0 +1,34 @@
== answer full
== answer skim
== score full
MISROUTE: architecture-firm@/build: picked "See your own business as a site, before you buy anything" (0.95), the need is met by ["Have us build it: send the brief"]
MISROUTE: climbing-gym-founder@/build: picked "See your own business as a site, before you buy anything" (0.95), the need is met by ["Have us build it: send the brief"]
MISROUTE: exhibition-visitor@/: picked "You are on the redoal network: a node, an app, or a recording that concerns you" (0.95), the need is met by ["You want to join us, follow us, or fix a page on this site"]
MISROUTE: tech-journalist@/: picked "You run an organization that needs software built" (0.95), the need is met by ["You want to join us, follow us, or fix a page on this site"]
MISROUTE: interaction-designer@/: picked "You are on the redoal network: a node, an app, or a recording that concerns you" (0.95), the need is met by ["You want to join us, follow us, or fix a page on this site"]
MISROUTE: dance-school@/: picked "You are on the redoal network: a node, an app, or a recording that concerns you" (0.95), the need is met by ["You run an organization that needs software built"]
MISROUTE: app-builder@/: picked "You run an organization that needs software built" (0.95), the need is met by ["You are on the redoal network: a node, an app, or a recording that concerns you"]
MISROUTE: rewrite@/: picked "You are on the redoal network: a node, an app, or a recording that concerns you" (1.00), the need is met by ["You want to join us, follow us, or fix a page on this site"]
wording: 19/27 routed right (70%)
== score skim
MISROUTE: exhibition-visitor@/: picked "You are on the redoal network: a node, an app, or a recording that concerns you" (0.95), the need is met by ["You want to join us, follow us, or fix a page on this site"]
MISROUTE: tech-journalist@/: picked "You run an organization that needs software built" (0.95), the need is met by ["You want to join us, follow us, or fix a page on this site"]
MISROUTE: interaction-designer@/: picked "You are on the redoal network: a node, an app, or a recording that concerns you" (0.95), the need is met by ["You want to join us, follow us, or fix a page on this site"]
MISROUTE: dance-school@/: picked "You want to join us, follow us, or fix a page on this site" (0.95), the need is met by ["You run an organization that needs software built"]
MISROUTE: dance-school@/build: picked "Have us build it: send the brief" (0.95), the need is met by ["See your own business as a site, before you buy anything"]
MISROUTE: wording-fix@/join: picked "Hear from us now and then" (0.95), the need is met by ["Suggest a change to this website"]
wording: 21/27 routed right (78%)
== rate
need LIX which where asked next gutted twin says page load
commission @/ 30 very easy 1/3 2/3 3/3 - 0/0/0/- ok 3 options, 0 required
commission @/build 31 easy 3/3 3/3 3/3 3/3 0/0/0/0 ok 2 options, 4 required
trial @/ 30 very easy 1/2 2/2 2/2 - 0/0/0/- ok 3 options, 0 required
trial @/build 33 easy 2/2 2/2 2/2 2/2 0/0/0/0 ok 2 options, 6 required - SPLIT
collaborate @/ 30 very easy 2/3 3/3 3/3 - 0/0/0/- ok 3 options, 0 required
collaborate @/join 19 very easy 3/3 3/3 3/3 3/3 0/0/0/0 ok 3 options, 3 required
subscribe @/ 30 very easy 2/2 2/2 2/2 - 0/0/0/- ok 3 options, 0 required
subscribe @/join 21 very easy 2/2 2/2 2/2 2/2 0/0/0/0 ok 3 options, 2 required
propose @/ 30 very easy 1/2 2/2 2/2 - 0/0/0/- ok 3 options, 0 required
propose @/join 23 very easy 2/2 2/2 2/2 2/2 0/0/0/0 ok 3 options, 3 required
custody 30 easy 3/3 3/3 3/3 3/3 0/0/0/0 ok 3 options, 4 required
== done
+16
View File
@@ -0,0 +1,16 @@
#!/bin/sh
# Score the built uhhm site: routing by a blind visitor (qwen3:8b), one
# task per call, with and without descriptions; then rate the cards.
set -eu
cd "$(dirname "$0")"
IRIS=/var/local/cargo-target/release/iris
T=/var/local/cargo-target/release/portal-trainer
LLM="MODEL=qwen3:8b ../../engines/ollama.sh"
$IRIS check --path site/questions --needs-tasks tasks-full.jsonl --needs-sim model.json > iris.log 2>&1
$IRIS check --path site/questions --needs-tasks tasks-skim.jsonl --skim >> iris.log 2>&1
echo "== answer full"; $T answer --tasks tasks-full.jsonl --repo site --llm "$LLM" > answers-full.jsonl
echo "== answer skim"; $T answer --tasks tasks-skim.jsonl --repo site --llm "$LLM" > answers-skim.jsonl
echo "== score full"; $IRIS check --path site/questions --needs-tasks tasks-full.jsonl --needs-score answers-full.jsonl 2>&1 | grep -E "MISROUTE|HESITANT|UNANSWERED|wording:"
echo "== score skim"; $IRIS check --path site/questions --needs-tasks tasks-skim.jsonl --skim --needs-score answers-skim.jsonl 2>&1 | grep -E "MISROUTE|HESITANT|UNANSWERED|wording:"
echo "== rate"; $T rate --model model.json --out rated --repo site --llm "$LLM" 2>&1 | tail -40
echo "== done"
+113
View File
@@ -0,0 +1,113 @@
aggregates:
- bucket: applicants
initial: open
states:
active:
event: onboarded
declined:
event: declined
departed:
event: departed
invited:
event: invited
open:
event: applied
transitions:
active:
- departed
- declined
invited:
- active
- declined
open:
- invited
- declined
- bucket: custody_requests
initial: open
states:
declined:
event: declined
in_dialogue:
event: in_dialogue
open:
event: received
resolved:
event: resolved
transitions:
in_dialogue:
- resolved
- declined
open:
- in_dialogue
- declined
- bucket: development_proposals
initial: open
states:
approved:
event: approved
open:
event: proposed
rejected:
event: rejected
transitions:
open:
- approved
- rejected
- bucket: organizations
initial: prospect
states:
client:
event: became_client
past_client:
event: churned
prospect:
event: identified
transitions:
client:
- past_client
prospect:
- client
- past_client
- bucket: projects
initial: open
states:
accepted:
event: accepted
declined:
event: declined
open:
event: submitted
transitions:
open:
- accepted
- declined
- bucket: subscribers
initial: open
states:
open:
event: subscribed
unsubscribed:
event: unsubscribed
transitions:
open:
- unsubscribed
- attended_by: |
approved -> previewed: the n8n workflow that builds the draft site from an approved intake (docker, rauthy, portal content) and sends the preview link. Until it exists, owners run portal-trainer by hand and press the button.
bucket: trials
initial: open
states:
approved:
event: approved
declined:
event: declined
open:
event: received
previewed:
event: previewed
transitions:
approved:
- previewed
- declined
open:
- approved
- declined
@@ -0,0 +1,174 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/build/index.yaml
It is a page one kind of visitor reaches from the front door. `question` is what this page asks them; under `needs`, each entry is one alternative they can pick, with the form behind it.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"description": "<WRITE: one or two short sentences>",
"needs": {
"commission": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"encouragement": "<WRITE: one reassuring sentence: what happens with what they send, or how little it takes; or empty>",
"form_description": "<WRITE: one short line of guidance above the form, or empty>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"hints": {
"email": "<WRITE: an example answer for the field `email`, as a placeholder; or empty>",
"name": "<WRITE: an example answer for the field `name`, as a placeholder; or empty>",
"org_contact": "<WRITE: an example answer for the field `org_contact`, as a placeholder; or empty>",
"organization": "<WRITE: an example answer for the field `organization`, as a placeholder; or empty>",
"project": "<WRITE: an example answer for the field `project`, as a placeholder; or empty>"
},
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>",
"labels": {
"email": "<WRITE: a form label for the field `email`>",
"name": "<WRITE: a form label for the field `name`>",
"org_contact": "<WRITE: a form label for the field `org_contact`>",
"organization": "<WRITE: a form label for the field `organization`>",
"project": "<WRITE: a form label for the field `project`>"
},
"road_description": "<WRITE: one or two sentences walking the reader through the stages this goes through, in order (the stages are listed above), in their words>",
"road_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"road_title": "<WRITE: a short title, two to four words, for the line that says what happens after sending>",
"who_description": "<WRITE: one sentence: who reads what they send, and how to reach them meanwhile>",
"who_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"who_title": "<WRITE: a short title, two to four words, for the line that says who reads it>"
},
"trial": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"encouragement": "<WRITE: one reassuring sentence: what happens with what they send, or how little it takes; or empty>",
"form_description": "<WRITE: one short line of guidance above the form, or empty>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"hints": {
"business": "<WRITE: an example answer for the field `business`, as a placeholder; or empty>",
"email": "<WRITE: an example answer for the field `email`, as a placeholder; or empty>",
"what_slows_us_down": "<WRITE: an example answer for the field `what_slows_us_down`, as a placeholder; or empty>",
"what_we_do": "<WRITE: an example answer for the field `what_we_do`, as a placeholder; or empty>",
"what_we_keep_track_of": "<WRITE: an example answer for the field `what_we_keep_track_of`, as a placeholder; or empty>",
"who_comes_to_us": "<WRITE: an example answer for the field `who_comes_to_us`, as a placeholder; or empty>",
"who_is_involved": "<WRITE: an example answer for the field `who_is_involved`, as a placeholder; or empty>"
},
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>",
"labels": {
"business": "<WRITE: a form label for the field `business`>",
"email": "<WRITE: a form label for the field `email`>",
"what_slows_us_down": "<WRITE: a form label for the field `what_slows_us_down`>",
"what_we_do": "<WRITE: a form label for the field `what_we_do`>",
"what_we_keep_track_of": "<WRITE: a form label for the field `what_we_keep_track_of`>",
"who_comes_to_us": "<WRITE: a form label for the field `who_comes_to_us`>",
"who_is_involved": "<WRITE: a form label for the field `who_is_involved`>"
},
"road_description": "<WRITE: one or two sentences walking the reader through the stages this goes through, in order (the stages are listed above), in their words>",
"road_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"road_title": "<WRITE: a short title, two to four words, for the line that says what happens after sending>",
"who_description": "<WRITE: one sentence: who reads what they send, and how to reach them meanwhile>",
"who_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"who_title": "<WRITE: a short title, two to four words, for the line that says who reads it>"
}
},
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
```json
{
"description": "Have a problem software should solve, or want to see your own way of working as a site before you pay anyone?",
"needs": {
"commission": {
"button": "Send the brief",
"description": "You know the problem and want it solved. Write it up and send it to people who will read the whole thing.",
"encouragement": "Someone here reads every brief in full before writing back.",
"form_description": "The more of the problem you put in, the better the reply.",
"form_title": "Tell us the problem",
"heading": "A considered reply to your brief",
"hints": {
"email": "sara@company.com",
"name": "Sara Nilsen",
"org_contact": "Sara Nilsen, ops manager",
"organization": "Nilsen Transport AS",
"project": "Our drivers log hours on paper and it takes a day to get them into payroll."
},
"icon": "briefcase",
"labels": {
"email": "Your email",
"name": "Your name",
"org_contact": "Who we should talk to",
"organization": "Your organization",
"project": "The problem you want solved"
},
"road_description": "We read your brief and either take it on or tell you honestly if it's not a fit.",
"road_icon": "route",
"road_title": "What happens next",
"who_description": "One of the owners reads it; write to bl@uhhm.no if you'd rather reach us directly.",
"who_icon": "user-check",
"who_title": "Who reads this"
},
"trial": {
"button": "Start the draft",
"description": "See your own requests, approvals and handovers as a working site, before you commit to anything.",
"encouragement": "A person looks at what you send before anything gets built.",
"form_description": "Answer in your own words - there's no wrong way to describe your business.",
"form_title": "Describe your business",
"heading": "A first draft of your own site",
"hints": {
"business": "Nilsen Transport AS",
"email": "sara@company.com",
"what_slows_us_down": "Approvals sit in someone's inbox for days before anyone acts on them.",
"what_we_do": "We move freight for local businesses and handle the paperwork for them.",
"what_we_keep_track_of": "Bookings, driver hours, and which loads are still waiting on a signature.",
"who_comes_to_us": "Local businesses that need something moved on short notice.",
"who_is_involved": "Drivers, dispatchers, and the customers waiting on their delivery."
},
"icon": "layers",
"labels": {
"business": "Your business",
"email": "Your email",
"what_slows_us_down": "What slows you down",
"what_we_do": "What you do",
"what_we_keep_track_of": "What you keep track of",
"who_comes_to_us": "Who comes to you",
"who_is_involved": "Who's involved"
},
"road_description": "We look at what you sent and, if it's a fit, build a draft from your own roles and words for you to see before anything moves further.",
"road_icon": "route",
"road_title": "What happens next",
"who_description": "An owner looks at what you send; write to bl@uhhm.no if you'd rather reach us directly.",
"who_icon": "user-check",
"who_title": "Who reads this"
}
},
"question": "Do you already know the problem, or do you want to see your own business as a site first?"
}
```
@@ -0,0 +1,108 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/custodians/index.yaml
It is a desk: the page one role inside the business works from. Under `buckets`, each entry is a list of cases; `moves` are the buttons that move a case from one stage to the next (key `from->to`), so label each with what the person has just done. Under `links` are pages this role can open. Under `invites`, each entry is a form that invites a person into that group - they get an account and a one-time link - and `invited` is the list of invites sent.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"buckets": {
"custody_requests": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {
"in_dialogue->declined": "<WRITE: a button, two to four words, for a case going in_dialogue->declined>",
"in_dialogue->resolved": "<WRITE: a button, two to four words, for a case going in_dialogue->resolved>",
"open->declined": "<WRITE: a button, two to four words, for a case going open->declined>",
"open->in_dialogue": "<WRITE: a button, two to four words, for a case going open->in_dialogue>"
}
}
},
"confirm": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"invited": {
"description": "<WRITE: one or two short sentences>",
"done": "<WRITE: a form label for the field `done`>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>"
},
"invites": {
"custodians": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"labels": {
"email": "<WRITE: a form label for the field `email`>",
"name": "<WRITE: a form label for the field `name`>"
}
}
},
"links": {},
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
```json
{
"buckets": {
"custody_requests": {
"description": "Cases from people who use, build on, or answer for something the redoal network touches, and need a custodian's word on it.",
"heading": "Custody cases waiting on you",
"moves": {
"in_dialogue->declined": "Close, no action",
"in_dialogue->resolved": "Mark resolved",
"open->declined": "Decline case",
"open->in_dialogue": "Open dialogue"
}
}
},
"confirm": "Send invite",
"description": "The desk for custodians: open custody cases, and the people invited to answer them.",
"invited": {
"description": "Custodians invited but not yet signed in.",
"done": "Signed in",
"heading": "Invited custodians"
},
"invites": {
"custodians": {
"button": "Invite custodian",
"description": "Give someone an account and a one-time link to join as a custodian.",
"form_title": "Invite a custodian",
"heading": "Bring in another custodian",
"labels": {
"email": "Email",
"name": "Name"
}
}
},
"links": {},
"question": "What does the network owe the people it affects, right now?"
}
```
@@ -0,0 +1,60 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/decide/subscribe.yaml
It is a page the person who sent a form reaches later, through a private link, to make a decision that is theirs: under `moves`, each entry is one thing they can decide.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"description": "<WRITE: one or two short sentences>",
"moves": {
"unsubscribed": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>"
}
},
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
```json
{
"description": "You're on our list. Change your mind whenever you like.",
"moves": {
"unsubscribed": {
"button": "Unsubscribe",
"description": "You'll stop hearing from us. Nothing else changes.",
"heading": "Stop getting notes from us"
}
},
"question": "Do you want to keep hearing from us?"
}
```
@@ -0,0 +1,136 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/index.yaml
It is the front door: the first page any visitor sees. `question` is the page's one question. Under `doors`, each entry is one alternative that leads to a page of its own for one kind of visitor: its heading must let that visitor recognise themselves from the heading alone. Under `needs`, each entry is one alternative with a form behind it.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"description": "<WRITE: one or two short sentences>",
"doors": {
"build": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"for_whom": "<WRITE: a few words naming who this is for, addressed to them; or empty>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>"
},
"join": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"for_whom": "<WRITE: a few words naming who this is for, addressed to them; or empty>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>"
}
},
"needs": {
"custody": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"encouragement": "<WRITE: one reassuring sentence: what happens with what they send, or how little it takes; or empty>",
"form_description": "<WRITE: one short line of guidance above the form, or empty>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"hints": {
"about": "<WRITE: an example answer for the field `about`, as a placeholder; or empty>",
"email": "<WRITE: an example answer for the field `email`, as a placeholder; or empty>",
"name": "<WRITE: an example answer for the field `name`, as a placeholder; or empty>",
"what": "<WRITE: an example answer for the field `what`, as a placeholder; or empty>"
},
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>",
"labels": {
"about": "<WRITE: a form label for the field `about`>",
"email": "<WRITE: a form label for the field `email`>",
"name": "<WRITE: a form label for the field `name`>",
"what": "<WRITE: a form label for the field `what`>"
},
"road_description": "<WRITE: one or two sentences walking the reader through the stages this goes through, in order (the stages are listed above), in their words>",
"road_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"road_title": "<WRITE: a short title, two to four words, for the line that says what happens after sending>",
"who_description": "<WRITE: one sentence: who reads what they send, and how to reach them meanwhile>",
"who_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"who_title": "<WRITE: a short title, two to four words, for the line that says who reads it>"
}
},
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
```json
{
"description": "UHHM builds software for organisations that can say what problem they have, and keeps the redoal network underneath.",
"doors": {
"build": {
"button": "Start here",
"description": "Send us the problem, or try your own workflow as a working site before you pay for anything.",
"for_whom": "For an organisation with a problem, or a business sizing us up",
"heading": "Get software built around your problem",
"icon": "hammer"
},
"join": {
"button": "Start here",
"description": "Build with us, hear from us now and then, or tell us what should change on this page.",
"for_whom": "For anyone who wants in, on their own terms",
"heading": "Work with us, or just stay in touch",
"icon": "handshake"
}
},
"needs": {
"custody": {
"button": "Send to a custodian",
"description": "For anyone who runs on, builds on, or is affected by the redoal network and needs to reach the people who keep its first node.",
"encouragement": "A custodian reads every message that comes in here.",
"form_description": "Tell us what the network is doing, or not doing, and how we can reach you.",
"form_title": "Reach a custodian",
"heading": "Get an answer from the people who keep the network",
"hints": {
"about": "We run our order system on a relay node and it's been dropping messages since Tuesday",
"email": "you@yourcompany.com",
"name": "Your name",
"what": "A relay node is misbehaving"
},
"icon": "shield",
"labels": {
"about": "What's going on",
"email": "Email",
"name": "Name",
"what": "In short"
},
"road_description": "We open it and start a dialogue with you. Once we understand what the network is keeping that it shouldn't, we work it through to resolved, or tell you plainly if we can't.",
"road_icon": "route",
"road_title": "What happens next",
"who_title": "Who reads this",
"who_icon": "user-check",
"who_description": "A custodian reads it directly; if it's urgent, write to bl@uhhm.no in the meantime."
}
},
"question": "What brings you here?"
}
```
@@ -0,0 +1,208 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/join/index.yaml
It is a page one kind of visitor reaches from the front door. `question` is what this page asks them; under `needs`, each entry is one alternative they can pick, with the form behind it.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"description": "<WRITE: one or two short sentences>",
"needs": {
"collaborate": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"encouragement": "<WRITE: one reassuring sentence: what happens with what they send, or how little it takes; or empty>",
"form_description": "<WRITE: one short line of guidance above the form, or empty>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"hints": {
"email": "<WRITE: an example answer for the field `email`, as a placeholder; or empty>",
"interest": "<WRITE: an example answer for the field `interest`, as a placeholder; or empty>",
"name": "<WRITE: an example answer for the field `name`, as a placeholder; or empty>",
"note": "<WRITE: an example answer for the field `note`, as a placeholder; or empty>"
},
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>",
"labels": {
"email": "<WRITE: a form label for the field `email`>",
"interest": "<WRITE: a form label for the field `interest`>",
"name": "<WRITE: a form label for the field `name`>",
"note": "<WRITE: a form label for the field `note`>"
},
"road_description": "<WRITE: one or two sentences walking the reader through the stages this goes through, in order (the stages are listed above), in their words>",
"road_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"road_title": "<WRITE: a short title, two to four words, for the line that says what happens after sending>",
"who_description": "<WRITE: one sentence: who reads what they send, and how to reach them meanwhile>",
"who_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"who_title": "<WRITE: a short title, two to four words, for the line that says who reads it>"
},
"propose": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"encouragement": "<WRITE: one reassuring sentence: what happens with what they send, or how little it takes; or empty>",
"form_description": "<WRITE: one short line of guidance above the form, or empty>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"hints": {
"email": "<WRITE: an example answer for the field `email`, as a placeholder; or empty>",
"page": "<WRITE: an example answer for the field `page`, as a placeholder; or empty>",
"proposed_yaml": "<WRITE: an example answer for the field `proposed_yaml`, as a placeholder; or empty>",
"rationale": "<WRITE: an example answer for the field `rationale`, as a placeholder; or empty>",
"submitted_by": "<WRITE: an example answer for the field `submitted_by`, as a placeholder; or empty>"
},
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>",
"labels": {
"email": "<WRITE: a form label for the field `email`>",
"page": "<WRITE: a form label for the field `page`>",
"proposed_yaml": "<WRITE: a form label for the field `proposed_yaml`>",
"rationale": "<WRITE: a form label for the field `rationale`>",
"submitted_by": "<WRITE: a form label for the field `submitted_by`>"
},
"road_description": "<WRITE: one or two sentences walking the reader through the stages this goes through, in order (the stages are listed above), in their words>",
"road_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"road_title": "<WRITE: a short title, two to four words, for the line that says what happens after sending>",
"who_description": "<WRITE: one sentence: who reads what they send, and how to reach them meanwhile>",
"who_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"who_title": "<WRITE: a short title, two to four words, for the line that says who reads it>"
},
"subscribe": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"encouragement": "<WRITE: one reassuring sentence: what happens with what they send, or how little it takes; or empty>",
"form_description": "<WRITE: one short line of guidance above the form, or empty>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"hints": {
"email": "<WRITE: an example answer for the field `email`, as a placeholder; or empty>",
"name": "<WRITE: an example answer for the field `name`, as a placeholder; or empty>"
},
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>",
"labels": {
"email": "<WRITE: a form label for the field `email`>",
"name": "<WRITE: a form label for the field `name`>"
},
"road_description": "<WRITE: one or two sentences walking the reader through the stages this goes through, in order (the stages are listed above), in their words>",
"road_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"road_title": "<WRITE: a short title, two to four words, for the line that says what happens after sending>",
"who_description": "<WRITE: one sentence: who reads what they send, and how to reach them meanwhile>",
"who_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"who_title": "<WRITE: a short title, two to four words, for the line that says who reads it>"
}
},
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
```json
{
"description": "Three ways to be part of what UHHM builds: work with us, hear from us, or fix something on this site.",
"needs": {
"collaborate": {
"button": "Get in touch",
"description": "You want to build software with people who read the whole brief, not just the summary.",
"encouragement": "A person reads this, not a form filter — worth the ten minutes.",
"form_description": "Tell us who you are and what kind of work you're after.",
"form_title": "Say hello",
"heading": "Work with people who read the whole thing",
"hints": {
"email": "you@example.com",
"interest": "Backend work, or something design-heavy",
"name": "Your name",
"note": "A bit about what you'd want to work on, or a link to your work"
},
"icon": "handshake",
"labels": {
"email": "Email",
"interest": "What kind of work",
"name": "Name",
"note": "Tell us more"
},
"road_description": "We read what you send and get back to you. If there's a fit, we invite you in and you start working with us — and if things ever change, that's fine too.",
"road_icon": "route",
"road_title": "What happens next",
"who_description": "One of the owners reads this directly — for anything urgent, write to bl@uhhm.no.",
"who_icon": "user-check",
"who_title": "Who reads this"
},
"propose": {
"button": "Send change",
"description": "You've spotted something on this site that should read differently, and you know roughly how.",
"encouragement": "Even a rough version helps — we can tidy the wording ourselves.",
"form_description": "Point us to the page and show us the change.",
"form_title": "Propose a change",
"heading": "Get a page fixed the way you'd write it",
"hints": {
"email": "you@example.com",
"page": "questions/join/index.yaml",
"proposed_yaml": "heading: \"A clearer way to say this\"",
"rationale": "The current heading doesn't say what you actually get",
"submitted_by": "Your name"
},
"icon": "pencil",
"labels": {
"email": "Email",
"page": "Which page",
"proposed_yaml": "Your proposed text",
"rationale": "Why this is better",
"submitted_by": "Your name"
},
"road_description": "Someone here reads your proposal and either makes the change or explains why not. Either way, you'll hear back.",
"road_icon": "route",
"road_title": "What happens next",
"who_description": "An owner reads every proposal before anything changes — reach us at bl@uhhm.no if it's time-sensitive.",
"who_icon": "user-check",
"who_title": "Who reads this"
},
"subscribe": {
"button": "Sign up",
"description": "You'd rather hear from us now and then than check back on your own.",
"encouragement": "One click unsubscribes you later, no questions asked.",
"form_description": "Just your email, or your name too if you'd like.",
"form_title": "Stay in the loop",
"heading": "Hear from us only when there's something to say",
"hints": {
"email": "you@example.com",
"name": "Your name"
},
"icon": "mail",
"labels": {
"email": "Email",
"name": "Name"
},
"road_description": "You're on the list. We write when there's something worth saying, and you can leave the list whenever you like.",
"road_icon": "bell",
"road_title": "What happens next",
"who_description": "An owner sends these notes directly — write to bl@uhhm.no if you'd rather ask something first.",
"who_icon": "user-check",
"who_title": "Who reads this"
}
},
"question": "How do you want to be part of this?"
}
```
@@ -0,0 +1,236 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/owners/index.yaml
It is a desk: the page one role inside the business works from. Under `buckets`, each entry is a list of cases; `moves` are the buttons that move a case from one stage to the next (key `from->to`), so label each with what the person has just done. Under `links` are pages this role can open. Under `invites`, each entry is a form that invites a person into that group - they get an account and a one-time link - and `invited` is the list of invites sent.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"buckets": {
"applicants": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {
"active->declined": "<WRITE: a button, two to four words, for a case going active->declined>",
"active->departed": "<WRITE: a button, two to four words, for a case going active->departed>",
"invited->active": "<WRITE: a button, two to four words, for a case going invited->active>",
"invited->declined": "<WRITE: a button, two to four words, for a case going invited->declined>",
"open->declined": "<WRITE: a button, two to four words, for a case going open->declined>",
"open->invited": "<WRITE: a button, two to four words, for a case going open->invited>"
}
},
"custody_requests": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {}
},
"development_proposals": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {
"open->approved": "<WRITE: a button, two to four words, for a case going open->approved>",
"open->rejected": "<WRITE: a button, two to four words, for a case going open->rejected>"
}
},
"organizations": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {
"client->past_client": "<WRITE: a button, two to four words, for a case going client->past_client>",
"prospect->client": "<WRITE: a button, two to four words, for a case going prospect->client>",
"prospect->past_client": "<WRITE: a button, two to four words, for a case going prospect->past_client>"
}
},
"projects": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {
"open->accepted": "<WRITE: a button, two to four words, for a case going open->accepted>",
"open->declined": "<WRITE: a button, two to four words, for a case going open->declined>"
}
},
"subscribers": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {
"open->unsubscribed": "<WRITE: a button, two to four words, for a case going open->unsubscribed>"
}
},
"trials": {
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"moves": {
"approved->declined": "<WRITE: a button, two to four words, for a case going approved->declined>",
"approved->previewed": "<WRITE: a button, two to four words, for a case going approved->previewed>",
"open->approved": "<WRITE: a button, two to four words, for a case going open->approved>",
"open->declined": "<WRITE: a button, two to four words, for a case going open->declined>"
}
}
},
"confirm": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"invited": {
"description": "<WRITE: one or two short sentences>",
"done": "<WRITE: a form label for the field `done`>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>"
},
"invites": {
"custodians": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"labels": {
"email": "<WRITE: a form label for the field `email`>",
"name": "<WRITE: a form label for the field `name`>"
}
},
"owners": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"labels": {
"email": "<WRITE: a form label for the field `email`>",
"name": "<WRITE: a form label for the field `name`>"
}
}
},
"links": {
"prospect": {
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>"
}
},
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
{
"buckets": {
"applicants": {
"description": "People who've asked to build with us, waiting on a decision or already working alongside us.",
"heading": "People who want to build with us",
"moves": {
"active->declined": "End collaboration",
"active->departed": "Mark departed",
"invited->active": "Confirm active",
"invited->declined": "Withdraw invite",
"open->declined": "Decline applicant",
"open->invited": "Send invite"
}
},
"custody_requests": {
"description": "Questions and issues raised with the people who keep the first node - custodians handle these, but you can see where each one stands.",
"heading": "What's been raised with custodians",
"moves": {}
},
"development_proposals": {
"description": "Changes visitors have proposed for pages on this site, waiting on a yes or no.",
"heading": "Proposed changes to the site",
"moves": {
"open->approved": "Approve change",
"open->rejected": "Reject change"
}
},
"organizations": {
"description": "Organizations you've met, tracked from first contact through to client and beyond.",
"heading": "Organizations you're tracking",
"moves": {
"client->past_client": "Mark past client",
"prospect->client": "Mark as client",
"prospect->past_client": "Mark not pursued"
}
},
"projects": {
"description": "Briefs sent in by organizations with a problem they want solved.",
"heading": "Briefs waiting on a reply",
"moves": {
"open->accepted": "Accept brief",
"open->declined": "Decline brief"
}
},
"subscribers": {
"description": "People who want to hear from you now and then.",
"heading": "Who's hearing from you",
"moves": {
"open->unsubscribed": "Unsubscribe them"
}
},
"trials": {
"description": "Businesses who want to see their own workflow as a working site before committing to anything.",
"heading": "Trial sites in progress",
"moves": {
"approved->declined": "Decline trial",
"approved->previewed": "Mark previewed",
"open->approved": "Approve trial",
"open->declined": "Decline trial"
}
}
},
"confirm": "Confirm",
"description": "Everything waiting on you: briefs, trials, applicants, subscribers, and proposals, all in one place.",
"invited": {
"description": "People you've invited in, and whether they've taken it up yet.",
"done": "Taken up",
"heading": "Invites you've sent"
},
"invites": {
"custodians": {
"button": "Send invite",
"description": "Bring someone in to help keep the first node and answer for the network.",
"form_title": "Invite a custodian",
"heading": "Bring in a custodian",
"labels": {
"email": "Their email",
"name": "Their name"
}
},
"owners": {
"button": "Send invite",
"description": "Bring someone in to work this desk alongside you.",
"form_title": "Invite an owner",
"heading": "Bring in another owner",
"labels": {
"email": "Their email",
"name": "Their name"
}
}
},
"links": {
"prospect": {
"button": "Add prospect",
"description": "Write down an organization worth following up, and track it from first contact onward.",
"heading": "Track a new organization"
}
},
"question": "What's waiting on me today?"
}
@@ -0,0 +1,52 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/owners/prospect-sent.yaml
It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"back": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"next_description": "<WRITE: one or two short sentences>",
"next_heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
```json
{
"back": "Back to site",
"description": "Thanks — we've got your prospect written down, and it now moves through the desk with everything else we're tracking.",
"next_description": "An owner walks it from prospect to client, and on to past client, as the relationship moves.",
"next_heading": "It's on the desk now",
"question": "What happens to this now?"
}
```
@@ -0,0 +1,92 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/owners/prospect.yaml
It is a page only one role inside the business can open, holding one form.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"button": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"encouragement": "<WRITE: one reassuring sentence: what happens with what they send, or how little it takes; or empty>",
"form_description": "<WRITE: one short line of guidance above the form, or empty>",
"form_title": "<WRITE: a title for the form, two to four words>",
"heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"hints": {
"contact": "<WRITE: an example answer for the field `contact`, as a placeholder; or empty>",
"name": "<WRITE: an example answer for the field `name`, as a placeholder; or empty>",
"note": "<WRITE: an example answer for the field `note`, as a placeholder; or empty>"
},
"icon": "<WRITE: an icon name from the list at the end, the one that fits this best; or empty>",
"labels": {
"contact": "<WRITE: a form label for the field `contact`>",
"name": "<WRITE: a form label for the field `name`>",
"note": "<WRITE: a form label for the field `note`>"
},
"page_description": "<WRITE: one or two short sentences>",
"question": "<WRITE: the one question this page asks its reader>",
"road_description": "<WRITE: one or two sentences walking the reader through the stages this goes through, in order (the stages are listed above), in their words>",
"road_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"road_title": "<WRITE: a short title, two to four words, for the line that says what happens after sending>",
"who_description": "<WRITE: one sentence: who reads what they send, and how to reach them meanwhile>",
"who_icon": "<WRITE: an icon name from the list at the end that fits this section; or empty>",
"who_title": "<WRITE: a short title, two to four words, for the line that says who reads it>"
}
Reply with the JSON object only.
=== REPLY ===
```json
{
"button": "Add to prospects",
"description": "One line per organization worth watching, moved through the stages as things develop.",
"encouragement": "Takes a minute, and it's yours to update later.",
"form_description": "Name the organization and where things stand.",
"form_title": "New prospect",
"heading": "Keep an organization on your radar",
"hints": {
"contact": "met at the bakers' conference, [email protected]",
"name": "Nordvik Bakery",
"note": "wants a booking flow, follow up after harvest season"
},
"icon": "briefcase",
"labels": {
"contact": "Contact",
"name": "Organization",
"note": "Note"
},
"page_description": "Write down an organization worth following up, and move it through client and past client as things develop.",
"question": "Is there an organization I should be keeping track of?",
"road_description": "It sits as a prospect until something moves - then you mark it client, and later past client if the work ends.",
"road_icon": "route",
"road_title": "Moves as you update it",
"who_description": "Only you see this, so keep it wherever you check next.",
"who_icon": "user",
"who_title": "Just for you"
}
```
@@ -0,0 +1,52 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/received/collaborate.yaml
It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"back": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"next_description": "<WRITE: one or two short sentences>",
"next_heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
```json
{
"back": "Back to site",
"description": "Your note is in. An owner reads every one and will get back to you if there's a fit worth exploring.",
"next_description": "If it looks like a fit, we'll reach out to talk about where you could help.",
"next_heading": "We'll write if there's a fit",
"question": "What happens to what I just sent?"
}
```
@@ -0,0 +1,52 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/received/commission.yaml
It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"back": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"next_description": "<WRITE: one or two short sentences>",
"next_heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
```json
{
"back": "Back to home",
"description": "Your brief is in. An owner reads every commission end to end before replying.",
"next_description": "Expect a reply within a few working days, either way, straight to your inbox.",
"next_heading": "A real reply from someone who read it",
"question": "What happens now that we've sent our brief?"
}
```
@@ -0,0 +1,52 @@
You write the words for one page of a website for this business.
Business: UHHM
About: UHHM builds software around a clear argument: infrastructure, tools and products for organizations that can say what problem they have. It also builds and carries the redoal network - the gesture math, the relay, the first node, and the portal this site runs on - and answers for what that network keeps.
Contact: Bendik Aagaard Lynghaug <bl@uhhm.no>
Language to write in: en
Everyone the site serves:
- door build: for an organization with a problem software should solve, or a business that wants to see its own workflow as a working site before paying anyone; behind it: commission, trial
- door join: for someone who wants to build with us, hear from us now and then, or change this site; behind it: collaborate, subscribe, propose
- commission: an organization with a problem it wants software to solve - wants: a considered reply to a brief, from people who read the whole thing. Handled by owners. Stages: open -> accepted -> declined.
- trial: someone who runs a business where requests, approvals and handovers get lost, and wants to see it as a site before committing to anything - wants: a first draft of a site for their own roles, built from their own words and approved by a person first. Handled by owners. Stages: open -> approved -> previewed -> declined.
- collaborate: someone who wants to work with us on what we build - wants: to be read as a person, and invited in if there is a fit. Handled by owners. Stages: open -> invited -> active -> departed -> declined.
- subscribe: someone who wants to hear from us when there is something to say - wants: a note now and then, and an easy way out. Handled by owners. Stages: open -> unsubscribed.
- propose: a visitor who sees how a page on this site should change - wants: the change read by a person and, if approved, made. Handled by owners. Stages: open -> approved -> rejected.
- custody: someone who runs, builds on, or is affected by the redoal network and needs the people who keep its first node - wants: an answer from a custodian, and action where the network keeps something it should not. Handled by custodians. Stages: open -> in_dialogue -> resolved -> declined.
- prospect: an owner who has met an organization worth following up - wants: it written down and walked through its states from the desk. Handled by owners. Stages: prospect -> client -> past_client.
The page: questions/received/custody.yaml
It is a page shown right after someone has sent a form. Say who reads it, when they answer, and what happens next.
Below is the page as JSON. Every value is a slot that says what to write there. Return the same JSON with every slot replaced by your words. Keep every key exactly as it is. A slot left as it is counts as no answer.
Rules for the words:
- `question` is a question the reader could ask themselves.
- A heading says what the reader gets, in the reader's own words, and must work without its description.
- Lead with what a thing enables. No negations in headings. No trade jargon the reader would not use.
- Descriptions are one or two short sentences. Labels and buttons are a few words.
- The button says what pressing it does; the encouragement says what happens next or how little it takes; the form's guidance line says what to have ready. Placeholders are example answers in the reader's words.
- An icon is one name from this list, chosen for what the reader is doing, or empty: house, building-2, store, school, map-pin, route, footprints, trees, leaf, snowflake, sun, users, user, user-plus, user-check, baby, heart-handshake, hand-helping, handshake, smile, mail, phone, message-circle, megaphone, bell, send, inbox, alert-triangle, siren, shield, construction, hammer, wrench, ruler, package, truck, car, bus, train-front, bike, calendar, clock, file-text, clipboard-list, receipt, wallet, coins, banknote, credit-card, key, lock, search, star, gift, shopping-cart, lightbulb, flag, thumbs-up, check-circle, briefcase, stethoscope, activity, camera, pencil, refresh-cw, list, layers, vote, scale
- Write the way people in this trade and country actually speak.
{
"back": "<WRITE: a button, one to three words, saying what pressing it does>",
"description": "<WRITE: one or two short sentences>",
"next_description": "<WRITE: one or two short sentences>",
"next_heading": "<WRITE: a heading, at most eight words, saying what the reader gets>",
"question": "<WRITE: the one question this page asks its reader>"
}
Reply with the JSON object only.
=== REPLY ===
```json
{
"back": "Back to the site",
"description": "A custodian reads every message about the redoal network and what it keeps.",
"next_description": "Expect a reply once your report has been looked at and the network checked.",
"next_heading": "A custodian is on it",
"question": "Who looks after what the network keeps?"
}
```

Some files were not shown because too many files have changed in this diff Show More