Bendik Aagaard LynghaugandClaude Fable 5.1 33724567b4
Lint and reload / lint (push) Successful in 2s
Lint and reload / reload (push) Successful in 1s
What you can make with redoal, and how far each piece is
A new page, /create, answers the one question the front page kept
hinting at: what can be made here. Three paths - drawing your way in,
teaching a place a behaviour, carrying a piece of the network - each a
list of short cards cut to one measure: what a thing is, then where it
stands, running, landing on the phone next, or planned, with the accent
saying the same. The pulse and the releases keep themselves current.

The front page's informational alternative now says one thing and
hands over to /create with a Learn more link.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MznPTC31w5mSUK4XMehcpi
2026-10-19 12:00:29 +02:00
2026-08-30 15:17:26 +02:00

questions (redoal.com)

The content behind redoal.com — a second face of the same 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 — 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, lysbue's "paths" paint worklet brought back and animated: 47 generative turning-function curves (paths.js, seeded so every repaint agrees) tracing themselves in from the center. A real CSS Paint Worklet where the API exists (paths-worklet.js, driven by a registered --redoal-t CSS animation), a canvas with the same generator elsewhere; colors from portal's custom properties, frozen 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 <this repo>/questions)

S
Description
No description provided
Readme
285 KiB
Languages
JavaScript 96.1%
CSS 3.9%