Livefeed adds live blogs to Drupal. Reporters post short updates with text, images and video, and readers see them appear without reloading the page. It is built for news coverage of events, elections, incidents and sports, on sites that are mostly served from a cache or CDN.
Readers get the first updates rendered on the server, then poll a small, cacheable JSON endpoint. That works behind any reverse proxy, without extra infrastructure. For updates within a second, enable the optional Pusher adapter. It works with Pusher or with a self-hosted, Pusher-compatible server such as Soketi.
Features
- Live updates without reloading. Polling every 20 seconds by default. The endpoint sends a public
max-ageand a cache tag, so a page cache or CDN can serve it to every reader. - Instant updates (optional). The Livefeed Pusher submodule signals readers' browsers to fetch new updates at once. It works with Pusher and with Soketi, and readers fall back to polling if the connection drops.
- Fast editing for reporters. A post form above the live blog with CKEditor 5:
- drag-and-drop uploads, with alternative text required for images
- YouTube and Vimeo links
- a highlight option and an adjustable publication time
- drafts
- inline editing and deleting, with conflict detection
- autosave of unsaved text
- Place it anywhere. Every live blog has its own page, and you can place it with:
- a Paragraphs paragraph type
- a block (block layout, Layout Builder and Canvas)
- a Drupal Canvas component
All three render the same output.
- Cache friendly. The page stays fully cacheable for anonymous readers; the post form and edit buttons are lazy builders. A closed live blog becomes a regular page with all updates.
- Accessible.
- New updates do not interrupt screen readers; readers who have scrolled down get a "new updates" button.
- The editor works with the keyboard alone.
- The highlight label is text, not only colour.
- Lightweight front end.
- Single directory components.
- Vanilla JavaScript; the polling script is under 8 kB.
- No frameworks, no jQuery, no external scripts in the core module.
- Responsive images, click-to-play embeds and videos without autoplay.
- SEO. schema.org
LiveBlogPostingstructured data, and a shareable link for every update. - Uses your site's media. Images, video files and remote videos come from your existing media types; upload limits come from those types. The module creates no roles, media types or fields.
Requirements
- Drupal 10.3 or 11, PHP 8.3 or higher.
- Core modules: Media, File, Image, Filter, Options, Text, Breakpoint, Responsive Image.
Submodules have their own requirements:
- Livefeed Paragraphs: Paragraphs. Inline Entity Form is optional: with it, editors create the live blog inside the paragraph.
- Livefeed Canvas: Drupal Canvas (Drupal 11.3 or higher).
- Livefeed Pusher: Pusher API 3.x, plus a Pusher account or a Pusher-compatible server.
Installation
Install as you would normally install a contributed Drupal module. For further information, see Installing Drupal Modules.
composer require drupal/livefeed drush en livefeed livefeed_paragraphs
Configuration
- Grant Post to livefeeds to your editorial role. Anonymous and authenticated users can view live blogs by default.
- Review the settings at Configuration » Content authoring » Livefeed:
- polling interval
- how the author is shown (nothing, the user name or a fixed name such as "Newsroom")
- which media types reporters may add
- Create a live blog at Content » Livefeeds, and place it with a paragraph, block or Canvas component.
- When the event is over, set the live blog to Closed.
For instant updates, enable Livefeed Pusher and configure Pusher API in settings.php. For a self-hosted server, enter its host and port in the Livefeed settings. The README describes a local setup with Soketi in DDEV.
For developers
- Render a live blog anywhere with the
livefeedrender element:['#type' => 'livefeed', '#livefeed' => $livefeed]. - React to changes with the
livefeed.post.changedevent. - Change what push adapters send with
hook_livefeed_push_payload_alter(). - Override the components from your theme, or adjust the colours with CSS custom properties.
- Design decisions are documented in
DECISIONS.md.
Similar projects
Liveblog is an earlier live blog module for Drupal. Livefeed takes a different approach:
- dedicated, lightweight entities instead of nodes
- cache-friendly polling as the baseline, with push as an option
- placement through Paragraphs, blocks and Canvas
The data model is kept migration-friendly, and a migration path is planned.
Ask your assistant about Livefeed
Check compatibility with your Drupal and PHP version, maintenance and security coverage, from current release data. How it works
Depends on
Dependencies of the latest stable release
No dependencies recorded for this project.
Required by
Tracked projects that depend on this one
No tracked projects depend on this one yet.
Activity
Releases
| Version | Type | Core | PHP | Release date | |
|---|---|---|---|---|---|
| 1.0.x-dev | Dev | 10–11 | PHP 8.3 | Oct 14, 2026 |