Canvas URL Cards do not work on mobile, are not cross-platform, have no fallback

Though this topic may have come up in variations several times over the years , it has been without solution.

However, when this has come up, responses have highlighted the reason it doesn’t work, (which is due to limitations around the current implementation) - but hear me out here.
The reason it doesn’t work is not the same as the problem that needs to be solved.

More details below.

Steps to reproduce

  1. Create a new Canvas.
  2. Create a new URL Card, by pasting a URL in the Canvas, or by right-clicking > Add web page, and inserting a URL.
  3. Note the URL Card displays an embedded webpage.
  4. Open the Canvas on a mobile device.
  5. Note the URL Card is empty/blank/not-functional.

Did you follow the troubleshooting guide? [Y/N]

Y

Expected result

The URL Card should serve a functional purpose by displaying the website of the URL, or,
by displaying functional information about the URL by using the URL’s metadata.

Actual result

The URL Card is not functional.
The URL Card is an empty blank box.
The URL Card shows no information about the URL except the raw URL itself.

Environment

SYSTEM INFO:
Obsidian version: v1.8.10
Installer version: v1.6.5
Operating system: Darwin Kernel Version 24.4.0: Fri Apr 11 18:28:23 PDT 2025; root:xnu-11417.101.15~117/RELEASE_X86_64 24.4.0
Login status: not logged in
Language: en
Insider build toggle: off
Live preview: on
Base theme: adapt to system
Community theme: none
Snippets enabled: 0
Restricted mode: on

RECOMMENDATIONS:
none


Additional information

  • The reason it doesn’t work right now =/= the problem that needs solving.
  • URL cards should be made cross-platform and functionally fallback-safe, which they aren’t right now.
  • This can be achieved by displaying them as Link Preview Cards instead of Website Embeds by default, with an option to display as Website Embeds if desired.

The Reason it Doesn’t Work Right Now, and the Problem that Needs Solving

  • To reiterate, when this has come up previously, responses have highlighted the reason it doesn’t work, which is due to technical limitations around the current implementation.

  • The reason it doesn’t work, is that on desktop, Obsidian uses an Electron tag called <webview> to display URL cards, and on mobile, Obsidian uses iframes instead, which often doesn’t work because websites often block being embedded in iframes.

  • Okay, so that’s the reason the current implementation doesn’t work.
    But that isn’t the problem that needs solving.

  • The problem that needs solving, is that when the embed display fails, the feature simply doesn’t function at all; it has no fallback; it’s a blank square.

URL cards should be made cross-platform and functionally fallback-safe

And so, I propose URL cards can be made cross-platform and fallback-safe with a different implementation: having them function as Link Preview Cards by default instead of Website Embeds by default, with an option to display as Website Embeds if desired by user.

  • This would work by using and pulling already-existing OpenGraph metadata from a URL on creation of a URL Card:
    • For Page Title, og:title
    • For Site Name, og:sitename
      • this could be cached, or added to Frontmatter.
    • For Image, og:image, if available
      • this could be cached, or stored in user’s Attachments folder.
  • The resulting card, instead of being a fully embedded webpage, would be basically formatted with that metadata (and remain targetable by user css), and can be clicked/tapped to open in the user’s default browser, regardless of their device.

This is how a URL Card looks in Obsidian Canvas today:

This is how other Infinite Canvas applications successfully solve for this problem:

This is filed as a Bug Report not a Feature Request; and is filed this way because the Bug causes an existing Feature to break and not to function.
If you think this is better filed as a Feature Request, please let me know.

2 Likes