Flinku Docs

Custom Deepview URL

Show your own website behind the "Open App" panel instead of Flinku's default Deepview. Studio plan only.

How it works

When a user taps a Flinku link on mobile, your website loads full-screen behind a fixed bottom panel. The panel shows your app icon, app name, and an "Open App" button. All deep linking mechanics, intent:// on Android, URI scheme on iOS, IAB detection, clipboard deferred matching. All work automatically.

Setup

  1. Go to dashboard → Project → Deepview settings.
  2. Paste your website URL in the Custom Deepview URL field.
  3. Save.

Step 1: Allow iframe embedding

By default most websites block iframe embedding. You need to update your site's headers to allow it from your custom Flinku domain.

Replace your-flinku-custom-domain with the custom domain you configured in Flinku, e.g. go.drkalo.app, links.yourapp.com, whatever you set up.

Firebase Hosting

In firebase.json, update your headers:

json
{
"headers": [
{
"source": "**",
"headers": [
{
"key": "Content-Security-Policy",
"value": "... frame-ancestors 'self' https://your-flinku-custom-domain ..."
}
]
}
]
}

Remove any X-Frame-Options header entirely. frame-ancestors in CSP replaces it. Deploy after.

Other hosting

bash
Content-Security-Policy: frame-ancestors 'self' https://your-flinku-custom-domain

Step 2: Test on Safari first

Open a Flinku link on Safari iOS. Your website should load behind the panel. If it's blank on Safari, your headers from Step 1 are not applied correctly. Check and redeploy.

Step 3: Fix blank iframe on Chrome (Firebase apps)

If your site uses Firebase and the iframe shows blank on Chrome but works on Safari, this is caused by Chrome's third-party storage partitioning blocking Firebase Auth's internal iframe.

The fix is to create a dedicated lightweight /embed page on your site that does not initialize Firebase or any auth. Use this URL as your Custom Deepview URL instead of your root domain.

  1. Create public/embed.html: pure HTML and CSS, no Firebase SDK, no auth init. Show your app branding, screenshots, tagline.
  2. In firebase.json, add to rewrites before the catch-all:
    json
    { "source": "/embed", "destination": "/embed.html" }
  3. Deploy.
  4. In Flinku dashboard, update Custom Deepview URL to https://yourapp.com/embed.

Panel behavior

  • App icon and name pulled from project settings automatically.
  • Android: "Open App" uses intent://: triggers native OS dialog.
  • iOS: uses URI scheme, triggers "Open in App?" system prompt.
  • Auto-attempts to open the app 800ms after load in standard browsers.
  • IAB detection active. "Open in Safari" button appears inside Instagram, TikTok, Gmail, etc.
  • Clipboard deferred deep linking works automatically.
  • Panel colors follow your Deepview appearance settings.