Skip to main content

We use cookies for analytics. Privacy

Back to Work
Sales & MarketingCase study

Overwatch

Self-hosted SEO intelligence, replacing a stack of subscriptions

Project Focus
TypeScriptBunTanStack StartReact 19Tailwind CSSPostgreSQLTimescaleDBPostGIS
Overwatch — self-hosted SEO intelligence platform

Rank tracking, AI visibility, local heatmaps and Core Web Vitals in one self-hosted platform.

Self-hosted, single Docker deploy
Model
Bun + TanStack Start SSR
Runtime
PostgreSQL 16 + Timescale/PostGIS/pgvector
Data store
18 scheduled worker queues
Background work
01

Challenge

Serious SEO tooling is rented, not owned. A single mid-tier platform runs into the hundreds of dollars a month, the data it shows is assembled from sources you could reach yourself, and none of it is yours — the moment you stop paying, the history goes with it. Worse, the numbers arrive as dashboards rather than as data you can query, join, or act on programmatically, so the analysis stops exactly where the vendor decided it should.

02

Solution

Overwatch pulls the underlying signals directly — Google Search Console, Analytics 4, Business Profile and Chrome UX Report alongside commercial SERP and keyword data — and lands them in a single PostgreSQL instance specialised for the job: TimescaleDB hypertables for the time-series, PostGIS for local-pack grid heatmaps, and pgvector for content similarity. Eighteen background workers run the scheduled syncs; long-running SERP jobs return through a signed pingback endpoint rather than being polled. On top sits an AI operator that can chat over the account's own data, run keyword discovery, draft content briefs, and propose WordPress edits — every mutation held behind a human approval queue. The whole application surface is also exposed as an audited machine-callable catalogue, so agents can drive it under one credential.

03

Results

  • In production and in daily use, replacing a stack of rented SEO subscriptions
  • Rank tracking blends free Search-Console-derived positions with paid SERP tasks, so cost tracks only the keywords that genuinely need it
  • AI visibility triangulated from three independent signals rather than one vendor's estimate
  • Local SEO grid heatmaps rendered from real geo-sampled pack positions (PostGIS)
  • 87 audited read, write, trigger and proposal capabilities exposed to agents behind one credential
  • Every on-page edit an agent proposes is gated on human approval before it reaches a live site

System Architecture

Self-hosted SEO intelligence: scheduled workers land external signals into a specialised PostgreSQL, and an approval-gated AI operator reads and acts on them.

frontend
backend
database
external
ai
queue
SSR + hydrationChat over own dataScheduled syncAsync tasks + pingbackBatch upsertGrounded readsProposed edits
TanStack Router UI
React 19 + SSR
Copilot Drawer
In-product AI operator
Bun Server
SSR + server functions
Agent Runtime
Tool-calling with approval gates
Scheduled Workers
18 pg-boss queues
PostgreSQL 16
Timescale + PostGIS + pgvector
Google APIs
GSC · GA4 · GBP · CrUX
SERP + Keyword Data
Commercial providers
WordPress Bridge
Signed, approval-gated edits

Self-hosted SEO intelligence: scheduled workers land external signals into a specialised PostgreSQL, and an approval-gated AI operator reads and acts on them.

Facing Similar Challenges?

Every business is different, but the problems tend to rhyme. Get in touch and tell us about yours.

A conversation, not a pitch
No obligation
We reply when we can