Sales attribution for creators selling digital products

Micro-SaaSWeb1 weekNext.jsStripe/Gumroad webhooksPostgresRedis

The idea

A creator selling a $200 course posts on YouTube, Instagram, and a newsletter, then sees 30 Stripe sales and has no idea which channel earned them. That question decides where their next month of effort goes, and today it is answered by vibes. Cometly answers it properly — for ad agencies, at ad-agency prices, with pixels, server-side tracking, and CRM plumbing a solo creator will never set up.

The wedge is radical simplicity: one webhook connection to where creators already sell (Stripe, Gumroad, Lemon Squeezy, Stan), smart links instead of pixels, and a dashboard that says revenue per post in dollars. No attribution models to configure, no tag manager. Honesty is the differentiator — showing an explicit unattributed bucket instead of pretending precision — because the competition for this buyer is not Cometly, it is a spreadsheet and guessing.

Who pays

Creators making $5k+/mo from digital products pay $29-79/mo, self-serve, priced off tracked revenue so the free tier catches them early and the upgrade is automatic growth. Distribution: build-in-public content on the exact question (which platform actually sells courses), integrations marketplace listings on Gumroad and Lemon Squeezy, and creator-economy newsletters.

MVP scope

  • Smart links with channel and post tagging, redirects, and QR codes
  • Webhook ingestion for Stripe, Gumroad, and Lemon Squeezy purchases
  • UTM-first attribution with fingerprint fallback and explicit confidence levels
  • Dashboard with revenue by channel, top posts, and honest unattributed share
  • Revenue-based tiers with Stripe billing
  • Skip for v1: paid-ads integrations, email-platform sync, multi-touch models, team seats, mobile app
// Build prompt — paste into Cursor / Claude Code / Lovable / Bolt
Build WhichLink, revenue attribution for creators selling digital products. Stack: Next.js (App Router), webhook receivers for Stripe, Gumroad, and Lemon Squeezy, Postgres for events, Redis for click buffering and dedupe.

Core flow: creator connects their payment platform (Stripe OAuth, or paste a Gumroad/Lemon Squeezy webhook secret) — one connection, no pixel. They create smart links: wl.ink/yt-launch redirects to the sales page with UTMs appended, tagged with a channel (YouTube, newsletter, Instagram, podcast) and optionally a specific post. Clicks are logged to Redis then flushed to Postgres. When a purchase webhook arrives, the attributor joins it to a click via UTM parameters on the checkout session, falling back to a fingerprint of IP-prefix plus user agent within a 7-day window, and records confidence (exact, probable, unattributed).

Pages: dashboard (revenue by channel this month, top posts by revenue, unattributed percentage stated honestly), links manager with QR codes, single-post drilldown, connect/settings, billing.

Non-obvious details: Gumroad checkout strips most parameters, so pass attribution through the URL query that Gumroad echoes back in the webhook as url_params — document per-platform quirks in code; always show the unattributed bucket rather than force-assigning it, because trust is the product.

Pricing: free up to $1k tracked revenue/mo, Creator $29/mo to $20k, Pro $79/mo unlimited plus CSV export and multiple projects.

// More Micro-SaaS ideas