# rekkal > Your AI visibility, measured against the competitors who actually outrank you. rekkal runs a brand's prompts through ChatGPT, Perplexity, and Gemini every week, ranks the brand against the competitors that come back alongside it, records which sources those answers cite, and turns the gaps into recommendations. rekkal queries each provider's own API with grounding enabled, and says so: an answer from a provider's API can differ from what that provider's consumer app shows for the same question. See [docs/measurement.md](./docs/measurement.md) for the engines, the cadence, and the plan quotas. This repository holds the foundation — the marketing site with pricing, email/password and magic-link auth, Stripe checkout and billing portal behind a signature-verified webhook, Resend transactional email, and SEO (sitemap, robots, OG image) — plus the analytics core: the schema, the engine adapters, the scheduled prompt runner, onboarding generation, which turns one typed domain into a brand profile, topics and monitored prompts, and the signed-in dashboard, which renders visibility, share of voice, average position and the competitor ranking, plus a sources view of the domains the engines actually cite and the ones covering a rival but not you — all with the sample size on screen, a confidence band on every estimate, and no directional claim the sample cannot support. Competitor discovery, the free audit, and recommendations are not built yet. Everything is env-driven: supply the Supabase, Stripe, and Resend keys and it runs. The answer-engine keys are optional — the fixture adapter replays recorded payloads through the real parsers, so the test suite is green with none of them set. Stack: Next.js (App Router, TypeScript) on Vercel, shadcn/ui (Base UI `base-nova` style) + Magic UI + Tailwind, Supabase (database/auth/storage), Stripe (payments), Resend + React Email, pnpm, Vitest. Server Components are the default; Server Actions handle mutations and Route Handlers handle inbound webhooks. Claude Code agent skills for every layer are pre-bundled under `.claude/skills/`. rekkal was seeded from a SaaS starter, which can be added as an `upstream` git remote to pull in foundation improvements. ## Docs - [What rekkal measures](./docs/measurement.md): the three engines, the grounded-API measurement surface, the weekly cadence with confidence bands, and the plan quotas behind `config.ts`. - [Getting started](./docs/getting-started.md): prerequisites, install, environment variables, running locally, and pnpm scripts. - [Stack](./docs/stack.md): every layer of the stack and why it is here. - [Supabase](./docs/supabase.md): database, auth flows, storage, the client factories, `proxy.ts` session refresh and route protection, and the full schema — foundation plus the 17 analytics tables. - [The two hosts](./docs/hosts.md): the marketing/app hostname split served by one project — the two URL variables, which host every absolute link belongs to, hostname routing in the proxy, per-host `robots.txt`, and why the session cookie is host-only. - [Onboarding generation](./docs/onboarding.md): how one typed domain becomes a brand profile, topics and monitored prompts, the derivation and generation layers, and what the write path enforces. - [Analytics pipeline](./docs/analytics-pipeline.md): the engine adapters, the scheduled prompt runner, mention extraction, run metering and quotas, and the sample-size statistics layer. - [The dashboard](./docs/dashboard.md): the signed-in analytics surface and the sources view, the read layer over the rollups, and where each honesty rule (visible `n`, confidence bands, suppressed deltas, honest gaps) is enforced. - [Stripe](./docs/stripe.md): payments, the `lib/stripe.ts` client, checkout/portal server actions, the webhook Route Handler, and price IDs via `config.ts`. - [Email](./docs/email.md): Resend client, the `lib/email.ts` send helpers, and React Email templates in `emails/`. - [UI](./docs/ui.md): shadcn/ui and Magic UI setup on Tailwind. - [Agent skills](./docs/agent-skills.md): the 17 pre-bundled Claude Code skills and `setup-skills.sh`. - [Deployment](./docs/deployment.md): Vercel deploy, environment variables, the Stripe webhook endpoint, the runner cron schedule in `vercel.json` and why that interval and that concurrency, and OVH DNS. ## Reference - [README](./README.md): product overview, quick start, and the upstream relationship. - [CLAUDE.md](./CLAUDE.md): authoritative project structure, conventions, and TypeScript rules. - [.env.example](./.env.example): the authoritative list of every environment variable with placeholder values. - [llms-full.txt](./llms-full.txt): the README and all docs concatenated into one file for single-shot ingestion.