Inspiration

SEO tools are everywhere, but Generative Engine Optimization (GEO) has no operating system. When users ask Gemini "what's the best clear ice sphere mold", brands are mentioned — or not — based on signals no one is tracking. We wanted a single place that answers:

  • How does Gemini currently describe my brand?
  • Which queries surface my brand, and which surface competitors?
  • What's missing in my site, content, and authority to rank in AI answers?
  • Which actions actually move the needle?

What I learned

  • AI answers are not a single ranking — they're a mosaic of citations, brand mentions, and entity understanding. Optimizing each layer needs different data.
  • Without a structured brand knowledge base, Gemini hallucinates product facts (price, material, dimensions). Data before generation is the only honest approach.
  • Most "GEO tools" are either AI writers or SEO audits with a chatbox. Neither closes the loop. The real product is the loop: crawl → knowledge → monitor → diagnose → task → execute → verify.

How I built it

A monorepo on Next.js 15 + Prisma + SQLite with a Gemini adapter layer (Structured JSON Schema, Mock fallback when no API key). The platform covers 24 API modules: project RBAC, CSV/XLSX import center, sitemap crawler, query intelligence, page versioning, Gemini runs, citation tracking, competitor diagnosis, task dispatch, GSC/GA4/Shopify integrations, audit logs, recycle bin, and version history.

17+ Vitest tests, TypeScript clean, production build green.

Challenges

  • SQLite has no pgvector — solved with JSON columns for embedding shims so the schema is Postgres-portable.
  • Gemini's response shape drifts; pinned it down with a strict Zod-derived JSON Schema and a mock adapter that ships deterministic fixtures.
  • AI-generated data must be editable, deletable, restorable — designed a soft-delete + version history + recycle bin layer that applies to every entity, not just content.

Built With

  • bcryptjs
  • bullmq
  • cheerio
  • csv/xlsx
  • gemini-2.5-flash
  • google-gemini-api
  • jwt
  • next.js
  • playwright
  • pnpm-workspaces
  • postgresql
  • prisma-orm
  • radix-ui
  • react-19
  • react-hook-form
  • recharts
  • redis
  • sqlite
  • tailwind-css
  • tanstack-query
  • tanstack-table
  • turborepo-style-monorepo
  • typescript
  • vitest
  • zod
Share this project:

Updates