The gap it closes
Audit tools are excellent at producing lists. A hundred findings per site, a dozen sites, and then someone has to open WordPress, find the page, edit the field, and save, a hundred times. Most of the value in an SEO audit dies in that gap between knowing and fixing. Obelisk exists to make the gap one click wide.
What I built
A site connects over the WordPress REST API with an application password, so onboarding takes under a minute and nothing is installed to start. A background worker crawls the rendered front end and runs a pure rules engine over it, flagging on-page SEO and copy problems and deep-linking each one to the exact page-builder module that owns it.
Findings move through open, fixed, and regression states across crawls, so the dashboard shows progress rather than re-listing the same problems. For any copy issue a specialist can ask for an AI draft; Claude writes the replacement and a one-line rationale. Nothing touches the site until a person accepts it. Then Obelisk writes the change back, through the media API for alt text or through a small companion plugin for titles and descriptions on Yoast, Rank Math, and SEOPress, and re-crawls the page so the fix confirms itself.
Search Console and GA4 sync into a keyword opportunity engine that finds striking-distance and losing-traffic pages and can publish a content brief to WordPress as a draft. A separate module scores answer-engine readiness, the things AI search actually cites, and rolls it into a client-facing report and a single prioritized roadmap.
The rule that shaped it
Every number is a door. Each figure in the dashboard links back to the live page, the WordPress editor, or the Google property it came from. A fix never surprises anyone, because the person who approved it can see exactly what changed and where.
Under the hood
Three cooperating pieces: a server-first Next.js app, a decoupled BullMQ worker on Redis that owns crawling, auditing, and Google syncs, and a multi-tenant Postgres schema with Drizzle where agencies own clients, clients own sites, and sites own pages, crawls, and issues. The audit rules are a framework-free module so they test fast. The whole thing runs in Docker behind Traefik on a VPS I operate.
In brief
- What is Obelisk?
- An agency dashboard that audits many WordPress sites at once, drafts the fix for each finding, applies it to the live site after a human says yes, and scores how ready each site is to be cited by AI answer engines.
- What did Brian Powell build for Obelisk?
- A site connects over the WordPress REST API with an application password, so onboarding takes under a minute and nothing is installed to start. A background worker crawls the rendered front end and runs a pure rules engine over it, flagging on-page SEO and copy problems and deep-linking each one to the exact page-builder module that owns it.
- What was the result of Obelisk?
- Three cooperating pieces: a server-first Next.js app, a decoupled BullMQ worker on Redis that owns crawling, auditing, and Google syncs, and a multi-tenant Postgres schema with Drizzle where agencies own clients, clients own sites, and sites own pages, crawls, and issues. The audit rules are a framework-free module so they test fast. The whole thing runs in Docker behind Traefik on a VPS I operate.