Newsroom publishing system

The newsroom, from first draft to front page.

A publishing system we build and run for newsrooms: every story moves from the reporter to the reader through clear stages, and the pages stay fast when the news breaks.

Section AThe front page

One system behind every part of the front page

The breaking banner, the lead story, the live blog, the opinion column and the correction under a story are all written, checked and published in the same place.

Morning edition The Example Daily Updated 09:42

Breaking Example headline: a developing story, updated as it happens 09:42

A news desk in the morning light Photo: staff photographer

Local

Example lead headline, set large across the top of the page

A short summary under the headline, written by the desk to tell the reader what happened and why it matters.

Opinion

An example column title in the writer's own voice

Gallery

Example gallery headline

Video

Example video report headline

Business

Example business story headline

Correction An earlier version of this story gave the wrong date. It was corrected at 11:05

An example front page. Every headline, name and time on it is a placeholder.

Section BThe workflow

Nine stages, and everyone can see where a story is

A story never waits in someone's inbox. It sits in a stage, with a name on it, and it moves only when the person allowed to move it does.

  1. 01DraftThe correspondent or writer works on it
  2. 02SubmittedSent to the desk
  3. 03In editAn editor shapes it
  4. 04Legal and fact checkOnly when a story needs it
  5. 05ApprovedThe editor-in-chief signs off
  6. 06ScheduledThe publisher sets the time
  7. 07PublishedOn the site, in the feeds and in the apps
  8. 08Updated or correctedWith a visible correction note
  9. 09ArchivedKept, searchable and still linked

Filed2

Draft

Example story filed from the field

61Location

Correspondent

Submitted

Example report waiting for an editor

Writer

On the desk2

In edit

Example feature, headline being rewritten

Editor

Legal and fact check

Example investigation under legal review

Desk editor

Ready3

Approved

Example interview approved for the site

Editor-in-chief

Scheduled

Example analysis for the evening

18:00

Publisher

Embargo

Example report held until the embargo lifts

06:00

Publisher

Live2

Published

Example headline on the front page

Publisher

Corrected

Example story with a correction note

Desk editor

Archive1

Archived

Example story from last year, still found by search

An example board. Every headline on it is a placeholder.

Section CRoles and permissions

Who does what, and who is allowed to

Every account has a role, and every role has the rights its job needs and no more. A contributor can write; a contributor cannot publish.

Role File a story Edit Review Approve Schedule and publish Correct after publishing
Correspondent / reporterFiles text, photos, video and the location from the field Yes Own stories only No No No No
Writer / editorWrites and edits stories for a section Yes Yes No No No No
Desk editor / copy editorReviews, tightens and checks every line No Yes Yes No No Yes
Editor-in-chiefApproves what the paper publishes No Yes Yes Yes No Yes
PublisherSchedules, publishes and places stories on the page No No No No Yes Yes
ContributorWrites for the paper from outside the newsroom Own stories only No No No No No

YesOwn stories onlyNoThe defaults we start from. Each newsroom sets its own.

Every change is written down

Who changed what, and when, is kept for every story: the headline before and after, the photo that was swapped, the minute it went live. Any two versions can be compared, and any earlier version restored.

History of one example story

  1. 08:40CorrespondentFiled the story with six photos, one video and the location
  2. 08:52EditorRewrote the headline Example first headline Example sharper headline
  3. 09:05Copy editorCorrected two names and a figure
  4. 09:18Editor-in-chiefApproved
  5. 09:30PublisherPublished and sent a push notification
  6. 11:05Desk editorCorrected a date and added a correction note

Section DThe content

Everything a newsroom publishes, in one place

Each kind of story has its own form and its own page, and all of them share the same authors, sections, tags and workflow.

  • Articles

    Headline, summary, body, photos and captions, with the author and the section.

  • Breaking-news banner

    Raised across the whole site from one switch, and taken down the same way.

  • Live blogs

    Short timed updates on one page, newest first, from several reporters at once.

  • Galleries

    Photo stories with a caption and a credit on every picture.

  • Video

    Reports and clips with a poster frame, placed inside a story or on their own.

  • Opinion columns

    Set apart from the news, with the writer's name and picture.

  • Author pages

    Every writer has a page with a short biography and everything they have written.

  • Sections and tags

    Each story sits in one section and carries the tags that link it to others.

  • Related stories

    Chosen by the editor or found by tag, at the end of every article.

  • Arabic first, and other languages

    Right-to-left layout, Arabic type and dates built in from the start, with each story able to carry its translations.

Section EPublishing

On time, under embargo, and everywhere at once

A story goes out at the minute it was set for, and in the same moment it reaches the search engines, the feeds, the social networks and the readers' phones.

  • news-sitemap.xml

    Google News sitemap

    Stories from the last two days, listed the way Google News reads them, updated on every publish.

  • "@type": "NewsArticle"

    Structured data

    Headline, author, dates, section and image marked up on every article, so search shows it as news.

  • /rss/section.xml

    Feeds for every section

    One feed for the whole paper and one for each section, for readers and for partners.

  • og:image · twitter:card

    Social cards

    The picture, headline and summary a link shows when it is shared, set by the editor.

  • web push

    Push notifications

    Sent by the publisher to the readers who asked for them, never by accident: the story has to be live first.

There is no separate AMP copy to keep in step. The regular page is built to be light and fast, so one version of each story serves every reader.

Section FSpeed and infrastructure

Fast on a quiet day, and still fast when the news breaks

When a big story breaks, readers arrive all at once. The system is built so that almost none of them wait for the database.

  1. Readers Everyone opens the same story
  2. Nginx Microcache of every published page Served from the cache
  3. PHP-FPM One request builds the page again
  4. Redis Sessions, queues and cached queries
  5. Database Stories, authors and history

Publish or correct the story, its section and the front page are purged from the cache at once

CDN photos resized once to WebP and AVIF at the widths each screen needs

  • Published pages come from the cache

    Nginx keeps each published page for a short moment and hands the same copy to every reader who asks in that moment. The reader gets a finished page; PHP and the database are not touched.

  • Only one request goes through

    When the copy expires, one request is let through to rebuild it while everyone else is served the previous copy. However many readers arrive at once, the page is rebuilt once, not once for each of them.

    fastcgi_cache_lock on; fastcgi_cache_use_stale updating;
  • Publishing clears the right pages

    The moment an editor publishes, updates or corrects a story, the cached copies of that story, its section and the front page are dropped, so the next reader sees the new version.

  • The newsroom stays quick

    Editors work outside the cache, on PHP-FPM with Redis beside it. Because readers are served from the cache, a spike on the site does not slow down the people writing it.

Measured on our own servers

< 20 ms The first byte of a page, from our server, measured on the server itself with encryption included.

The rest of the time is the distance between our servers in Germany and you. That part depends on where you are, so measure it from your own connection.

Measure it from your connection

Tell us how your newsroom works

How many desks and languages you publish in, where your reporters file from, and what you run on today. We quote the system after one conversation about it.