Pairwise
AI / WebIn productionRelationship psychology as a product: seven validated frameworks, AI analysis and an SEO content factory that brings in real users.
pairwise.ru ↗Why it exists
“Compatibility” online usually means horoscopes and magazine quizzes. I wanted the opposite: take validated psychological frameworks, digitise them carefully and give people a clear, honest breakdown — no esoterics, no promises.
Pairwise grew from that idea into a real product: seven scientific tests, an AI that explains the result in plain language, a couples mode and — separately — a whole SEO-content factory that brings real users to the site. I designed, styled and wrote all of it myself.
Seven frameworks, not fortune-telling
It's built on validated instruments from academic psychology: personality via IPIP-NEO (Big Five), attachment via ECR-R, love styles via LAS, relationship satisfaction via CSI, sexual compatibility via the Hurlbert Index, values via PVQ-Schwartz. Each test is a carefully ported scale with honest scoring, and results are shown visually — here, for instance, a love-styles profile on an interactive 3D diagram.
AI that explains in plain language
Raw scores mean little to most people, so an AI layer sits on top of every test: it weaves all the scales into a coherent, warm write-up in the voice of the “Pairwise psychologist” — strengths, growth areas, concrete weekly steps and self-reflection questions.
Behind it is a resilient AI layer: Google Gemini as the primary provider with OpenRouter as a fallback, rotation across several keys, quota accounting via Redis/Lua, and graceful degradation when a provider is down. Heavy jobs — like generating a PDF report — go to a BullMQ background worker.
The full picture — for couples
The tests truly come alive in pairs. Partners link accounts with an invite code, and Pairwise builds a shared map of the relationship: a compatibility score, a five-domain balance on a single chart, behaviour forecasts for different situations, and personal growth areas with concrete recommendations.
Built to bring people back
A single test is a one-off visit. To make people return I added an engagement layer: a personal cabinet with progress across the seven tests, levels and achievements, a journal, and a “Wish Deck” — a private Tinder-style swipe mechanic for couples: both partners swipe desire cards, and when their likes line up it becomes a match. Plus inviting a partner as a natural next step. Gamification and XP live in their own service.
Content engine: traffic as a system
The least trivial part is a separate subsystem that brings users to the site. It's a full-cycle pipeline: an AI strategist researches topics and keywords (with SERP analysis via Tavily and clustering), drops a content plan into Google Sheets, and the content engine generates articles in multiple steps (brief → research → text) with uniqueness checks, internal linking, image selection and scheduled publication to the blog.
It's all orchestrated by a BullMQ queue on Redis, with limits, breakers and monitoring right in the admin panel. As of this screenshot — 551 topics planned, 315 articles generated, 177 published.
Results in numbers
Pairwise isn't a demo — it's a live product with a real audience. The content machine works: traffic grows month over month in both search engines — and it's 100% organic search, with zero spent on paid ads.
- 3,181 registered users, 2,877 active
- ~16.7k visits and ~13.3k visitors per month (Yandex Metrica)
- 2.93k clicks and 51k impressions from Google, average position 8.1 (Search Console)
- ~5–6 minutes average time on site, ~26% bounce rate
Under the hood
A single Next.js monolith on the App Router serves the site, the API and the admin panel, plus a separate background worker. Designed to stay easy to maintain.
- Next.js 16 (App Router) · React 19 · TypeScript · Tailwind
- Prisma + PostgreSQL; NextAuth v5 for auth
- Redis: rate limiting, AI quotas via Lua scripts, caching
- BullMQ worker: content generation and PDF reports (@react-pdf)
- Three.js / react-three-fiber for 3D diagrams, Recharts for analytics, Framer Motion
- Integrations: Google Gemini, OpenRouter, Tavily, Google Sheets, Unsplash, Telegram
- Automated tests on Vitest, Docker build for production