Skip to content
Back to Transmissions
// DATE
// AUTHOR
DHAATRIK
// CLEARANCE
PUBLIC
// INTERACTION

Why I Built a Deep-Link Handoff Tool — and What It Actually Is (Not Electron)

Instant App Opener
====================================================================
// TRANSMISSION METADATA // QUICK REFERENCE (AEO/LLMO OBJECTS)
--------------------------------------------------------------------
- ENTITY: Instant App Opener (github.com/dhaatrik/instant-app-opener)
- VERSION: v0.2.0 (README display name "V2")
- SCOPE: Web app — social URL → mobile deep link + QR + Web Share
- MOTIVATION: Browser handoffs for YouTube/X/LinkedIn links feel broken on phones
- AUDIENCE: Anyone sharing social links desktop→phone or phone→phone
- KEY LESSON: Deep links are hints, not guarantees — and my portfolio lied about Electron
====================================================================

SYS.STATUS: TRANSMISSION LIVE // CLEARANCE: PUBLIC

Hey. My portfolio still described Instant App Opener as an Electron tray launcher with global hotkeys while the GitHub repo had pivoted to a Next.js 15 web app. I am fixing that here — starting with what the tool actually does today.

You know the moment: a friend sends a YouTube link, you tap it, and your phone opens Safari with a login wall instead of the YouTube app you already installed. Same story for X posts, TikToks, Instagram reels. The content is fine; the handoff is broken.

I built Instant App Opener to sit in the middle: paste a normal https:// URL, get a platform-specific deep-link URI, copy it, share it, or encode it as a QR code for desktop→phone transfer.


Mission Report: The Why — What Problem Was I Actually Solving?

Three frustrations stacked:

  1. Web URLs default to the browser. Platform share sheets and SMS clients ship the canonical HTTPS link. Mobile OSes can route to native apps, but parsing is inconsistent and users cannot easily preview or edit the handoff.

  2. Desktop→phone sharing is awkward. I often find a link on a laptop and want it on my phone. Typing youtube:// schemes by hand is not a workflow — QR + copy is.

  3. I do not need another Raycast clone. Early experiments flirted with a native launcher (tray icon, hotkeys, registry keys). That solved a different problem — opening local binaries fast. The pain I kept hitting was social link routing on mobile, not spawning VS Code from the system tray.

Instant App Opener is not an Alfred replacement. It is a frictionless bridge between standard web URLs and mobile app URI schemes.


Mission Report: What Instant App Opener Is — Concrete Scope

As of v0.2.0, the app is a client-side Next.js utility:

InputOutput
YouTube, X, LinkedIn, Instagram, Facebook, TikTok, Spotify URLsPlatform-specific deep-link URI
Validated preview cardCopy Link, Web Share, QR Code
Desktop sessionScannable QR for phone handoff

Supported flow:

  1. Paste a standard social URL into the input field.
  2. The app detects the platform, validates the URL, and renders a preview.
  3. Copy the generated deep link, trigger native Web Share, or show a QR code for another device.

Stack (from package.json): Next.js 15.4, React 19, TypeScript 5.9, Tailwind CSS 4, Motion, qrcode.react, Cheerio for parsing, Vitest for tests.

It is web-only. No Electron. No global hotkeys. No system tray. Semver 0.2.0 means early — APIs and platform URI rules will drift.


Mission Report: Who I Built It For (and Who Should Skip It)

Built for:

  • People who share social links and want recipients to land in the native app when possible
  • Desktop users who want a QR handoff to their phone without retyping URLs
  • Developers curious about URI scheme mapping across platforms

Not built for:

  • Power users who need a local app launcher with hotkeys — wrong product; look at Raycast/Alfred
  • Guaranteed deep-link success when the target app is not installed — OS fallbacks vary
  • Enterprise link management, analytics, or short-link hosting

Mission Report: Fuckups & Learnings

  • My portfolio described a different app. Electron v1.2.0, sub-150ms tray popup, Windows registry keys — that was an old direction. The repo README now says “Instant App Opener V2” as a Next.js deep-link converter. Lesson: grep your own site before someone else does.
  • Deep links are not contracts. iOS and Android handle youtube://, twitter://, and friends differently. App-not-installed cases fall back to web or fail silently. I document the generated URI; I cannot promise the OS honors it.
  • Platform parsers break when URLs change. Social sites love new path formats. Cheerio-based extraction needs maintenance when platforms shuffle query params or short-link redirects.
  • Web Share API is optional. Desktop browsers may not expose navigator.share. Copy + QR remain the reliable path.

Mission Report: Current State & Key Artifacts

Instant App Opener v0.2.0 ships with Vitest coverage and CI. README enforces 100% test pass on PRs.

git clone https://github.com/dhaatrik/instant-app-opener.git
cd instant-app-opener
npm install
npm run dev
# Opens http://localhost:3000
npm run test   # Vitest + React Testing Library
npm run lint

Mission Report: Closing Transmission

Paste a link. Get a deep link. Copy, share, or QR it to your phone. That is the whole product — small, honest, and not a desktop launcher.

If you are wrestling with portfolio drift like I was, start by reading your upstream README before your personal site quotes it. If you want the full project page with scope and limitation tables, see Instant App Opener.