Skip to content
PBPrathamesh Basagare
All projects
WordPressPHPWP-CronWordPress.org API

Fadewatch – Abandoned & Closed Add-on Checker

A WordPress plugin that flags plugins closed on WordPress.org (with the date and reason), plugins that haven't been updated in years, and plugins that can't be checked.

Type
Open source
Role
Author and maintainer

Impact

Maintenance statuses
6
Code loaded on the front end
None
Site Health tests
2
Illustration of the Plugins screen with Fadewatch maintenance statuses

The problem

Sites quietly run plugins that WordPress.org has closed, sometimes for security issues, or that haven't been updated in years. WordPress itself doesn't surface this, so site owners only find out when something breaks or gets exploited.

The solution

A Maintenance column on the Plugins screen, a report page with CSV export, two Site Health tests, and e-mail alerts when a status changes. Lookups run in small WP-Cron batches in the background, so opening the Plugins screen reads one stored option and makes no external requests.

AI acceleration

AI tooling helped scaffold the settings, report and Site Health classes. The status rules, especially keeping "closed", "not found" and "couldn't check" strictly apart, were specified and tested by hand to avoid false alarms.

Accuracy over noise#

A monitoring tool that cries wolf gets ignored, so Fadewatch is strict about what it reports:

  • A failed request never overwrites an earlier good result.
  • Closed, not found and couldn't check are separate statuses. An unreachable API is never reported as "closed".
  • If a custom plugin shares a folder name with an unrelated WordPress.org plugin, its data is marked Not verified instead of showing the wrong plugin's status.

Background work, zero front-end cost#

Checks run in small WP-Cron batches: daily for everything, every 6 hours for closed plugins and failed checks, and right after a plugin is installed, updated or activated. When WP-Cron is disabled, Check now runs the batches from the browser. Nothing runs on the public site.

Privacy by default#

Nothing is sent to WordPress.org until an administrator allows checks. Only plugin slugs are sent, and the user agent doesn't include the site address.

Extensible#

Filters such as fadewatch_plugin_slug, fadewatch_thresholds and fadewatch_status, plus a fadewatch_status_changed action, let developers adapt the rules and hook into changes. Multisite runs one shared check for the whole network.