Case studies / Internal platform — search, AI visibility and enquiries

Replacing a stack of SEO, reporting and CRM subscriptions with one self-hosted engine at $2.43 a month

Every figure in these case studies comes from one self-hosted system that replaces what is usually several subscriptions: rank and Search Console reporting, AI-citation tracking, a GA4 join, and an enquiry CRM. It runs on a small server for $2.43 a month. Keyword and backlink data is still bought per call — that part cannot be self-hosted.

Our in-house growth engine · Self-hosted

$2.43
monthly running cost
195
database tables
1,824
enquiries triaged through it
136
tables isolated per client by the database

Source: Counted from the production system, October 2026.

What was the problem?

A business that takes search seriously ends up renting a rank tracker, a reporting dashboard, an AI-visibility tool and a CRM — each priced per seat or per site, none of them talking to each other.

Worse, none of them answers the question that matters: which search query produced a visitor who actually enquired.

What did we build?

01

Search Console joined to Analytics

It joins Search Console to GA4 on the landing page, turning “this query got clicks” into “this query produced a session that converted”. That join is what most reporting tools sell separately.

02

AI-visibility tracking with denominators

It asks ChatGPT and Gemini real buyer questions with web search on and records whether a business is named — and how many times it asked. A failed call is recorded as not measured, never as a zero.

03

Multi-client isolation enforced by the database

Each client's data is separated by row-level security on 136 tables, so isolation does not depend on application code getting every query right.

What changed?

  • Runs scheduled jobs across several live websites and produced every search, citation and enquiry figure on this site.
  • Infrastructure cost: $2.43 a month.
  • It is also how we run client work, so a client's reporting comes from the same system that measures our own properties.

What is not working yet?

Self-hosting the workflow is not self-hosting the data. Keyword volumes and backlink indexes are still bought per call from a data provider, because nobody can crawl the web for $2.43. Anyone telling you otherwise is overselling.

Common questions

Can SaaS tools really be replaced with self-hosted software?

The workflows can — CRM, reporting, dashboards, automation. Rented data cannot: keyword and backlink indexes, contact databases and market feeds are still bought. This engine replaces the first and still pays for the second.

Is self-hosted software private?

Your data sits on infrastructure you control. But a system that calls a hosted AI model still sends those prompts to the model provider under its terms. Self-hosted is not automatically private, and we say which parts are which.

PythonFastAPIPostgreSQL with row-level securityDockerCaddysystemd timers

Could this work for your business?

It probably fits if:

  • You pay for three or more marketing or reporting tools that do not share data
  • You want to know which searches produce customers, not just clicks
  • You would rather own your data and pay for hosting than for seats

What this used

Tell us what you need

No sales call required. We’ll reply with a straight answer and a price.

We reply within one business day. No mailing list, no follow-up spam.