# questions (redoal.com) The content behind [redoal.com](https://redoal.com) — a second face of the same [portal](https://project.uhhm.no/uhhm/portal) question engine that serves uhhm.no. Every page is a YAML file under `questions/`; pushing to `main` lints and then tells every running portal instance to hot-reload. The full schema reference lives in [uhhm/questions' README](https://project.uhhm.no/uhhm/questions) — this repo only notes what's distinctive here: - **`site.yaml`** rebrands the instance: title `redoal`, its own wordmark, and a `module` hero — `hero.js` in this repo, the drifting "sine swings" band grown from lysbue's logo (pure SVG + CSS, colors from portal's own custom properties, still under prefers-reduced-motion). No input up there: the form's gesture canvas below is the one place a visitor draws. The wordmark is white-stroked like uhhm's, because portal's light theme lands wordmarks as ink via an invert filter. - **`type: gesture`** on `index.yaml`'s "Draw a path and see who's near" — the pseudo edition of the network: draw a path, it becomes a real 20-byte gesture key (computed by the relay with the canonical Rust pipeline), and the submitted answer stores `{points, key}` in the `redoal_gestures` bucket. Marked `optional: true` deliberately: the widget's hidden input is invisible to HTML required-validation. - **`gitea_releases`** on "Our Composition" — advertises redoal/redoal's releases. The jq filter pins `url: null` while that repo is private (a private release's html_url 404s for anonymous visitors); flip it to `.html_url` if the repo ever goes public. - **Bucket names are `redoal_`-prefixed** (`redoal_gestures`, `redoal_subscribers`): both portal instances share one NATS JetStream, and bare names would collide with uhhm's buckets. This repo also runs the redoal.com instance itself: `.gitea/workflows/deploy.yml` pins `PORTAL_RELEASE` to a release tag on uhhm/portal — bump the pin and push to upgrade (or revert to roll back), and the workflow ships the artifact, rewrites the env from this repo's Actions variables/secrets, restarts `app@redoal-portal`, and refreshes the Caddy route. Content edits never need a deploy; they hot-reload live. Lint locally before pushing: ``` /srv/app/redoal-portal/current/question_lint --path questions ``` (or from a portal checkout: `cargo run --features ssr --bin question_lint -- --path /questions`)