DEV Community

Victor Smushkevich
Victor Smushkevich

Posted on

I got tired of paying $139/month for SEO data that costs $4 wholesale, so I built my own

Last year Ahrefs raised prices on small teams by 81% (SpendHound tracked it). Semrush Pro sits at $139.95 a month. And here's what those subscriptions buy you: a dashboard on top of SERP data they purchase wholesale.

The same data is sitting behind pay-as-you-go APIs. DataForSEO charges cents per SERP pull. My real deployment tracks 570 keywords across 5 sites, updated daily, plus weekly local map grids and brand-SERP checks. Total API bill: $3.55 a month. The other $136 is the dashboard.

So I built the dashboard.

What it does

SEO Command Center is a self-hosted SEO platform. MIT licensed. It covers the stack a solo operator or small agency pays three subscriptions for:

  • Rank tracking (desktop, mobile, local)
  • Keyword research
  • Competitor gap analysis
  • AI Overview visibility (who's showing up in Google's AI answers, which none of the big suites tracked when I needed it)
  • Site audits and link gap reports
  • Local map-pack grids, the thing Local Falcon charges $24.99 a month for

You bring your own DataForSEO key. Prepaid credits, no subscription, no seat pricing, no keyword caps. You pay for the exact SERPs you pull and nothing else.

The architecture is the opinionated part

I made three choices that will annoy some people:

Zero pip dependencies. The whole thing is stdlib Python. No requirements.txt. If you have Python 3.9 you can run it.

SQLite, not Postgres. Your rank history is one file. Back it up with cp. Move servers with scp. There's no database server to babysit at 2am.

No Docker required. It's three commands:

git clone https://github.com/testedmedia/seo-command-center
cd seo-command-center
python3 demo.py && python3 worker.py serve
Enter fullscreen mode Exit fullscreen mode

That demo runs the full dashboard on bundled sample data, no API key needed, so you can judge it in under a minute. (A docker-compose option is on the roadmap for people who want it. The no-Docker default stays.)

The pattern inside is one script per report. Each report pulls its data, writes JSON, renders HTML, done. Adding a report means adding one file. Boring on purpose.

What it's not

Honest limits, because SEO tool marketing is allergic to them:

  • No backlink index. Ahrefs' crawler is their real moat and no self-hosted tool replicates it. This wraps SERP data, not a private link graph.
  • Google Search Console: one property per install right now. Multi-property is an open issue if you want to take a swing at it.
  • You manage your own server. That's the trade.

Why I'm giving it away

I built this for my own sites and it already paid for itself in month one. Open sourcing it costs me nothing and the issues people file make the tool better for me too. There's a good first issue list if you want to contribute, and the zero-dependency rule keeps the codebase small enough to read in an afternoon.

Repo: github.com/testedmedia/seo-command-center

If it saves you a subscription, a star helps other people find it.

Top comments (0)