Skip to content
← All Projects

Make It
Tool

SEO analytics platform simplified into a single real-time dashboard.

Year2022
Team1 Engineer
Stack
Microservices - React - Fastify - MongoDB - Redis
Problem

Teams relied on scattered tools to track SEO data, making analysis slow and the numbers impossible to trust.

Role

Lead Software Engineer & Technical Lead

Outcome

A unified SEO intelligence platform aggregating domain, keyword, backlink, and competitor data into one real-time dashboard.

Impact

5+ tools replaced by one platform, cutting time spent on reporting by 70%.

The brief

Every team touching SEO had its own tool. Backlinks in one place, keywords in another, competitor data somewhere else, and a spreadsheet holding it all together. Nobody trusted the numbers because you could never tell which export came from which tool, or how stale it was. The ask was straightforward: one dashboard, one source of truth, with every number dated.

I led the full technical side: architecture, service design, frontend, deployment, and production support. The goal wasn't to wrap existing tools in a nicer interface. It was to build a system where the data pipeline and the presentation layer were designed together from the start.

MakeIt Tool backlinks page showing backlinks tendency chart, authority score, referring domains count, follow vs no follow breakdown, TLD distribution, and backlinks by country

Backlinks analysis: historical tendency, authority score, referring domains, and distribution by follow type, TLD, and country.

MakeIt Tool domain keywords page showing monthly traffic chart, top categories bubble visualization, clicks by gender and age, and keywords table with search volume, CPC, rank, and difficulty columns

Domain keywords view: top content categories by traffic, audience demographics, and a full keyword table with search volume, CPC, rank, and difficulty.

Building it

The platform is a microservices system orchestrated with Docker Compose. A single API Gateway handles all client traffic, validates JWT auth, and fans requests out to three downstream services: Auth, Profiles, and DataBuilder. Services never call each other directly. Inter-service communication runs through an internal Socket.io event bus, so each service stays isolated and events like USER_CREATED or USER_LOGGEDIN are subscribed to independently.

The DataBuilder service is the core of the product. It connects to the DataForSEO API and exposes a widget system where each widget is a self-contained class that knows which data calls to make and how to shape the result for the frontend. Bulk fetching lets the frontend load a full dashboard view in a single request. Every request is instrumented with high-resolution timings persisted to MongoDB, which made tuning the Redis caching strategy concrete rather than guesswork.

The hard part was volume on the frontend. Keyword tables with hundreds of thousands of rows that still had to feel instant. Server-side aggregation, Redis caching per widget, and a strict widget contract kept it manageable: each widget asks for exactly the shape it needs, degrades to a skeleton when a source is slow, and always shows when its data was last fetched. Six months in, the platform had replaced five separate subscriptions and cut reporting time by about 70%.

Want the long version, or something similar built?

Tech Stack
React 18ViteNode.js 20FastifyMongoDBRedisSocket.ioDockerNginxEChartsRechartsMantineJWTGitHub ActionsDigitalOceanDataForSEO API
Project Mockup
Resume