Changelog

Built in public.

Every shipped feature, every architectural decision, every milestone — logged here. No marketing fluff, just what changed and when. Subscribe to the waitlist below to get a weekly digest.

milestone

Open beta — free, no waitlist

Pivoted from waitlist gating to open beta. Sign in with Google, get a fresh tenant, start running variants. Bandit + ad serving free for everyone during beta. AI generation requires BYOK (your own Google AI Studio key) so we can keep beta genuinely free — Google's free tier covers typical ad-gen volume.

ship

Marketing site live

Public landing page, pricing, how-it-works, FAQ, sign-in/sign-up. The whole pitch in one place. Building in public starts now — every shipped feature lands here.

ship

Ad server, widget, AI Gateway wired

Full ad-serving pipeline running: ad dispatcher with Thompson-sampling bandit, widget JS (~60 LOC), click attribution with first-party cookie + URL query fallback, Cloudflare AI Gateway integrated for Gemini text generation. Auth via Google OAuth (Auth.js v5 + Drizzle D1 adapter).

milestone

D1 schema with future-proofing

Multi-tenant from day one. Publisher_tenant_id, network_tier, revenue_share_pct fields baked into the schema so Stage 2 (self-host customers) and Stage 3 (publisher network) add without data migration. 13 tables across creatives, placements, impressions, clicks, attribution, approvals, fact bank.

milestone

Repo live on private GitHub

spconroy/trafficloopback initialized, Cloudflare Worker deployment via @opennextjs/cloudflare wired to the GitHub repo for auto-deploy on push.

Try what's already shipped.

Free during beta. Bandit + ad serving + attribution all live now. AI generation and push-to-paid coming soon.

Start free in beta