The Almanac (Stax Edition II1) is a printed wall calendar — 18×24 in letterpress, 12 spreads, 250-unit run. Per the Editions drop-house charter §62 every capsule ships a software component, and the original spec named that component an "Apple TV app + iOS/iPadOS companion." This week, that posture got broadened.
The change. The Edition II software is no longer a tvOS app shipping through the App Store. It is a universal web page at https://stax.dev/almanac/display/ that runs on any HTML5-capable screen via the casting/mirroring path the screen already supports.
Why. A tvOS-only deliverable would have locked the Almanac's ambient-information substrate behind one vendor's SDK, one App Store review queue, one device family, and one $99/yr developer-program renewal. The Daily-Page essay3 makes the architectural argument that ambient-information surfaces are the wall calendar's real product; the substrate, not the platform, is the load-bearing element. Putting the software component behind Apple's gatekeeper would have inverted that doctrine. The web is the substrate the modern household's screens all share.
What shipped
Three files at /almanac/display/:
index.html— single-file orchestrator. Inline<script>loads
figures.json, renders one figure at a time into a full-bleed layout, rotates every 90 s via crossfade. URL fragments (#month=apr) override for testing or "lock to this figure" use.
almanac.css— viz-only CSS. Stax palette (Charter / Inter /
JetBrains Mono) reproduced inline so the page is self-contained; no @import to the main stax.css. Quarter-coded accent color swap (oxidized blue / brick red / olive / charcoal) per the letterpress §3 quarter palette.
figures.json— the 12 figures as open data: name, era, event
date and day, cause-graph nodes (flow → bottleneck → risk → lineage → lesson), pull-quote, source citation. Forkable; anyone may build a 2028 Almanac with their own selection using the same schema (per the Almanac spec §9 reproducibility posture).
Total transferred page weight: ~12 KB gzipped. Well under the 100 KB budget the spec called for (this is display content; it must load on slow TV browsers).
How owners cast it to their TVs
The whole point of the platform-agnostic posture is that the cast path is the owner's choice, not Stax's. The matrix:
| TV platform | Cast path | |-—|-—| | Apple TV | AirPlay-mirror from Mac or iPhone Safari to Apple TV; open https://stax.dev/almanac/display/ in Safari first. | | Chromecast / Google TV | Open page in desktop Chrome → cast tab → select Chromecast. | | Samsung Tizen smart TV | Open the built-in browser → navigate to the URL → leave it. | | LG webOS smart TV | Same — the LG browser is Chromium-based on modern firmware. | | Sony Bravia (Android TV) | Same — built-in Chrome works directly. | | Roku | Use a Roku Web Browser channel (Chromium-based; works for static content like this). | | Laptop kiosk-mode | chromium --kiosk https://stax.dev/almanac/display/ — works as a desktop ambient screen. | | Raspberry Pi + HDMI display | Same kiosk mode against the URL. |
No platform-specific code path. No tvOS Xcode project, no Tizen .wgt package, no webOS IPK, no Roku channel manifest, no app store review. The owner installs nothing.
Hard constraints honored
- No framework. HTML + CSS + vanilla JS only.
- No CDN. Everything self-contained at
/almanac/display/. - No analytics, no telemetry, no third-party scripts. The page
fetches one file: its own figures.json. Nothing else.
- No service worker. This is a passive display, not a PWA. The
surface is intentionally narrow.
- AGPL-3.0 licensing per the Editions charter §12 legal posture.
- Existing Stax palette and typography only. No new design tokens.
Honored device-preference signals
prefers-color-scheme: darkswaps the palette to parchment-on-charcoal
(the Charter / Inter / JetBrains Mono stack is preserved; only the hex values flip). The 22:00–06:00 hours additionally drop brightness to ~78 % via a CSS filter on the root, transition 30 s, so the display fades into a dark living room without a glow.
prefers-reduced-motion: reduceremoves the 900 ms crossfade —
transitions become instantaneous swaps for accessibility-affected hardware.
Atlas integration
A new node kind, software, joined the Atlas. The Almanac Display node is its first inhabitant. Two new edges:
edition/ii-almanac — companion-of → software/almanac-displaysoftware/almanac-display — instantiates → essay/daily-page-as-computation
These wire the universal display into the Edition II capsule and trace its thesis to the Daily-Page essay, where the ambient-information argument is made in full.
What's next
The display is idle-surface, not control-surface. There are no interactive elements; the page exists to live in someone's peripheral vision for 30 days at a time. That is the discipline; the obvious next moves all respect it:
- Line-art portrait illustrations. The Almanac spec §5 commissions
twelve illustrations from a single illustrator; until those land, the display uses a typographic-only placeholder (a monogram centered on rule-lines with a PORTRAIT — LINE ART PENDING byline). When the printed Almanac ships, the same line-art SVGs replace the placeholder on this page.
- Internationalization. The current strings are English-only;
figures.json is structured to allow a per-language overlay file without changing the renderer.
- A
#month=currentalias for owners who want the URL to always
resolve to today's month even after a TV reboot. (Today the default already does this if no fragment is set.)
Status: shipped. The display is live at the public URL; the Edition II capsule's software component is fulfilled.
spec the display renders.
(Almanac as Edition II), §12 "The legal posture." Local path: ~/codex/methods/stax-editions-drop-house-charter.md.
2026-05-15. The thesis the display embodies — that ambient information surfaces outperform active dashboards for sustained, low-effort, household-scale knowledge transfer.