Software Development Co-Pilot
a plain-language read of this page & where to look next
What is installed on your site and what changed: platform, themes, plugins, add-ons and your own software, every install, update and removal, waiting updates and (opt-in) errors, drawn on your traffic. Build plugins, modules or add-ons? My products shows each platform's installs and downloads in its own tab.
Plugin · Tools
Software Development
Connect your site first
GhostStat cannot see from the browser what is installed on your server: your site reports it. On WordPress: make a report key and paste it in Settings → GhostStat. Other software: send one report, as shown under Connect.
This is an app. Installs, updates and the versions people run are in App Insights. Open App Insights
Traffic and software changes
Pageviews
Software change
Less traffic after a change
Errors that day
Traffic fell after a change
Days with a software change, followed by at least 25% fewer pageviews (3 days after against 3 days before). A change at the same time is not proof of the cause, but it is the first place to look.
Latest changes
Most frequent errors
| Name | Type | Version | Status | Update | Errors (30 days) | Last change |
|---|
| When | What | Name | Version | By | Source |
|---|
Off unless you switch it on. When on, your site's connector sends PHP or application errors with the component they came from. GhostStat removes mail addresses, IP addresses, tokens, passwords and query strings from the text, keeps file paths relative to your site, and stores no visitor data with an error.
| Level | Message | Where | Times | Per day | Last seen |
|---|
All your sites
Every site of yours that reports, and which version of each component runs where. Handy to find the one site still on an old version.
Downloads from public directories
Your plugins on WordPress.org
Do you publish plugins on WordPress.org? Follow them here: active installs, downloads per day, rating, support threads and which versions are in use. GhostStat fetches the public numbers once a day.
The slug is the part after wordpress.org/plugins/ in the plugin's address. Up to 10 per site.
WordPress.org publishes totals only. It never says who installs a plugin.
No numbers from this platform's own directory
Platforms you build for
Pick every platform you make products for: plugins, modules, add-ons, themes, extensions or your own software. Each one becomes a tab under My products, so the numbers of different platforms never mix. You can change this at any time.
- Tick the platforms you build for and press Save.
- Each one becomes a tab next to Settings.
- In a tab: add your product to see who uses it (a small file goes in your product, the tab shows the steps), and follow it on a public directory to see its downloads (no code needed).
A platform not listed? Choose Custom software: it follows GitHub releases and the package registries for any product.
Connect your site
Your site's server tells GhostStat what is installed and what changes. Make a report key once, then use it in WordPress, ExpressionEngine or your own software.
1Make a report key (starts with gssw_)
This is the key the WordPress plugin, the ExpressionEngine add-on and your own code ask for, next to your site key. Together they identify this site. Keep it on your server: it only allows sending reports, not reading your stats.
2 WordPress
- Install or update GhostStat Analytics (1.1 or newer): Plugins → Add Plugin. On WordPress.org
- Settings → GhostStat → Report key: paste the key, then Save Changes.
- Press Check now. This page fills within seconds.
After that it reports by itself: once a day, and about a minute after every plugin or theme install, update, activation or removal. No code, no cron.
2 ExpressionEngine 6 and 7
- Download the GhostStat add-on and upload its ghoststat folder to system/user/addons/. Download (zip)
- In the control panel: Add-ons → GhostStat → Install.
- Open its settings (Add-ons → GhostStat → Settings), paste your site key and the report key from step 1 above, then Save. The first report is sent at once and this page fills within seconds.
After that it reports by itself: within five minutes of an add-on install, update or removal or an ExpressionEngine or PHP update, and once a day. No cron needed; for a cron job there is php system/ee/eecli.php ghoststat:report.
Also in the add-on: {exp:ghoststat:tracker} in your layout adds GhostStat's cookieless tracker with the same site key, and with an API key (Site settings → API keys) your statistics show under Add-ons → GhostStat.
2 Your own software or another CMS
For software without a GhostStat connector: send the report yourself with one HTTP request.
Send a report
POST JSON to the address below. Everything is optional: send only the inventory, and GhostStat works out what was installed, updated or removed since the last report.
Send it on a schedule and after every change
For example once a day from cron, and from your deploy script or update hook right after a change, so the change lands on the right day.
What a report can contain
| Field | What it is |
|---|---|
platform | Your CMS or framework and its version, e.g. {"name": "wordpress", "version": "7.1.3"} or "custom" for your own software. A new version becomes an update in the timeline. |
runtime | The language running it, e.g. {"name": "php", "version": "8.4.2"}. |
inventory[] | Everything installed: type (theme, plugin, module, library, app, service, other), slug, name, version, and optional active, auto_update, update (newer version available), author, origin. |
complete | true (default) means the inventory is the full list, so anything missing was removed. Send false for a partial list. |
events[] | Changes as they happen: action (installed, activated, deactivated, updated, rolled_back, removed, update_available, update_failed), type, slug, name, from, to, at (time), actor (user, auto, cli, deploy, system). |
errors[] | Only stored when error capture is on: level, message, type and slug of the component, file, line, count, at. |
agent | What sent the report, e.g. your script's name and version. |
A report holds names and versions of software, never visitor data. Up to 1 MB, 3,000 components, 500 changes and 500 errors per report; up to 240 reports an hour per site.