{ "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?" } ] }