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

Built with
TypeScriptBunTanStack StartReact 19Tailwind CSSPostgreSQLTimescaleDBPostGIS

Inside the project

01 / 04

The decision queue pairs each proposal with its exact change and a clear review action.

Application views show actual Overwatch components in an isolated UI demonstration with fictional data and execution disabled. Captured September 5, 2026. Project artwork is shown separately.

Overwatch1 / 4

Overwatch approval queue with fictional proposed SEO changes

The decision queue pairs each proposal with its exact change and a clear review action.

The brief

A problem worth
building around.

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.

Our approach

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. 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.

The experience

What it lets
people do.

The capabilities that turn the underlying engineering into a usable product.

  1. 01

    See search from more than one angle

    Traditional rankings, AI visibility and local search views answer different questions. Overwatch brings those perspectives into one place so operators can investigate how a site is being discovered.

  2. 02

    Connect visibility to site health

    Core Web Vitals, search data and technical monitoring sit alongside the visibility reports. The workflow connects an observation in search to the website work that may need attention.

  3. 03

    Run the checks repeatedly

    Background workers gather and refresh the data behind the reports. The self-hosted application supports ongoing operations across multiple sites rather than a single exported audit.

Project record

What came out of it.

  • 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)

  • 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

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

Under the hood

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
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