One platform for keyword research, AI content generation and rank tracking, replacing the tool-hopping that ate SEO teams' days.
The problem
SEO teams switched between five different tools just to get from keyword discovery to tracking, wasting hours and risking inconsistent data. Most tools also lean on stale keyword and ranking data, so teams react slowly to search trends.
My approach
One platform: an AI content engine on OpenRouter wired to live DataForSEO and Google Maps data, with Trigger.dev running bulk jobs and caching in the background.
How it's built
Next.js App Router with server components for data-heavy views, Supabase and PostgreSQL for storage, and Trigger.dev for durable background jobs. Generation is proxied through OpenRouter so models swap without touching product code.
Key features
- AI content generation with multi-locale support
- Real-time keyword and rank tracking
- Location-based insights via Google Maps API
- Bulk processing pipelines with caching
- Stripe-backed subscription billing
Challenges & Solutions
Keyword API costs scaled linearly with users and quickly became the largest line item.
Introduced request batching and a caching layer keyed by keyword and locale, cutting tracking spend in half without reducing data freshness.
Bulk content jobs exceeded serverless execution limits and failed midway.
Moved generation onto Trigger.dev as durable, resumable jobs that checkpoint progress and retry individual items rather than the whole batch.
Results
- 3×lower cost per article through automated AI workflows.
- 30articles in 10 minutes, work that previously took hours.
- 50%lower keyword tracking cost, $0.09 down from $0.18.
Implementation stack
Tech Stack
Frontend
- Next.js
- TypeScript
Styling
- TailwindCSS
- ShadCN
Backend
- Supabase
- PostgreSQL
- Trigger.dev
APIs & AI
- OpenRouter
- DataForSEO
- Google Maps API
Payments
- Stripe
Deployment
- AWS EC2
- AWS Lambda
Analytics
- PostHog
