Live previews loop on their own (slower than the detail pages). Click a card for the full view, timeline, and extra metadata.
API
frame() yields indexed frames; compose() reduces them with access to running totals via current.
1import { frame, compose } from "rezem";23// frame: async iterable of outputs per input — order preserved4// compose: fold that stream with a reducer and initial state5const frames = frame([1, 2, 3, 4], async (n) => ({6 output: { value: n, squared: n * n },7}));89const result = await compose(10 frames,11 (acc, frame) => {12 acc.sum += frame.output.squared;13 return acc;14 },15 { sum: 0 },16);17