The Newsroom Design Lab
A finding says what is wrong. The lab shows what right could look like. Built 11 to 13 October 2026, it is four SGit vaults, each a self-contained app, that try the fixes from the newsroom review on the real newsroom data (a byte-faithful snapshot of 73 articles), in three design directions each, so that a direction can be chosen by looking rather than by arguing. Nothing in the lab changes the live site.
Every view in the lab says which step of the reader's path it moves them to: arrive through a link someone sent, read and rate, come back, ask, act.
Three directions
A direction is a different design, not a recolour: different hierarchy, type, density and interaction, over the same data. Every vault has a switch in its top bar, and a Compare view that shows all three at phone width.
A · Broadsheet
A serious publication. Editorial hierarchy, one lead, a named author with a stated purpose.
Serif headlines, warm paper, rules between columns, kickers, restrained colour. FT / Guardian long-read feel.
B · Briefing
Answers first. Every unit opens with the news in two sentences, then labelled blocks: the news, our view, the evidence, room for disagreement.
Sans, compact cards with reading time and format, bold labels, one accent colour. Semafor / Axios feel.
C · Your desk
The reader's own newsroom. The persona is the front page; the board, highlights, notes and questions are first-class.
App-like: left rail, side column, chips and progress. Readwise / Arc feel.
The same screen, three ways
Screenshots at phone width (390 px) from the published vaults, rendered from their own snapshot with the network off. Tap one for the full page.
The first phone screen, today against the proposal
Arrive: does a stranger know in one screen what this is?. Route first-screen in Front page & personas.
The front page as the neutral persona
Arrive: lead, doors and desks instead of 59 screens. Route front in Front page & personas.
The founder mini-site
Arrive through a persona link: story, note, start here, sections. Route persona/founder in Front page & personas.
An article, reordered
Read: short version first, byline that says how it was made. Route article/hope-or-enforcement in Article & reader primitives.
Feedback that starts empty and reaches someone
Rate: unselected scales, consent, a receipt. Route feedback in Article & reader primitives.
The reading board
Return: New, Reading, Follow-up, Done. Route board in Article & reader primitives.
A desk page: start here, series, the rest
Find: a way in chosen by audience. Route desk/security in Findability.
Search with the filters in the address
Find and share: every result set is a link. Route search in Findability.
The four vaults
Each opens read only in the vault host, with a published read key. A read key is derived one way from a vault key the publisher holds; publishing it grants reading and nothing else.
The lab 3bf2p46v
The brief, the three directions, the map from review to prototype, the decisions, the reviews.
Read key and clone command
Read only. Derived one way from a vault key the publisher holds; it cannot become write access.
sgit clone sgit_public_read_b7d938b9d9c57853ed28015309f0c7ff5537da9667bf4b4da16688df892e7297:3bf2p46vFront page & personas m1m66ace
First visit; a publication with a heart; the purpose page; publication and workshop; personas as the core primitive; the founder mini-site.
front first-screen personas persona/founder purpose masthead menu
Read key and clone command
Read only. Derived one way from a vault key the publisher holds; it cannot become write access.
sgit clone sgit_public_read_47f49bdabb39be07282e69f4f88cb1323ebb9c94875f7f626bff62d8e70502ea:m1m66aceArticle & reader primitives vdcj8hpl
The article page reordered; the short version first; the side column; highlights and notes; ratings that start unselected; ask the article; the reading board; the reader's record.
articles article/hope-or-enforcement feedback ask board record
Read key and clone command
Read only. Derived one way from a vault key the publisher holds; it cannot become write access.
sgit clone sgit_public_read_4b40a9541792eeb2052ccdcc425e14ebcb739438b66b463044856648fd6bad78:vdcj8hplFindability xvq3z35u
Five desks by audience; 42 controlled tags from 339 raw ones; 11 series with part numbers; linkable search; reading time and format on every card; the Librarian's audit.
find desks desk/security series tags search archive cards catalogue-audit
Read key and clone command
Read only. Derived one way from a vault key the publisher holds; it cannot become write access.
sgit clone sgit_public_read_2d4ca142def8d0e089fcddcf5b7ef529ec01d8152d7553c7605bf0100cba4c56:xvq3z35uFrom finding to prototype
Each finding in the register that a prototype answers, with the finding's status on the live site. A prototype existing does not make a finding fixed: only the live site can do that.
| Finding | Status on the live site | Prototype |
|---|---|---|
| UX-001 The first phone screen explains how the site is built, not what it is about | Open | Front page & personas first-screen |
| UX-002 The home page is 59 phone screens long, with 845 links | Open | Front page & personas front |
| UX-024 All three rating scales start on 3 | Open | Article & reader primitives feedback |
| UX-025 Ratings never reach the author | Open | Article & reader primitives feedback |
| UX-044 The founder page says "the picks above" and no picks render on a phone | Open | Front page & personas persona/founder |
| UX-009 Two navigation bars, and a 60-link menu that mixes reading with building | Open | Front page & personas menu |
| UX-013 One topic holds more than half the articles | Open | Findability desks |
| UX-014 Tags are not links, and there are no tag pages | Open | Findability tags |
| UX-015 Filters cannot be shared | Open | Findability search |
| UX-016 Series are invisible | Open | Findability series |
| UX-017 There is no "start here" path | Open | Findability desk/security |
| UX-018 Cards do not show reading time or format | Open | Findability cards |
| UX-020 The best reader feature is buried under metadata and a long italic abstract | Open | Article & reader primitives article/hope-or-enforcement |
| UX-022 The byline names one human; the AI authorship is in the footer | Open | Article & reader primitives article/hope-or-enforcement |
| UX-023 There is no page that says why the publication exists | Open | Front page & personas purpose |
| UX-027 Articles join the reader's list without being asked | Open | Article & reader primitives feedback |
| UX-043 Opening a persona link adds it to the browser without asking | Open | Front page & personas personas |
| UX-045 Persona pages are a list, with no story, opinion or next step | Open | Front page & personas persona/founder |
| UX-005 The version number is shown three times on the first screen | Open | Front page & personas front |
| UX-006 A "For agents /llms.txt" strip sits above the masthead | Open | Front page & personas front |
| UX-019 Search only matches titles, teasers and tags | Open | Findability search |
| UX-026 There is no way to say what was missing | Open | Article & reader primitives record |
| UX-031 "You pay the price" reads as a warning | Open | Article & reader primitives feedback |
| UX-049 Query strings break inside the vault host, so filters must live in the route path | Open | Findability search |
| UX-052 A highlight across paragraphs is cut at the first paragraph | Open | Article & reader primitives article/hope-or-enforcement |
| UX-053 Search results show no snippets | Open | Findability search |
| UX-054 Stacked tables on a phone lose their column labels | Open | Findability catalogue-audit |
| UX-055 "Ask the article" has never run against a real on-device model | Open | Article & reader primitives ask |
| UX-028 The £5.00 balance chip has no label | Partly fixed | Front page & personas first-screen |
| UX-003 The masthead line describes a method, not a subject | Fixed | Front page & personas masthead |
| UX-004 The edition label is older than the articles under it | Fixed | Front page & personas front |
The decisions it exists to settle
The lab's hub vault lets the editor pick one option per decision, kept in the browser and downloadable as JSON. These are the questions, as the lab asks them.
- Which direction should the live front page take? Everything else follows from it: type, density, how much the reader's own data shows.
- Which masthead line names the heart? The tagline today describes a method, not a subject.
- How many doors on the first screen? Three is easier to choose from; five covers everyone you send links to.
- What opens every article? Readers have three minutes on a phone; the median article is about 4,500 words.
- How should a rating reach you? Today it stays in the reader's browser unless they send their whole reading.
- Desks by audience or by subject? Topics today overlap and one holds 38 of 73 articles.
- Ship the reading board in the first release? It gives a returning reader a reason to come back, and it is the most app-like piece.
What building the lab measured
Building apps that run inside the vault host turned up failures that are not about the newsroom at all: they are traps in the platform, and in the lab's own prototypes. They are in the register like any other finding.
- Setting location.hash inside a vault app re-navigates the frame: every link silently dead
- localStorage throws inside the vault app frame, so reader data is lost on reload
- A vault app can load images and scripts from a site but cannot fetch its data
- Query strings break inside the vault host, so filters must live in the route path
- A highlight across paragraphs is cut at the first paragraph
- Search results show no snippets
- Stacked tables on a phone lose their column labels
- "Ask the article" has never run against a real on-device model
- File-path pills scrolled the whole page sideways at 390 px
- Re-rendering the whole view on every save lost the reader's place
How it is built
A shared kit (v0.1.3, vendored into each vault): native web components with no framework, a bundler that packs each app into one index.html (the vault-app contract), an escaping template every view renders through, a router that never assigns location.hash inside the host, a reader store that uses the host's sg.state because the frame refuses localStorage, and a release gate that renders every route in every direction at 390 and 1280 px and fails on any page error, any colour outside the theme file, or any sideways scroll on a phone. Built by a lead with an architect agent and three developer agents, one vault each.
Reader data in the prototypes stays in the browser. Every "send" button is simulated, and says so, showing the receipt the real encrypted append lane would give.























