Jump to content

Recommended Posts

Posted

Hi everyone,

I’m releasing Relay, a scheduled publishing module and visual editorial calendar for ProcessWire.

Relay lets editors plan, review, reschedule, publish and unpublish pages from one workspace—without adding scheduling fields to page templates.

spacer.png

Main features

  • Scheduled publish and unpublish actions
  • Publication windows with separate start and end times
  • Relay tab inside the page editor
  • Month, week, quarter and three-day calendars
  • Kanban and timeline views
  • Drag-and-drop rescheduling with undo
  • Complete publication details in accessible popovers
  • Filters by action, status and template
  • Configurable first day of the week and weekend highlighting
  • Reusable publication times
  • Template-linked recurring scheduling rules
  • Quick recurrence presets, including custom intervals
  • Session-only imitation mode for testing without changing pages or database jobs
  • JSON import and export with preview before applying
  • Read-only iCalendar feeds for Google Calendar, Apple Calendar and compatible clients
  • Optional WireMail and TeleWire notifications
  • Optional Squad-assisted publication-time suggestions
  • 48 bundled European translations

Execution

Production jobs are processed by a bounded, lease-protected CLI worker. Parallel worker runs are safe, failed jobs can retry, and stale locks are recovered automatically.

A typical cron configuration is:

* * * * * cd /var/www/example.com && /usr/bin/php site/modules/Relay/bin/relay.php --limit=50 >> site/assets/logs/relay-cron.log 2>&1

LazyCron is available as an optional fallback when system cron is unavailable, though request-driven execution cannot guarantee exact timing.

Screenshots

relay1.thumb.png.de18bcf6946e4912809f8982b34633db.png
 

Spoiler

relay1.thumb.png.de18bcf6946e4912809f8982b34633db.png

relay2.thumb.png.406bbd0698dd7f5e01b43618782c18e8.png

relay3.thumb.png.f7948444b56b240e6555a8df1c037fee.png

relay4.thumb.png.6983d41bd26cd5b1fd4aad6e85915a68.png


Safety

Relay stores timestamps in UTC while retaining the editorial timezone for each job.

Requester, editorial identity and worker executor are recorded separately. Page permissions are checked again when a job runs.

External interfaces and integrations are disabled by default. Calendar subscription URLs are revocable bearer secrets, and internal notes or unpublished page content are not included in calendar feeds.

Requirements

  • ProcessWire 3.0.244 or newer
  • PHP 8.2 or newer
  • MySQL, MariaDB or SQLite through ProcessWire’s PDO connection

Installation

  1. Download or clone Relay into /site/modules/Relay/.
  2. Refresh modules in ProcessWire Admin.
  3. Install Relay.
  4. Configure the allowed templates, roles, timezone and planning defaults.
  5. Configure the CLI worker before relying on scheduled execution.

Please note that uninstalling Relay removes its relay_jobs and relay_presets tables. Export or back up any required scheduling data first.

Download and documentation

The repository includes full API documentation, Olivia/AI-agent integration guidance, tests, translations and an MIT license.

Feedback, bug reports and real-world editorial use cases are very welcome.

  • Like 2
  • Thanks 2

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...