Why we publish this
Most publications hide their editorial workings. They are unaware of the stories not yet pursued, the pitches that died for lack of source access, the pieces that took longer to land than expected. We publish ours because the same logic that requires us to show our funding line by line and log every correction also requires us to show what we are working on.
The trade-off is real: a reader can see that a draft has been sitting unfinished for 19 days; a competing publication can scrape our pitch list. We accept those trade-offs. The alternative is the polished surface most newsrooms present, which does not match the actual conditions inside any newsroom.
If you find that a story we have flagged as “in review” has been sitting for a month, send feedback. We will either ship it or spike it.
The Dashboard
The /dashboard/ page is the at-a-glance view, top to bottom:
Stats row
Seven cells: total articles, plus the count in each editorial state (Pitched, Drafting, In review, Scheduled, Published). A “needs attention” cell appears when the alerts panel below has anything to flag.
Production pulse
A 12-week sparkline showing articles published per ISO week. Hover any bar for the count. Use it to see whether output is steady, accelerating, or dropping.
Needs attention
Auto-hidden when there’s nothing to flag. Surfaces four classes of problem:
- Drafts more than 14 days old — pieces in our pipeline that have not moved. Either we ship them or spike them.
- Recent corrections — articles that received a correction in the last 30 days. We want this list visible to ourselves and to you.
- Fast sections, stale — News, Opinion, or Politics articles whose
lastUpdatedis more than six months old. Time-sensitive coverage that may need a refresh. - Broken response chains — articles that link back to a piece they were responding to, where the original is no longer on the site. The link is dead and we know it.
Section coverage
Per-section grid showing the last published date and counts in the last 14 and 90 days. Sections with no publication in 14 days are flagged amber; sections with nothing in 90 days are flagged red. We publish the flag because dormant sections deserve scrutiny.
Next 14 days
A strip showing what we have queued for publication over the next two weeks. If a date has multiple pieces stacked, the day-cell shows the count and lists the titles.
Per-author scoreboard
Per-contributor stats: articles published, drafts in flight, lifetime words, average length, last published date, recent titles. Sorted by lifetime words. The drafts-in-flight column is operationally interesting because it shows what each writer has unfinished in our pipeline.
Articles by section / Projects / Library / Infrastructure
Reference counts. Useful for confirming nothing has silently disappeared, and for the kind of “what does this publication have on file” question that people sometimes ask.
Active assignments
Articles with a specific writer assigned, not yet published, with due dates. Overdue pieces sort to the top.
The Editorial Board
The /editorial/board/ page is the kanban view. Six columns, left to right:
- Pitched — captured ideas, no draft yet
- Drafting — being written
- In Review — being edited
- Scheduled — approved, future date
- Published — live (recent first)
- Spiked / Held — killed or held indefinitely (muted)
Each card shows: section badge, title (linked), author, days in current column, word count, due date when set, editor / reviewer when assigned. Cards in active columns get a coloured dot when they have been in the column too long: amber after 7 days, red after 14 days. Spiked cards include the reason the piece was killed; we keep them visible as institutional memory rather than deleting.
Above the board, a 7-day strip shows what is scheduled this week. The toolbar lets readers filter by section, author, “stuck only”, or “overdue only”, and toggle a swim-lane view that re-sorts cards by author within each column.
At the bottom of the page, a collapsible Recent edits panel surfaces the 30 most recent commits to article files. Hash, message, author, date. This is the same data git log would give us, exposed to readers because it should be.
How a piece moves
An article moves through six states. The state is set by the writer or editor in the article’s front matter (the metadata at the top of each Markdown file).
| From | To | Trigger |
|---|---|---|
| Pitched | Drafting | Writer starts the draft |
| Drafting | Review | Writer hands off to an editor |
| Review | Scheduled or Published | Editor approves |
| Scheduled | Published | Date passes (automatic) |
| Any | Spiked | Editor kills or holds the piece, with a reason |
A future publish date always reads as “Scheduled” regardless of explicit status, so a piece with a publish date set for next Tuesday automatically slots into the Scheduled column even while we are still polishing it. On Tuesday, it auto-flips to Published.
What the alerts mean
The dashboard’s “Needs attention” panel is not aspirational; it is operational. Each row in each sub-panel represents a specific failure mode we want to see:
- Drafts > 14 days: editorial drift. A piece sitting unfinished for two weeks usually means either the source access fell through, the writer’s priorities shifted, or the editor forgot to send a follow-up. We want all three visible.
- Recent corrections: stays visible for 30 days after a correction is filed. Not a punishment, an audit. Patterns in this list are worth noticing — if a single section produces more corrections than the others, sourcing practices in that section need a hard look.
- Fast sections, stale: News and Opinion pieces age fast. A piece labelled “current” in our archive that was last updated six months ago is no longer current. Either we update it or we add a note saying when it was last verified.
- Broken response chains: an article with
inResponseToset, where the original target no longer resolves. Often indicates a renamed URL we forgot to update; occasionally indicates that the piece we were responding to was retracted by its publisher.
What this isn’t
- It isn’t a real-time view. The dashboard rebuilds whenever we push to the repository, typically within a minute. If you reload and see the same numbers, no one has pushed.
- It isn’t comprehensive. Pieces being drafted in private notes, or pitches that have not yet been entered, do not appear. The board only shows what has been committed to the repository.
- It isn’t a queue you can affect directly. You can send feedback on any piece, including those in the pipeline, but you cannot move cards from the outside.
- It isn’t every kind of metric. We do not publish reader analytics, tip totals per author, or comment-moderation queues here — those are private. The Dashboard is editorial state, not reader behaviour.
Related
- Transparency hub — everything we make public about how this site works.
- Corrections log — every correction ever filed, dated, with the original article linked.
- Costs — line-by-line accounting of what it costs to run this publication.
- Editorial ethics — the standards that govern what does and doesn’t get pitched.
- Changelog — everything we have shipped and changed.