Files
hackerspace.sh/content/docs/how-to/configure-onboarding.md
T
Moheeb Zara 16229ae523 feat(docs): add a Diátaxis documentation section to the public site
A new public /docs area covering the whole platform, organized by Diátaxis:
tutorials (learning), how-to guides (tasks), reference (facts), and explanation
(the why). 29 pages, each grounded in the actual routes, actions, schema, and
UI — verified against the code and corrected for accuracy (e.g. admin-only vs
admin+board gating, where the permissions matrix actually lives, how Stripe
reconciliation matches).

Implementation:
- lib/docs/nav.ts is the single source of truth (categories + pages), driving
  the sidebar, static params, and prev/next.
- Content authored as content/docs/<category>/<slug>.md, read at build time
  (the routes are statically generated), rendered by <DocsMarkdown> — reuses the
  existing react-markdown/GFM stack, no new dependencies.
- (docs) route group with its own theme (docs.css) matching the public site's
  dark / monospace / lime aesthetic; sidebar with active-state, breadcrumb,
  prev/next, and a Diátaxis home. Public — signed-in users can read it too.
- "Docs" link added to the landing nav.

typecheck 0 · lint 0 errors · build ok (all /docs pages prerendered)
2026-08-05 00:42:42 -07:00

82 lines
4.1 KiB
Markdown

Onboarding is the short, ordered flow a new member walks through the first time they open the app. You edit it under the **Onboarding** section of [/customize](/customize), in the **New member onboarding** card. This page shows you how to add, reorder, require, disable, and delete steps.
## Who can edit onboarding
Editing onboarding is role-gated:
| Action | Required role |
| --- | --- |
| Add a step (Custom or Form) | admin |
| Edit title, body, config, order, toggles | admin |
| Delete a step | admin (built-in steps can never be deleted) |
Board members can open [/customize](/customize) and see the onboarding steps, but the panel is read-only for them: the **+ Custom step** / **+ Form step** buttons are hidden and every field, toggle, and Delete control is disabled. Members who are neither admin nor board are redirected away from /customize entirely.
## Understand the built-in steps
Every space is seeded with four built-in steps when it is created. They are marked **built-in** and cannot be deleted — only disabled or reordered.
| Step | Type | Seeded as | Notes |
| --- | --- | --- | --- |
| Welcome to *space* | `welcome` | enabled, optional | Info screen, markdown body, never blocking |
| Code of Conduct | `code_of_conduct` | enabled, required | Body plus a required acknowledgement checkbox |
| Complete your profile | `profile` | enabled, optional | Prompts the member for display name, handle, bio, skills |
| Set up your dues | `payment` | enabled, optional | Dues nudge with an optional payment link button |
## The step types
There are six step types. The four above are built-in; the two you can add yourself are `content` and `form`.
| Type | Body editable | Extra config | Deletable |
| --- | --- | --- | --- |
| `welcome` | yes | — | no (built-in) |
| `code_of_conduct` | yes | `require_ack`, `ack_label` | no (built-in) |
| `profile` | no | — | no (built-in) |
| `payment` | yes | `payment_url` (link button) | no (built-in) |
| `content` | yes | — | yes |
| `form` | yes | `form_id` (published form) | yes |
Body fields accept markdown and a safe subset of HTML.
## Add a custom step
1. Go to [/customize](/customize) and open the **Onboarding** section.
2. Click **+ Custom step**. A new `content` step is appended at the bottom, titled "New step".
3. Edit the **title** field and the body textarea inline. Changes save when the field loses focus.
## Add a form or waiver step
Use this to make members sign a waiver or fill out a form as part of joining.
1. First create and **publish** the form under [/forms](/forms) (Forms & waivers). Only published forms can be linked.
2. In the **Onboarding** section, click **+ Form step**.
3. In the new step, use the **Select a form…** dropdown to pick the published form. Waivers are labelled `(waiver)`. The choice is stored as `form_id` on the step.
If there are no published forms yet, the step shows a prompt to create one first instead of a dropdown.
## Reorder steps
Each step row starts with a small number field — its `sort_order`. Type a new number and click away; steps re-sort by ascending order. Lower numbers run first. New steps are added with an order one higher than the current maximum.
## Toggle required and enabled
Each step has two checkboxes:
- **Enabled** — unchecked steps are hidden from the flow entirely.
- **Required** — the member cannot finish onboarding until every *enabled and required* step is completed.
Edge cases worth knowing:
- A member can only **skip** onboarding when no enabled step is required. If any enabled required step exists, skip is refused.
- A required `form` step is satisfied once a submission for the linked form exists for that member. If the linked form is missing or unpublished, the step is treated as non-blocking so a misconfiguration cannot lock members out.
## Delete a step
Only custom (`content`) and `form` steps show a **Delete** button, and only for admins. Built-in steps have no delete control — disable them instead. Deleting asks for confirmation and is permanent.
## Related
- [Onboard members](/docs/tutorials/onboard-members)
- [Invite links](/docs/how-to/invite-links)
- [Import members](/docs/how-to/import-members)