Beta

Tools we use

The stack, named.

We're built on third-party services. Here's who, and what for.

Hosting + delivery

Vercel ↗

Hosts receipts.report and ops.receipts.report. Vercel Pro on Fluid Compute. CDN, edge functions, automatic preview deploys.

Cloudflare ↗

DNS for receipts.report and wildcard subdomain provisioning for the future Reporter platform.

OVH ↗

Bare-metal Postgres host for our civic data graph (the eight federal data sources live on a dedicated box in Vint Hill, VA).

Identity + payments

Clerk ↗

Authentication. Email magic link, Google, and X sign-in. Clerk receives only what its sign-in providers send; see /privacy.

Stripe ↗

Billing for subscriptions and (for Reporters) Stripe Connect for payouts. We never see your card details — Stripe handles all payment data directly.

Communication

Resend ↗

Transactional + newsletter email — sign-up confirmations, delta alerts, the bi-weekly newsletter, the custom briefings.

Observability

PostHog ↗

Product analytics and error reporting. Anonymous page views + feature interactions. No retargeting, no ad networks, no third-party tracking.

Reasoning

Third-party LLM providers

The agent reasons across our data graph using third-party large-language-model infrastructure. We won’t name the specific provider here — model selection is an ongoing engineering decision, and we may route different requests to different providers to fit the cost envelope without changing the user-facing experience.

Every agent answer cites primary-source rows. The reasoning layer is replaceable; the citation contract is not.

Open-source we lean on

Next.js + React ↗

The platform and operator app are both Next.js apps.

Postgres ↗

Postgres 17 powers the civic data graph and (eventually) the app-state database.

Drizzle ORM ↗

Schema and queries for both databases.

Last updated 2026-05-21PrivacyData integrity