PHPackages                             justinholtweb/craft-homer - 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. justinholtweb/craft-homer

ActiveCraft-plugin

justinholtweb/craft-homer
=========================

Content safety and integrity plugin for Craft CMS. Prevents accidental breakage of content, relationships, assets, and site structure.

5.0.0(1mo ago)00proprietaryPHPPHP ^8.2

Since Apr 5Pushed 1mo agoCompare

[ Source](https://github.com/justinholtweb/craft-homer)[ Packagist](https://packagist.org/packages/justinholtweb/craft-homer)[ RSS](/packages/justinholtweb-craft-homer/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (1)Versions (2)Used By (0)

Homer
=====

[](#homer)

Content safety and integrity for Craft CMS. Prevents accidental breakage of content, relationships, assets, and site structure.

Know what will break before it breaks.

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

[](#requirements)

- Craft CMS 5.3.0 or later
- PHP 8.2 or later

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

[](#installation)

Open your terminal and run:

```
composer require justinholtweb/craft-homer
```

Then go to **Settings &gt; Plugins** in the Craft control panel and click **Install** for Homer — or run:

```
php craft plugin/install homer
```

Features
--------

[](#features)

### Deletion Safety

[](#deletion-safety)

Before deleting an entry, asset, or category, Homer checks how many other elements reference it and classifies the risk:

- **Safe** — no references, safe to delete
- **Low Risk** — a few references, warning shown
- **High Risk** — many references, confirmation required
- **Critical Risk** — heavily referenced, typed confirmation (type DELETE) required

Homer can operate in three modes:

ModeBehavior**Warn**Show warnings but allow the action**Confirm**Require confirmation before risky actions**Block**Prevent risky actions entirely### Relation Safety

[](#relation-safety)

Homer builds a usage graph by querying the relations table. For any element, it can tell you:

- How many other elements reference it
- Which elements, through which fields
- Whether any of those referencing elements are live, disabled, or pending

This powers the impact analysis behind every safety check.

### Asset Safety

[](#asset-safety)

Assets get special treatment. Homer checks:

- Relation field references (asset fields, image fields)
- Rich text / CKEditor content references via the search index
- Unused asset detection for cleanup

### Audit Log

[](#audit-log)

Every risky action is logged with:

- What action was taken (delete, disable)
- Which element was affected
- Who performed the action
- Risk level and reference count at time of action
- The decision (allowed, warned, confirmed, blocked)

Logs are retained for a configurable number of days (default: 90).

### CP Integration

[](#cp-integration)

Homer adds to the Craft control panel:

- **Warning modals** before dangerous deletions with risk badges, usage breakdowns, and typed confirmation
- **Usage badges** on element edit pages showing incoming reference counts
- **Homer section** in the CP sidebar with a dashboard and audit log
- **Homer Safety utility** with orphaned entry finder, unused asset review, and recent high-risk actions

### Permissions

[](#permissions)

PermissionDescriptionView impact reportsAccess usage and impact report pagesBypass safety warningsProceed past warnings without restrictionBypass deletion blocksOverride block mode (use carefully)View audit logAccess the audit logManage Homer settingsChange plugin configurationConfiguration
-------------

[](#configuration)

Configure Homer from **Settings &gt; Plugins &gt; Homer** in the control panel, or create a `config/homer.php` file:

```
