> product // jezpress // the making of
JezPress
how it was made.
JezPress is how Jezweb runs hundreds of WordPress sites without drama. It started as a single SSO plugin on 28 December 2025; within 48 hours there was an admin dashboard, an update server, and a proprietary licence, all three born on the same day. Eighteen weeks later it had Scout: a conversational AI teammate living inside wp-admin, able to read pages, update content, and roll back its own changes.
The short version
JezPress started as a WordPress plugin, OAuth SSO for client sites, and became a fleet-management ecosystem in a single sprint. The core plugin hit v2.8.0 with a full REST API inside eight days; the admin dashboard grew modules for domains, email, hosting, uptime, tickets, Xero reconciliation, and Rocket.net hosting intelligence. Then, in late March, almost all of it got stripped back out. The lesson was that the admin should focus: it is a plugin registry and a fleet health board, not a general business dashboard. The March 2026 pruning removed six modules in six commits. What came after was Scout: an AI agent running inside wp-admin itself, shipping from scaffolding to a write-capable tool in two days, and a quiet June audit of the 48-plugin library that feeds the fleet.
// the build log · mined from the commit history, nothing dramatised
Plugin, dashboard, update server: three repos in two days
The first commit landed 28 December 2025, phases 1 through 6 of the SSO plugin in a single commit. Within 24 hours the admin dashboard and update server were both initialised, the licence was changed to proprietary, and the first OAuth migration to a centralised auth server was committed. The update server got a custom domain (updates.jezpress.com) the same afternoon. The pace in those two days set the pattern for everything that followed.
REST API, export pipeline, and role-based access
January was the plugin's month: auto-update support, centralised activity logging, a webhook endpoint for instant settings sync, and a REST API for remote site management, all before the new year was a week old. By mid-January the API had grown to v2.8.0 with explicit agentic support, an export pipeline that resolved Elementor dynamic tags and extracted Gravity Forms, and role-based OAuth and password restrictions. The update server gained a full theme management API with channels and licensing.
Domains, email, hosting, tickets, Xero: a broad management platform
The admin dashboard grew far beyond plugin management. Synergy Wholesale domain sync arrived in phases across a single week in January, with resumable sync, KV cursors, and a sync progress indicator. Rocket.net hosting data appeared in late January with caching and an intelligence dashboard that matched domains across sources. February brought a maintenance-tracking module, then a tickets system with markdown rendering, remediation steps for agents, and team workload views. Xero billing reconciliation landed the same week.
Six modules removed in six commits
24 March 2026: SEO, Xero, Uptime, and Intelligence modules removed. 29 March: Domains, Email, cPanel, and Developers modules removed. The ticket system went the same day, and the dashboard was refactored to consolidate auth events and activity logs into a single view. The CLAUDE.md was rewritten to describe the simplified architecture. The admin had tried to be a general business platform; it was pulled back to what it was always supposed to be: a plugin ecosystem manager and fleet health board.
A conversational AI teammate inside wp-admin
Scout (jezpress-agent) was scaffolded on 21 April and shipped a write-capable widget tool the next day, update_page_widget with a ShowDiff UI and a rollback endpoint. By the end of 22 April it was at v0.4.0, registered with JezPress Manager, and publishing to the update server. On 23 April it gained four more write tools (update_page_title, update_page_meta_description, create_draft_page, find_widget_by_text), Browser Rendering via binding, and a research_docs tool. The team ran a model bake-off that day: Kimi K2.6 vs Llama 4 Scout vs Nemotron 3.
Nine orphan tables dropped, 48 plugins audited
May brought a focused clean-up: the Organisation module and nine orphan tables were removed, voice and style-guide cruft was dropped, and the migration history was squashed to a single init file. June opened with a CI/CD fix and a cold-start retry for the auth server. The log closes on 4 June with an audit of 48 plugin repos, synthesis, documentation, and an aggregation script, the kind of unglamorous cataloguing that keeps a fleet of fifty plugins honest.
git log: “feat: extended REST API for agentic support (v2.8.0)”
Committed 3 January 2026, six days in, and already building for AI agents to drive the fleet.
// the roads not taken
Tried, measured, set aside: the judgement lives here as much as in what shipped.
The general business dashboard
Six modules, domains, email, hosting, SEO, Xero, uptime intelligence, were built and then removed in late March 2026. The admin dashboard had grown into a general operations platform; the March strip-back pulled it back to its core job.
Tickets / maintenance system
A full ticket system with team workload tracking, sub-categories, remediation steps and markdown rendering was built in February and removed in March as part of the same refocus. The work was thorough; it just belonged somewhere else.
Rackspace integration
A Rackspace hosting sync was briefly started and removed on 16 January, before the email/hosting modules were even stable. One line in the log, nothing more.
Want something built like this?
This is how we work: in the open, measured, honest about the dead ends.