Skip to main content
drupalreleases
Release: Cms 2.2.3 — Update released for Drupal core (2.2.3)! Release: Libraries API 4.2.1 — Minor update available for module libraries (4.2.1). Release: Menu Link Attributes 8.x-1.10 — Minor update available for module menu_link_attributes (8.x-1.10). Release: Menu Link Attributes 8.x-1.9 — Minor update available for module menu_link_attributes (8.x-1.9). Release: Menu Item Extras 3.2.0 — Minor update available for module menu_item_extras (3.2.0). Release: Layout Paragraphs 2.1.4 — Minor update available for module layout_paragraphs (2.1.4). Release: PhotoSwipe - Responsive JavaScript Modal Image Gallery 5.0.11 — Minor update available for module photoswipe (5.0.11). Release: Search API attachments 10.0.13 — Minor update available for module search_api_attachments (10.0.13). Module Revived: Libraries API 4.2.0 — Module libraries updated after 11 months of inactivity (4.2.0). Security Coverage: Component Library — Module component_library now has official Drupal security advisory coverage.

GTFS Display

10 sites Security covered Drupal 10–11

Part of the Gtfs ecosystem · 8 projects

View on drupal.org

This module displays real-time transit information from GTFS data on public information screens. It allows you to configure what information is shown, for which stops or routes, and offers features like offline resilience and staff annotations. The system is designed to be lightweight and bypass site theming for efficient display on various hardware.

Public information screens driven by GTFS data. GTFS Display renders live departures, service alerts, vehicle positions and staff annotations for any GTFS entity — one stop, a route, an agency, or a whole system — on hardware that is usually old, usually unattended, and often on a network that comes and goes.

Features

  • Display contexts. A configuration entity addresses a screen: what it shows, which entities, which variant, and how often it refreshes. Contexts deploy through configuration sync like anything else.
  • Variants. A skin and behaviour flag — lcd, eink, mobile — rather than a Drupal theme. Agency modules register their own, and the display shell attaches the matching library.
  • Annotations. Staff can attach a note to a stop, or substitute one entity for another, scoped to particular displays and to particular hours of the week.
  • Offline resilience. A service worker keeps the last good data on screen when the network drops, instead of showing an error to the street.
  • Coverage reporting, so you can see which entities have a display and which do not.
  • Displays render anonymously and bypass site theming, so a kiosk needs no session and inherits none of your front-end weight.

Requirements

GTFS Core 3.x, GTFS Realtime 2.x, and Office Hours.

Installation

composer require drupal/gtfs_display

Configuration

Displays are managed at Administration › GTFS › Displays (/admin/gtfs/display),
annotations at /admin/gtfs/display/annotations, and coverage at
/admin/gtfs/display/coverage.

Building a skin

Agency-specific appearance and behaviour belong in your own module, not in a fork of this one. Register a variant, declare a library, and the shell attaches it. The polling store, the merged data model and the REST plumbing are shared; a skin supplies templates and CSS. DEVELOPMENT.md in the repository walks through it.

Replaces gtfs_stop_display

The older gtfs_stop_display module is not compatible with GTFS Core 3.x and is not maintained. There is no migration path — rebuild your displays as display contexts.

Maintainers

Maintained by tbcs and jpsalter, supported by FivePaths. These modules run public transit information systems in daily service. Issues and merge requests are welcome, and so are co-maintainers.

Depends on

Dependencies of the latest stable release

Required by

2 tracked projects depend on this one

Activity

Tracked releases
2
Tracked since
Aug 2026
Latest release
1 month ago
Releases (12 mo)
2 ▲ from 0
Maintenance
Active

Releases

Version Type Core Release date
3.0.x-dev Dev 10–11 Aug 19, 2026
3.0.0 Stable 10–11 Aug 19, 2026