syntaqxEach part of a page can say it failed, in its own place: part() (lib/partial.ts, replacing f1687c9a's soft()) reads a part beside what a page is about and keeps a failure (a service that did not answer, or answered with a 5xx) as { failed: true, what } instead of throwing, so the page can tell a part that failed from one with nothing to show and put Unavailable beside it, the way a form puts an error beside its field. A refusal or a 404 is still an answer. orElse() is for a part that can quietly do without. Unavailable has a compact one-line form for a sidebar card or a count's place. Checked: apps/web tsc -b; node --test app/lib/partial.test.ts.704e654History