REPLACEMENT BRIEF

link in bio

Can AI replace Linktree Pro?

EDITORIAL ANSWERYESCurated prompt

A link-in-bio page is a single static file with a list of buttons. It is one of the easiest replacements in the whole catalog.

Reviewed · DeepFeather editorial

known limits the drag-and-drop editor; their analytics dashboard

Build a lightweight mobile bio-link landing page in React with customizable social profile links, avatar banner, and local click counter.

Build the personal version →

AT A GLANCE

price
$9/mo
listed annual price
$108/yr
replaceable scope
Build a lightweight mobile bio-link landing page in React with customizable social profile links, avatar banner, and local click counter.
build time
1–3 h
Build promptreviewed prompt · not run

the prompt

Curated prompt
Build me a link-in-bio page to replace Linktree. Requirements:

- A single static page: avatar, name, short bio, and a list of link buttons defined
  in one links.json file (title, url, optional emoji). Editing the JSON is the CMS.
- Clean mobile-first design, dark mode via prefers-color-scheme, subtle hover states.
  No framework needed · one HTML file with embedded CSS is fine, or Astro if you must.
- Add click tracking with zero third parties: each link goes through a /go/:slug
  redirect that appends a line to a local clicks.log (or a SQLite row) then 302s.
  Add a /stats page (basic-auth from .env) showing clicks per link.
- Proper OG tags + generated OG image so the page previews well when shared.
- Include deploy instructions for a plain VPS with Caddy or nginx.
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

Build Pack

Build a Linktree Pro replacement: the plan

What to build, what to skip on purpose, and how to tell it works. Use any agent or prompt you like — the acceptance tests decide whether it worked.

Estimated time
1–3 h
Estimated monthly cost
$0–5/mo
Subscription, for contrast
$9/mo · Pro

Editorial estimate, not a measured run · Reviewed · the subscription recurs monthly with none of your hours; the build costs one-time hours first

In scope

  • A mobile-first bio page rendering avatar, name, short bio and link buttons from one links.json file
  • Dark and light themes switched automatically via prefers-color-scheme
  • First-party click counting: /go/:slug logs a row to SQLite (or D1) and 302-redirects to the target URL
  • A basic-auth /stats page showing total and 30-day clicks per link without third-party trackers
  • Open Graph meta tags and a static preview card so social shares render cleanly

Non-goals

  • A web-based drag-and-drop visual editor — editing links.json is the CMS
  • Multi-user accounts, public sign-ups or custom themes marketplace
  • Embedded storefront checkout, tipping jars or email-list integrations
  • Third-party tracking pixels (Meta, TikTok, Google Analytics)

Recommended stack

Runtime
Node 22 (Fastify) or Cloudflare WorkersServes the static bio page and handles /go/:slug redirects in one tiny service
Content source
links.json in the repoVersion-controlled list of links with zero CMS attack surface
Click log
SQLite (better-sqlite3) or Cloudflare D1Stores timestamp, slug and referer per click without external analytics
Styling
Single embedded CSS sheetSub-10KB payload that loads fast on cellular connections

Data model

  • links.json itemslugtitleurlicon?featured?Read into memory at startup; unknown slugs on /go/:slug return 404
  • clicks tableidslugtsrefereruser_agentIndexed on (slug, ts) for the 30-day stats query

Steps

  1. Define links.jsonCreate links.json with profile metadata (name, bio, avatar path) and an ordered array of link objects.
  2. Render the bio pageServe GET / from links.json with semantic buttons pointing to /go/:slug, responsive layout, dark mode and OG tags.
  3. Redirect and logHandle GET /go/:slug: verify the slug exists in links.json, insert a click row into SQLite, and return a 302 redirect.
  4. Stats pageProtect GET /stats with Basic Auth from .env and render total clicks plus 30-day counts per link.
  5. Deploy and bind domainDeploy behind Caddy on a VPS or on Cloudflare Workers, point your domain, and document how to add a new link.

Acceptance tests

  • Open / on a narrow mobile viewport in light and dark modeAvatar, bio and all buttons from links.json render without horizontal scroll
  • Tap a button (/go/:slug)Redirects with 302 to the target URL and increments that slug's count on /stats
  • Request /go/nonexistentReturns 404 without inserting a click row
  • Visit /stats without Basic Auth credentialsReturns 401; with valid credentials, per-link totals render

Only you can do this

  • Write your bio copy, choose an avatar image and populate links.json
  • Point your domain or subdomain at the deployed service
  • Set the ADMIN_PASSWORD in .env and swap your social bio URLs over

What drives the cost

Runs at $0/month on Cloudflare Workers Free or on a VPS you already operate. If you rent a dedicated small VPS just for this, expect $4–$5/month plus your annual domain renewal.

Cost sources: linktr.ee (checked ) · developers.cloudflare.com (checked )

what AI can build

Build a lightweight mobile bio-link landing page in React with customizable social profile links, avatar banner, and local click counter.

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

The honest tradeoff

why people still pay

Paying users get a drag-and-drop editor, click analytics, hosting they never think about, and integrations with shops and email tools, most of which a one-page site can skip.

what you lose

the drag-and-drop editor

their analytics dashboard

hosted-for-you convenience

integrations you probably weren't using

Start with existing software

prior art · use these instead of building, if you'd rather

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 boundaryBuild a lightweight mobile bio-link landing page in React with customizable social profile links, avatar banner, and local click counter.

known limits · the drag-and-drop editor; their analytics dashboard

editorial reviewreviewed

BUILD FEEDBACK

Did you try this build?

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

← back to the build pack scope

questions

Can AI replace Linktree Pro?

Likely for the core workflow. This is an editorial catalog judgment, not a verified build; validate any result against your own acceptance criteria.

How much does Linktree Pro cost?

Linktree Pro is listed at about $9/month (Pro, checked 2026-10-04), or $108 per year. This is a pricing reference, not evidence of a completed replacement or realized savings.

What do I lose by replacing Linktree Pro?

Honestly: the drag-and-drop editor; their analytics dashboard; hosted-for-you convenience; integrations you probably weren't using. If any of those are load-bearing for you, keep paying.

Is there an open-source alternative to Linktree Pro?

Yes — LittleLink (open-source link page, 100+ branded buttons). Using prior art is also a valid exit; the prompt is for when you want it exactly your way.