ttushar.

Full-stack developer · 2026

Client Analytics Warehouse

An ETL pipeline and dashboard that pulls GA4, Search Console, Google Ads, and Business Profile into one warehouse — so client reporting stops being a monthly copy-paste job.

TypeScriptNext.jsExpressPostgreSQLGoogle APIs

Context

An agency reporting on dozens of client websites has the same numbers spread across four Google products. Every month someone opens each console, exports each range, and rebuilds the same deck.

Problem

Manual reporting doesn't just cost hours — it caps what you can ask. Nobody compares this quarter's organic traffic to ad spend across the whole client book, because assembling that once takes a day and it's stale the moment it's done.

Solution

A pnpm monorepo in three parts. An ETL worker authenticates through Google OAuth2 and syncs GA4, Search Console, Google Ads, and Business Profile into a PostgreSQL warehouse on a schedule. An Express REST API serves that history. A Next.js dashboard renders it with React Query and Recharts, so a client's traffic, rankings, spend, and local presence sit on one screen over a common date range.

Shared TypeScript types run through all three packages, with Sequelize migrations for schema changes, Winston for structured logging, and Vitest for unit coverage.

Outcome

Reporting shifted from a recurring manual export to a scheduled sync — and cross-client questions that were previously impractical became a query.