Bendik Aagaard LynghaugandClaude Opus 5 4e5ac9ceb7
Lint and reload / lint (push) Successful in 2s
Lint and reload / reload (push) Successful in 0s
The Atelic Antics poster, and the run it actually has
The poster goes under the exhibition question as a slideshow slide —
989×1400 webp, 85K, sized to the "around 1400 pixels tall is plenty"
the content reference asks for.

It also settles a date this page had wrong. The poster runs 24.10 to
15.11; the event here said `duration: 31d` from the 23rd, which reaches
23 November. The header announces the exhibition for as long as the
event window lasts, so that would have kept inviting people to a closed
room for eight days. It is 23d now, and the opening hours the poster
gives — Saturdays and Sundays, 13:00 to 17:00 — are on the feature that
tells people when to come.

The 23rd at 19:00 stays as the start: that is the opening, and the 24th
is the first day the doors are open to everyone else.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ByshXuDEzH8hXh5qp4VgGk
2026-10-16 10:52:11 +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
275 KiB
Languages
JavaScript 96.1%
CSS 3.9%