gotta store my records
README.md

crate_web #

Internal package of crate. Not published to Hex.

Lustre SPA (javascript target): login and shelf CRUD. Talks only to the server BFF, never directly to a PDS. Built and bundled into server/priv/static/ by make build.

See the root README for build, run, and test instructions.

Where browser behavior lives #

Three tiers, in order of preference: CSS for pure presentation (animation, transitions; reduced-motion is handled centrally in css/90-interaction.css, never re-decided in JS). Gleam for all logic and policy (math, thresholds, decisions; if it is testable without a browser it must be reachable from gleam test). ffi.mjs only for irreducible browser primitives (DOM handles, timers, camera, wasm); each export stays a dumb binding with no policy in it.