RankPilot — an AI SEO platform, built and run end to end
A Next.js and Firebase platform that audits a site with real crawls and Gemini analysis, and labels every result with how it was produced — measured, estimated, or simulated — so you can tell an actual measurement from a model's guess.
Project Highlights
~184,000 lines of TypeScript; 95 pages, 106 API routes, 19 Cloud Functions
SaaS / SEO
Next.js 15, TypeScript, Firebase, Cloud Run, Google Gemini, Stripe, Search Console API
RankPilot — an AI SEO platform, built and run end to end
Live at rankpilot-h3jpc.web.app
What it is
A multi-tenant Next.js and Firebase application that runs an SEO audit on a URL: it actually fetches the page, then has Gemini score structure, content and readability and return a report. Alongside that sit AI keyword suggestions, competitive positioning, and content generation.
~184,000 lines of TypeScript across 95 pages, 106 API routes and 19 Cloud Functions, with a 585-line Firestore rules file.
The idea worth stealing
AI tools are very good at producing a confident number. The interesting engineering here is refusing to.
Every analysis result carries an explicit provenance flag — measured, estimated, or simulated — surfaced in the interface as live, mixed, or synthetic badges. It is a typed field, derived from whether the crawler genuinely returned page content, not a label someone remembers to set. A June 2026 work session was spent making those labels more honest rather than making the output look better: results that had been tagged "live" were re-derived from the crawler's own integrity flag, and started correctly reporting themselves as synthetic.
The same principle runs through the rest of it. The two unimplemented analysis types return HTTP 501 rather than a plausible fabrication. Sales and marketing dashboards render honest empty states for a real user with no data — the populated versions are sample data behind an explicit demo flag.
Also built
- Per-user Google Search Console OAuth — the only source that can produce genuinely measured data
- Per-user Stripe Connect, so the finance view reads the customer's own revenue rather than ours
- Stripe Checkout with an idempotent webhook
Honest status
Pre-launch. No paying customers, no revenue, and no users beyond founder and test accounts. It is not a rank tracker or a backlink tool — there is no SERP or backlink data source behind it, and competitor comparisons are model-generated and labelled as such.
It also went down: the hosting backend returned 503 for weeks after GCP billing lapsed, and a deploy then failed because an unbounded engines.npm range resolved to a version requiring a newer Node than the runtime. Both are fixed and it serves again. That is the sort of thing that happens to real systems, and it is why the studio's pitch is operating software rather than shipping it and walking away.
Why it matters for client work
When we scope your AI project, the architecture and the estimates come from someone who runs this in production — including the parts that break.
Need Similar Results?
Let's discuss how we can help your business achieve comparable success.
Start Your Project