Vibecode LnkFlow

track this build4 phases, 12 steps, beginner friendly
KINDA · weekend project
price $10.39/moyou'd save $124.68/yrbuild time one sittingcategory 📊 analyticsreplaced by 0 people

A short link that 302s, logs the click, and injects UTMs is genuinely one sitting on Cloudflare Workers and KV, and the prompt below builds exactly that. What is not one sitting is the loop back out to the ad platforms. Meta and Google bid against the conversion events you send them, and since ATT the browser pixel misses a large share of purchases, which is the entire reason the Conversions API and offline conversion import exist. Closing that loop means persisting fbclid and gclid at redirect time, carrying that identity to a sale that happens days later on another device, posting a Purchase with a stable event_id so it deduplicates against the pixel, rebuilding fbc in Meta's fb.1.{timestamp}.{fbclid} form, importing offline conversions to Google on gclid, gbraid, or wbraid, and reversing all of it on refund. Every one of those fails silently. That is the expensive part: the dashboard still shows clicks while the bidder optimizes against nothing.

the project pack5 files · written for this build, step by step
README.md
# LnkFlow · indie build

A short link service whose hard problems are logging a click without slowing the redirect, joining a sale that happens days later on a different device back to the click that caused it, and getting that conversion out to an ad platform before the platform's import window closes, which is a deadline nobody warns you about.

Estimated effort: **weekend**. Work `BUILD_PLAN.md` top to bottom · every phase ends in a check that has to pass before the next one starts.

## Stack

| Part | Choice | Why |
| --- | --- | --- |
| Edge | A single edge worker on your own subdomain, with the slug map in key-value storage | the redirect has to be fast and it must not wait on a write |
| Click log | A relational store at the edge, written after the response is handed back | a click nobody logged is a conversion nobody can attribute |
| Identity | A first-party cookie on your own domain plus a server-side click record | the join happens on your side, not in somebody else's browser |
| Attribution | An explicit join table with a deadline column, not a view over two tables | a conversion has an expiry and an expiry needs somewhere to live |
| Upload | A queue with retries, deduplication keys and a dead letter state | silent failure here is the expensive one, because the dashboard still looks fine |

## Before you start

Have every one of these ready. The plan assumes them from step one.

- [ ] **An edge platform account with key-value and relational storage** · free tiers cover a personal volume comfortably
  - Why: The redirect needs to run close to the visitor and the click log needs somewhere durable to land.
  - Get it: Create the account, the key-value namespace and the database, and install the platform's command line tool.
  - Verify: A deployed worker returns a redirect from a slug you created
- [ ] **A domain or subdomain you control** · the price of a domain
  - Why: A first-party cookie has to be set on a domain you own, and the whole identity design rests on that.
  - Get it: Point a record at the worker following the platform's instructions.
  - Verify: The short domain resolves and sets the cookie
- [ ] **API access to at least one ad platform** · free to obtain; approval can take days
  - Why: Without an upload path the build stops at a dashboard, which is the part that was never worth paying for.
  - Get it: Create developer credentials in the platform's console and request whatever access level conversion upload requires.
  - Verify: A test conversion appears in the platform's own reporting
- [ ] **The current import windows, written down with dates** · free
  - Why: The deadline is computed at click time from these numbers, so a wrong one silently expires conversions months later.
  - Get it: Read each platform's own documentation on offline conversion import and record the window and the date you read it.
  - Verify: Every platform in the configuration has a window and a checked-on date

## Quick start

Follow Phase 1 in `BUILD_PLAN.md`; it creates the project.

Then copy `.env.example` to `.env` and fill in the values it documents.

## Honest limits

This build deliberately does not replace:

- Certificates for domains you do not own.
- A browser pixel on the destination site.
- Identity resolution beyond what your application carries.
- Per-creator commission reporting.
- 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 one of those is essential to you, that is the reason to keep paying for LnkFlow, and the README should say so rather than pretend.

$ choose a build depth, inspect the files, then open the complete pack in your agent

why people still pay

The redirect is commodity and nobody should pay much for it. What is not commodity is staying current with Meta and Google as they change conversion endpoints, identifier formats, and consent requirements, which they do continuously and without waiting for you. Paying outsources that upkeep plus the attribution store that connects a click to a sale days later on a different device. Agencies pay for a second reason: issuing and renewing TLS for a client's branded domain is a genuinely different problem from pointing your own DNS record at a worker.

what you lose

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

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

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

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

xper-creator performance and commission reporting

prior art · use these instead of building, if you'd ratherDubThe most complete open-source link platform · analytics, custom domains, and a conversion API. Self-hostable.↗ShlinkSelf-hosted URL shortener with a REST API, click stats, and QR codes.↗YOURLSThe long-running PHP shortener · drop it on any LAMP host and it works.↗
share on X ↗"I just replaced LnkFlow ($10.39/mo) with one prompt"
the numbers

LnkFlow pricing

planmonthlyannual (per mo)what you get
starter$10.39/workspace$10.39/workspace10,000 tracked clicks/month, 50 active links, 1 branded domain, 1 month history, and 1 user
growth$45.01/workspace$22.50/workspace100,000 tracked clicks/month, 500 active links, 3 branded domains, 1 year history, and unlimited team seats
scale$114.25/workspace$57.12/workspace500,000 tracked clicks/month, unlimited active links, 10 branded domains, 2 years history, and unlimited team seats
enterprisecustom—Custom traffic, link, domain, history, and team allowances

free tierno free tier

billingmonthly + annual; 7-day trial with no card; 14-day money-back guarantee; prices exclude possible taxes

hidden costsGrowth and Scale annual prices are capacity-limited launch offers rather than normal list prices; going beyond the click, active-link, branded-domain, or history caps requires a higher plan or custom terms.

verified 2026-08-12 · source ↗

questions
Vibecode LnkFlow

Kinda. The core of LnkFlow is buildable in a weekend with the prompt on this page, but there are real gaps: 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. Read the honest list above before committing.

How much does LnkFlow cost?

LnkFlow costs about $10.39/month (Starter, checked 2026-08-12), which is $124.68 per year.

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 vibecoding; the prompt is for when you want it exactly your way.