Skip to content
LogoLogo

Asset Library

The Asset Library holds the files that your content points at. These are images, video, documents, and HTML.

The asset library on the Picked dashboard

Upload and control your assets

The Asset Library is a project-level store. Upload a file, then point at it from any Content Entry in the project.

  • Size limit: 50 MB for each file.
  • Allowed types: an image in PNG, JPEG, WebP, AVIF, GIF, or SVG. A video in MP4 or WebM. A common document format. HTML, as text/html.

Picked rejects a file of another type. It also rejects a file above the size limit.

HTML assets

Upload a .html file and point at it from an HTML asset field. Picked then scans the file. The scan is advisory: it helps you, and it never stops you. It reports findings about speed, about search rank, and about accessibility, so that you can improve the file before you publish it:

  • File size: a warning at 100 KB, and a stronger one at 250 KB.
  • Inline images: a note when inline base64 image data adds about 50 KB or more.
  • Image dimensions: an image with no width and no height. Such an image can move the content around it while the page loads.
  • Lazy load: an image with no loading="lazy" attribute.
  • Link safety: an external link with target="_blank" and no rel="noopener".
  • Link search rank: an external link with no rel="nofollow".
  • Accessibility: a pass by axe-core. It covers alt text, heading order, contrast, and more.

Every finding is advisory. You can always upload the file as it is.

How assets are served

Picked serves each asset from a sandboxed storage origin. That origin is separate from the trusted origin of your application. HTML therefore comes from its own origin, so a document that you upload runs in isolation and cannot reach the page that holds it. A script in that document cannot read a session, a token, or the DOM around it, because each of those needs same-origin access.

An Experience Content response can hold an HTML asset. The response then carries the content of that asset, and the SDK renders it with no second request to storage.