Skip to content

Commit 9b7dd91

Browse files
authored
Update README.md (#19)
1. Features list - Added "Smart App Opening" as a feature bullet 2. Redirect section - Added a paragraph explaining the mobile interstitial behavior, when it triggers, and fragment preservation
1 parent 5b1a531 commit 9b7dd91

1 file changed

Lines changed: 18 additions & 15 deletions

File tree

README.md

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -44,21 +44,22 @@
4444

4545
## Features
4646

47-
**Smart Link Routing** - Create short links with device-specific URLs for iOS, Android, and web \
48-
**Device Detection** - Automatic detection and routing based on user device \
49-
**Click Analytics** - Track clicks with geolocation, device type, platform, and more \
50-
**UTM Parameters** - Built-in support for UTM campaign tracking \
51-
**Targeting Rules** - Filter by country, device, and language before redirecting \
52-
**QR Code Generation** - Generate QR codes (PNG/SVG) for any link \
53-
**Deferred Deep Linking** - Probabilistic fingerprint matching for install attribution \
54-
**Webhooks** - Event-driven integrations with HMAC-signed payloads and retry logic \
55-
**OG Preview Pages** - Social media scraper detection with Open Graph meta tags \
56-
**iOS Universal Links & Android App Links** - Serve `.well-known` files automatically \
57-
**Link Expiration** - Set expiration dates for time-sensitive links \
58-
**Redis Caching** - Optional Redis support for high-performance link lookups \
59-
**PostgreSQL Storage** - Reliable data persistence with full SQL capabilities \
60-
**TypeScript** - Fully typed API for better developer experience \
61-
**No Auth Included** - Bring your own authentication; `userId` is optional for multi-tenant scoping
47+
- **Smart Link Routing** - Create short links with device-specific URLs for iOS, Android, and web \
48+
- **Device Detection** - Automatic detection and routing based on user device \
49+
- **Click Analytics** - Track clicks with geolocation, device type, platform, and more \
50+
- **UTM Parameters** - Built-in support for UTM campaign tracking \
51+
- **Targeting Rules** - Filter by country, device, and language before redirecting \
52+
- **QR Code Generation** - Generate QR codes (PNG/SVG) for any link \
53+
- **Deferred Deep Linking** - Probabilistic fingerprint matching for install attribution \
54+
- **Webhooks** - Event-driven integrations with HMAC-signed payloads and retry logic \
55+
- **Smart App Opening** - Mobile clicks serve an interstitial that tries the app via URI scheme, falls back to the App Store / Play Store. Preserves URL fragments for E2E encryption keys \
56+
- **OG Preview Pages** - Social media scraper detection with Open Graph meta tags \
57+
- **iOS Universal Links & Android App Links** - Serve `.well-known` files automatically \
58+
- **Link Expiration** - Set expiration dates for time-sensitive links \
59+
- **Redis Caching** - Optional Redis support for high-performance link lookups \
60+
- **PostgreSQL Storage** - Reliable data persistence with full SQL capabilities \
61+
- **TypeScript** - Fully typed API for better developer experience \
62+
- **No Auth Included** - Bring your own authentication; `userId` is optional for multi-tenant scoping
6263

6364
## Installation
6465

@@ -239,6 +240,8 @@ GET /:templateSlug/:shortCode
239240
240241
Automatically redirects users to the appropriate URL based on device type (iOS/Android/web), evaluates targeting rules, and tracks the click asynchronously.
241242
243+
**Mobile interstitial:** When a link has `appScheme` configured and a store fallback URL (iOS App Store or Google Play), mobile requests receive a smart interstitial page instead of a raw 302 redirect. The interstitial tries to open the app via URI scheme and falls back to the app store after 1.5 seconds. This handles the case where a 302 to a custom URI scheme fails silently when the app is not installed. URL fragments are preserved through the redirect, enabling patterns like E2E encryption where the decryption key lives in the fragment.
244+
242245
### QR Codes
243246
244247
```bash

0 commit comments

Comments
 (0)