PHPackages                             goldinteractive/craft-publisher - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. goldinteractive/craft-publisher

Abandoned → [https://github.com/neustadt-swiss/craft-publisher](/?search=https%3A%2F%2Fgithub.com%2Fneustadt-swiss%2Fcraft-publisher)Craft-plugin[Utility &amp; Helpers](/categories/utility)

goldinteractive/craft-publisher
===============================

Publisher X enables you to publish saved Drafts on a future date without the need to handle the cache expiration logic. The cronjob handles the publication and the cache invalidation.

6.0.0(1mo ago)111.9k↓49.7%MITPHP

Since Nov 22Pushed 1mo ago3 watchersCompare

[ Source](https://github.com/teamnovu/craft-publisher)[ Packagist](https://packagist.org/packages/goldinteractive/craft-publisher)[ RSS](/packages/goldinteractive-craft-publisher/feed)WikiDiscussions master Synced 2w ago

READMEChangelog (5)Dependencies (3)Versions (12)Used By (0)

Publisher X
===========

[](#publisher-x)

Publisher X enables you to publish saved Drafts on a future date. The cron job handles the publication, and cache invalidation is managed through Craft CMS's native element save events.

It also handles entries that are set to expire or go live in the future, and will trigger cache invalidation through Craft's standard element lifecycle events.

[![Screenshot](resources/img/example1.png)](resources/img/example1.png)

Requirements
------------

[](#requirements)

- Craft CMS 5.0+
- PHP 8.2+

Installation
------------

[](#installation)

```
composer require teamnovu/craft-publisher
```

Then install the plugin in the Craft control panel under **Settings → Plugins**.

Permissions
-----------

[](#permissions)

To publish a draft, the user needs the **Save entries** permission on the entry's section.

Setup
-----

[](#setup)

Create a cron job that runs **every minute**. You can invoke Publisher X via CLI or HTTP:

**CLI (recommended):**

```
* * * * * [PATH_TO_CRAFT]/craft publisher-x/publish
```

**Web:**

```
* * * * * /usr/bin/curl --silent --compressed {siteUrl}/actions/publisher-x/api/publish
```

### Usage with cache plugins

[](#usage-with-cache-plugins)

If you use a full-page cache plugin such as Blitz, make sure you also run the queue and refresh expired caches:

```
* * * * * [PATH_TO_CRAFT]/craft blitz/cache/refresh-expired
* * * * * [PATH_TO_CRAFT]/craft queue/run
```

Events
------

[](#events)

### `EVENT_AFTER_PUBLISH_ENTRY`

[](#event_after_publish_entry)

Fired by the `Entries` service after each successful scheduled publication. Use it to trigger server-side cache purges or any other side-effect tied to publication.

```
Event::on(
    Entries::class,
    Entries::EVENT_AFTER_PUBLISH_ENTRY,
    function (EntryPublishedEvent $event) {
        $entry = $event->entry;        // canonical entry that was published
        $draft = $event->draft;        // draft that was applied, or null for non-draft schedules
        $schedule = $event->entryPublish; // the EntryPublish schedule record

        // trigger your cache purge here
    }
);
```

The event is only fired when publication succeeds. If the scheduled entry or draft cannot be found (e.g. the entry was deleted), the orphaned record is cleaned up and the event is not fired.

###  Health Score

48

—

FairBetter than 94% of packages

Maintenance90

Actively maintained with recent releases

Popularity26

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 76.2% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~131 days

Recently: every ~44 days

Total

11

Last Release

47d ago

Major Versions

3.0.1 → 4.0.02024-05-27

4.0.1 → 5.0.02025-01-22

5.2.0 → 6.0.02026-07-01

### Community

Maintainers

![](https://www.gravatar.com/avatar/855a85adbca901b0d679576113cfffb46615d0a02c94052e31282a78c9fedc3e?d=identicon)[goldinteractive](/maintainers/goldinteractive)

---

Top Contributors

[![lukasNo1](https://avatars.githubusercontent.com/u/19799373?v=4)](https://github.com/lukasNo1 "lukasNo1 (16 commits)")[![francescocolazzo](https://avatars.githubusercontent.com/u/41695402?v=4)](https://github.com/francescocolazzo "francescocolazzo (5 commits)")

### Embed Badge

![Health badge](/badges/goldinteractive-craft-publisher/health.svg)

```
[![Health](https://phpackages.com/badges/goldinteractive-craft-publisher/health.svg)](https://phpackages.com/packages/goldinteractive-craft-publisher)
```

###  Alternatives

[spicyweb/craft-neo

A Matrix-like field type with block hierarchy

393818.3k12](/packages/spicyweb-craft-neo)[craftcms/feed-me

Import content from XML, RSS, CSV or JSON feeds into entries, categories, Craft Commerce products, and more.

292960.7k38](/packages/craftcms-feed-me)[verbb/formie

The most user-friendly forms plugin for Craft.

101400.6k78](/packages/verbb-formie)[solspace/craft-freeform

The most flexible and user-friendly form building plugin!

54686.7k25](/packages/solspace-craft-freeform)[verbb/hyper

A user-friendly links field for Craft.

24153.5k14](/packages/verbb-hyper)[verbb/vizy

A flexible visual editor field for Craft.

4251.5k1](/packages/verbb-vizy)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
