SEO Platform — Bulk Audits, Rank Tracking & LLM Visibility
Project Info
- Client Self-funded SaaS
- Year 2026 → present
- Category SaaS / SEO platform
- Status Closed beta — used on my own projects, no public landing page yet, so there is no live link to share
- Stack Next.js 16 (App Router), React 19, TypeScript, Tailwind v4, Prisma 7 + Postgres, NextAuth v5, next-intl, PM2 (two-instance zero-downtime deploy)
- Integrations Google Search Console API, Google Indexing API, Ahrefs / Majestic / Moz, DataForSEO, SE Ranking, WayForPay, Brevo, Cloudflare Turnstile, Slack
- AI OpenAI + Google Gemini + Anthropic Claude — model picked per user in settings
Project Description
A self-funded SEO platform that started as a bulk domain checker — paste up to a hundred domains, tick the checks you need, get one sortable table with WHOIS, DNS, CMS, backlink and traffic metrics — and grew into a full combine: Search Console analytics, rank tracking, AI-visibility monitoring, link and PBN control, technical audits and an AI agent on top of it all. Built for everyday use — running client sites and a link network.
Modules
| Module | What it does |
|---|---|
| Bulk domain analysis |
|
| Search Console |
|
| GEO — LLM visibility |
|
| Rank tracker |
|
| Indexing |
|
| Competitors & keyword gap |
|
| Sitemap scanner |
|
| Keyword research |
|
| Links control |
|
| PBN management |
|
| Sitemap health |
|
| Schema checker |
|
| Log audit |
|
| Text checker |
|
| Uptime monitor |
|
| Teams & access |
|
| AI agent — the layer everything is heading towards |
|
Architecture
Next.js 16 App Router with server actions that never throw — they return { data }, { error } or { success } — Prisma 7 on Postgres, ownership checks on every resource, and admin-tunable settings that fall back to env vars when unset. Long jobs follow one pattern: enqueue, poll state, fetch the result file; the recurring side lives in /api/cron/* endpoints (scheduler, GEO, indexing, rank tracker, uptime, sitemap health, links control, subscriptions). The whole UI is localized through next-intl. Deploys are zero-downtime — two PM2 instances swap behind nginx so a running crawl never gets cut off.
