Skip to content
← Back to workCase study

Openlynk

A dynamic-links & attribution platform - designed, built and shipped solo.

  • Solo build
  • 2025-2026
  • Next.js / TypeScript
  • Supabase / Postgres
  • Flutter SDK
Overview

What it is, and why it exists.

Openlynk is a dynamic-links and deep-linking platform: smart links that route people to the right place across iOS, Android and web, with real-time analytics, custom domains and native SDKs. I designed, built and shipped the whole thing on my own - the Next.js/TypeScript dashboard, the Postgres/Supabase backend, the Flutter SDK, the documentation and the marketing site.

It exists because Firebase Dynamic Links was sunset and the alternatives - Branch, AppsFlyer - price out independent developers. Openlynk offers the same deep-linking capability with honest analytics, sub-50ms edge redirects and transparent pricing.

Engineering

Four problems worth solving properly.

The decisions that made Openlynk trustworthy, not just shippable.

  • 01

    Getting attribution honest

    Attribution began fully deterministic - match a click to an install or open from device and URL signals. But mobile clicks weren't reliably being recognised as mobile, so I layered in fingerprinting to keep the match rate high: a deterministic-plus-probabilistic mix. The harder problem was accuracy in the other direction. When a link is shared in WhatsApp or Slack, those apps fetch it to render a preview - and every unfurl looked exactly like a real click, inflating analytics with traffic no human generated. I built detection to identify and strip those non-human hits, so the numbers reflect actual users instead of preview bots.

  • 02

    Multi-tenant security in Postgres

    Customer data is isolated per organisation (a 'workspace' in the UI); users join through memberships with owner, admin and member roles. Almost every table gates reads with an is_org_member(org_id) policy - links check membership through their app - while writes require is_org_owner or is_org_owner_or_admin. Sensitive columns like Firebase service-account JSON and API-key hashes are locked down with column-level REVOKE and reachable only through gated RPCs, and organisation creation has no client insert path at all. Heavy analytics aggregates and atomic multi-table operations run as SECURITY DEFINER RPCs, often service-role-only from API routes - so I aggregate in Postgres for speed instead of shipping raw rows to the client or fighting row-level security.

  • 03

    Uninstall detection via an SDK heartbeat

    The Flutter SDK sends a lightweight heartbeat. When a device stops checking in, Openlynk can infer that the app was uninstalled - turning 'installs' into a real retention signal rather than a one-time count. It's the part of the SDK I'm proudest of.

  • 04

    Solo scope discipline

    Openlynk started as a dynamic-links tool and grew into link analytics. Ad-network integration would round out the attribution story and it genuinely matters - but as a solo builder I deliberately did not build it yet. Shipping a focused, correct product mattered more than a broader one I couldn't maintain alone.

Architecture

Click to insight, end to end.

  1. Link clickWeb / social share
  2. Edge redirectSub-50ms, global
  3. AttributionDeterministic + fingerprint, bot filter
  4. PostgresRLS + SECURITY DEFINER RPCs
  5. Dashboard & SDKAnalytics + heartbeat
Traction

Early, honest validation

Launched in 2026 with around 140 signups and 5+ paying customers on live pricing tiers. The point is not the size of the number - it is that the entire loop works solo: build, ship, charge, and support a real product that people pay for.

Paying customers
5+

Paying customers

Signups
140+

Signups

Engineer (end-to-end)
1

Engineer (end-to-end)

Product

A look at the product.

Openlynk dashboard showing real-time clicks, active links and installs
The dashboard: real-time clicks, active links and installs.
Openlynk features: dynamic links, multi-app management and real-time analytics
Dynamic links, multi-app management and real-time analytics.
Openlynk REST API and SDK code sample
A clean REST API and native SDKs - integrate deep linking in minutes.
Openlynk transparent pricing tiers
Transparent pricing, versus enterprise-priced incumbents.

See it live.

Openlynk is running in production - explore it, or let's build something like it together.