REPLACEMENT BRIEF

analytics

Can AI replace LnkFlow?

EDITORIAL ANSWERKINDACurated prompt

The redirect is genuinely one sitting — a slug, a 302, a click log, UTM injection, on Workers and KV. The product is the loop back out to the ad platforms: since ATT the browser pixel misses a large share of purchases, so Meta and Google bid on server-side conversion events. Closing that loop means persisting click ids at redirect time, carrying them to a sale days later on another device, posting a Purchase that deduplicates against the pixel, and reversing it on refund — every step failing silently while the dashboard still shows clicks.

Reviewed · DeepFeather editorial

known limits Purchase events delivered back to Meta CAPI with stable event_id deduplication against the browser pixel; Google offline conversion import keyed on gclid, gbraid, or wbraid

Resolve a slug to a destination at the edge, log the click, inject UTMs, pass ad click ids through untouched, and 302.

Build the personal version →

AT A GLANCE

price
$10/mo
listed annual price
$120/yr
replaceable scope
Resolve a slug to a destination at the edge, log the click, inject UTMs, pass ad click ids through untouched, and 302.
build time
one sitting
Build promptreviewed prompt · not run

the prompt

Curated prompt
Build me a branded link shortener with click tracking to replace LnkFlow. Requirements:

- Cloudflare Workers via wrangler: KV for the slug lookup, D1 for the click
  log. Free tier, nothing to babysit.
- A worker on lnk.mydomain.com/{slug} reads KV, writes the click to D1 inside
  ctx.waitUntil so the redirect never waits, then 302s with X-Robots-Tag:
  noindex and Cache-Control: no-store.
- Inject UTM params at redirect time from the link's KV record, and pass
  incoming fbclid, gclid, gbraid, wbraid, and msclkid through to the
  destination untouched.
- Log per click: slug, timestamp, country from request.cf, user-agent,
  referer, and those ad click ids. Skip bot user-agents from a pattern list
  in one file.
- An /admin page behind one password (wrangler secret) to create links and
  show clicks per link per day as a plain table.
- Secrets via wrangler secret, never in wrangler.toml. No accounts, no
  third-party analytics, no telemetry.
- Out of scope: posting Purchase events back to Meta CAPI or Google offline
  conversion import · stable event_id for pixel dedup, fbc as
  fb.1.{timestamp_ms}.{fbclid}, and refund reversal. A silently wrong
  conversion feed is worse than none.
- Out of scope: TLS for domains I do not own. My own subdomain is one DNS
  record · a client's domain means Cloudflare for SaaS and DCV renewals.
- README: wrangler setup, the KV namespace and D1 database, the DNS record,
  and adding the first link.
Copy or open in an agent

The prompt stays readable first. Choose a launch option when you are ready.

$ open in your agent (prompt prefilled, you press enter) or copy it raw

what AI can build

Resolve a slug to a destination at the edge, log the click, inject UTMs, pass ad click ids through untouched, and 302.

The prompt was editor-reviewed; no completed build is recorded.

The honest tradeoff

why people still pay

The 302 is commodity; staying current with Meta's and Google's conversion endpoints, identifier formats, and consent rules — which change continuously — is not. Agencies pay a second reason: TLS on a client's branded domain is a different problem from pointing your own DNS at a worker.

what you lose

Purchase events delivered back to Meta CAPI with stable event_id deduplication against the browser pixel

Google offline conversion import keyed on gclid, gbraid, or wbraid

click to lead to sale attribution that survives a multi-day gap, with refund reversal

TLS on a customer's branded domain (Cloudflare for SaaS and 90-day DCV renewals, not one DNS record)

per-creator performance and commission reporting

EVIDENCE LEDGER

What this page can prove

The verdict judges replaceability. The evidence level records what DeepFeather actually checked.

Read the methodology →
evidence level
Curated prompt

The prompt was editor-reviewed; no completed build is recorded.

replacement boundaryResolve a slug to a destination at the edge, log the click, inject UTMs, pass ad click ids through untouched, and 302.

known limits · Purchase events delivered back to Meta CAPI with stable event_id deduplication against the browser pixel; Google offline conversion import keyed on gclid, gbraid, or wbraid

editorial reviewawaiting manual review

BUILD FEEDBACK

Did you try this build?

Report the outcome. Submissions enter a manual evidence queue and never auto-upgrade the verdict.

questions

Can AI replace LnkFlow?

Possibly for a narrower core workflow. Expected gaps include: Purchase events delivered back to Meta CAPI with stable event_id deduplication against the browser pixel, Google offline conversion import keyed on gclid, gbraid, or wbraid. This is an editorial catalog judgment, not a verified build; validate any result against your own acceptance criteria.

How much does LnkFlow cost?

LnkFlow is listed at about $10/month (Starter, checked 2026-07-30), or $120 per year. This is a pricing reference, not evidence of a completed replacement or realized savings.

What do I lose by replacing LnkFlow?

Honestly: Purchase events delivered back to Meta CAPI with stable event_id deduplication against the browser pixel; Google offline conversion import keyed on gclid, gbraid, or wbraid; click to lead to sale attribution that survives a multi-day gap, with refund reversal; TLS on a customer's branded domain (Cloudflare for SaaS and 90-day DCV renewals, not one DNS record); per-creator performance and commission reporting. If any of those are load-bearing for you, keep paying.

Is there an open-source alternative to LnkFlow?

Yes — Dub (The most complete open-source link platform · analytics, custom domains, and a conversion API. Self-hostable.), Shlink (Self-hosted URL shortener with a REST API, click stats, and QR codes.), YOURLS (The long-running PHP shortener · drop it on any LAMP host and it works.). Using prior art is also a valid exit; the prompt is for when you want it exactly your way.