TYPESCRIPT · NEXT.JS & SEO ANALYTICS
serpbear — Self-Hosted Search Engine Keyword Position & SERP Rank Tracker
serpbear is a privacy-first, open-source SEO rank tracking application that monitors daily keyword positions across Google desktop and mobile search results. It provides historical rank charts, Google Search Console integration, email/webhook notifications, and a full REST API.
$ docker run -p 3000:3000 serpbear
Copy
GitHub ↗
Tracked Keywords
Unlimited Domains
GSC Integration
Clicks + Impressions
Notification Hooks
Email / Webhook
Database
SQLite Zero-Config
01. Interactive Workbench
02. Reference Implementation
03. Architecture & Specs
Interactive SERP Keyword Position Delta & Visibility Score Calculator
Domain & Tracked Keyword Portfolio
SERP Device & Geo-Location
Desktop — United States (en-US) + Google Search Console Overlay
Mobile iOS — United States (Local Pack + Featured Snippet Check)
Desktop — European Union (de-DE / en-GB)
REST API JSON Export (`/api/domains?withstats=true`)
Execute Pipeline ▶
Reset
Deterministic Execution Output & Telemetry
STATUS: READY // 0 ERRORS
TypeScript (SERP Visibility Index)
export function computeVisibilityScore(positions: number[]): number {
const ctrCurve: Record<number, number> = { 1: 31.7, 2: 24.7, 3: 18.6, 4: 13.6, 5: 9.5, 6: 6.2, 7: 4.2, 8: 3.1, 9: 2.4, 10: 2.1 };
const total = positions.reduce((acc, pos) => acc + (ctrCurve[pos] ?? (pos <= 20 ? 0.5 : 0)), 0);
return Number((total / Math.max(positions.length, 1)).toFixed(2));
}
Production Engineering Specifications
Repository: https://github.com/bhubbard/serpbear
Live Studio: https://code.brandonhubbard.com/serpbear/
Portal: https://code.brandonhubbard.com/
Install: docker run -p 3000:3000 bhubbard/serpbear
Design System: Brandon Hubbard Swiss Modernist (#0A0A0C / 1px Exposed Structural Grid)