Skip to content

About

A new liveblogging and live coverage WordPress plugin for news events, with real-time updates, Slack ingestion, archive mode, and AI summaries. It is open sourced by Newspack as part of the Emergency Mode for News program, supported by Press Forward’s local news infrastructure initiative.

Topics

Resources

Contributing

Stars

3 stars

Watchers

1 watching

Forks

Latest commit

 

History

418 Commits

Folders and files

Repository files navigation

Newspack Rolling Coverage

Detail Value
Requires at least WordPress
Tested up to WordPress
Requires PHP PHP
Requires Node.js (to build) Node.js
License License
Stable tag (see package.json)
Changelog Releases
Optional integrations Newspack Ads (in-feed advertising), OneSignal (follow/push notifications), WordPress AI plugin + a provider (AI key takeaways)

Liveblog and rolling coverage of ongoing news events for Newspack.

Newsrooms need to move fast when news breaks. Rolling Coverage helps organizations publish near real-time updates for developing stories, sourcing entries from tools like Slack or from WordPress. Readers see critical updates as they happen, with no need to refresh, reload or pull down the page. Control stays with the editorial team: editors curate updates, pin vital information and turn major developments into standalone posts without pausing the live feed.

Rolling Coverage publishes a continuous feed of short, timestamped entries for each developing story. Entries are authored from a few well-known tools and delivered to readers in real time without a page reload. Rolling Coverage Blocks can be placed in multiple spots across a site — a post, a sidebar, a homepage marquee — with each placement configurable to show readers a tailored view of the same liveblog. Ending a liveblog locks its entries once an event concludes, and optional AI-generated summaries help readers stay oriented as the story grows.

For the technical reference (features, architecture, data model, REST API, and hooks) see .github/CONTRIBUTING.md.

Table of contents

Installation

  1. Build or download the plugin, place it in wp-content/plugins/newspack-rolling-coverage, and activate it.
  2. A Rolling Coverage menu appears in WP Admin.
  3. Create a liveblog, add or embed its block on a post, and optionally connect a Slack channel.

For local development:

composer install
npm ci
npm run build

Development

npm run build     # Production webpack build (cleans dist first)
npm start         # npm ci + watch
npm run watch     # Watch mode
npm run lint      # SCSS + JS + PHP + TypeScript
npm run lint:js   # ESLint
npm run lint:php  # PHPCS
npm run typecheck # tsc --noEmit
npm run fix:js    # ESLint autofix
npm run fix:php   # PHPCBF autofix

Notes:

  • PHP uses a Composer classmap over ./includes. After adding a new PHP file, run composer dump-autoload.
  • New feature classes must also be registered in Initializer::includes().
  • New webpack entry points must be declared in webpack.config.js; block entries are auto-discovered from block.json.
  • Coding standards: WordPress + VIP (phpcs.xml), extending newspack-scripts ESLint/Stylelint configs.

Testing

npm run test:php   # ./vendor/bin/phpunit

The PHPUnit suite lives in tests/ and runs against the WordPress test library. Install it with:

bin/install-wp-tests.sh wordpress_test root '' 127.0.0.1 latest

The suite covers ingestion, archiving, the entries REST/entries-view endpoints, restore/cleanup, the reader feed, Slack configuration/content/signature/webhook handling, push notifications, the taxonomy lifecycle, and theme FSE block integration. npm test runs tests/js/shared-poll-check.ts, which checks the view script's copy of the poll cursor rules against tests/fixtures/poll-cursor-cases.json; CI runs it too.

Release and versioning

  • Commits follow Conventional Commits (feat, fix, chore, docs, test, refactor, perf, ci, build, style, revert). Use npm run cm for an interactive prompt.
  • Releases run via semantic-release through newspack-scripts on the release branch; alpha, hotfix/*, and epic/* produce prereleases. trunk is development only.
  • The version is bumped in newspack-rolling-coverage.php (and package.json), translated strings are regenerated by the i18n workflow, and a distributable zip is built with npm run release:archive.
  • The distributable is filtered by .distignore (sources, tests, tooling, and developer docs are excluded; compiled dist/, includes/, languages/, and production vendor/ ship).

About

A new liveblogging and live coverage WordPress plugin for news events, with real-time updates, Slack ingestion, archive mode, and AI summaries. It is open sourced by Newspack as part of the Emergency Mode for News program, supported by Press Forward’s local news infrastructure initiative.

Topics

Resources

Contributing

Stars

3 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages