Assets

The atomic unit of DesignVault. An asset = one visual creation with metadata, source, and history.

Anatomy

  • Title + description — for search and identification
  • Asset type — landing_page, email, social_media, banner_ad, print_*, etc. Configurable per org.
  • Source — Figma file_key + node_id, or external URL, or direct upload
  • Thumbnail — PNG stored in Supabase Storage, 24h signed URL
  • Client + product — structured fields with their own Library pages; the AI scan proposes them when a logo is visible
  • Tags — multi-category (product, campaign, brand, custom)
  • Collections — an asset can belong to N collections
  • External links — Adobe Express, Canva, project management, etc.
  • Status — active, archived, pending_ai_review

Supported sources

TypeHow to import
Figma framePaste the frame URL from Figma
Figma pluginSelect in Figma → Send to DesignVault
Direct uploadDrag & drop an image or PDF (PNG/JPG/WebP/GIF/AVIF/PDF, max 25 MB)
External URLPaste an Adobe Express, Canva, or other link
Web ClipperChrome extension — right-click any image, or capture the current tab from the toolbar (Alt+Shift+D)
AI generatorsClip from Midjourney, Ideogram, Gemini, ChatGPT… — the generator and prompt are captured automatically
Programmatic APIPOST /api/v1/assets with image_url or image_base64

AI generations

DesignVault is generator-agnostic: create in Midjourney, Ideogram, Google Gemini, ChatGPT, Firefly, Stable Diffusion or anywhere else, and your library stays the single organized home for the results. Every import records two provenance fields when they can be found:

  • Generator — which tool produced the image, detected from the page you clipped, metadata embedded in the file (XMP, C2PA Content Credentials, Stable Diffusion PNG chunks), or provided explicitly via the API
  • Prompt — the generation prompt, scraped by the Web Clipper next to the image or read from the file's embedded metadata; shown (and copyable) on the asset page, indexed in full-text search, and fed to the AI scan for sharper tagging

A plain drag & drop of a downloaded Midjourney or Stable Diffusion file is enough — the prompt travels inside the file. Assets with a detected generator are badged as AI-generated automatically.

Deduplication

For Figma imports, uniqueness is guaranteed by (organization_id, figma_file_key, figma_node_id). If you re-import the same frame, you get a dialog offering to:

  • View — open the existing asset
  • Update — refresh the thumbnail and metadata
  • Create — force-create a new asset
  • Cancel

Search

Full-text search over title + description + tag names via Postgres tsvector (simple dictionary — bilingual FR/EN). When AI is enabled for your org, search becomes hybrid: 0.4 × full-text rank + 0.6 × semantic similarity, so a plain-language description finds assets regardless of their file names. Details in AI features.

Annotations

Figma-style pins dropped directly on the thumbnail. Click anywhere on an asset's image to leave a positioned comment; pins support replies, resolve, and live updates for everyone viewing the asset. Positions are stored as percentages, so they survive resizes and multi-page assets.

Figma thumbnail refresh

When you open the detail view of a Figma asset, we compare its last_modified with the one we stored. If Figma has a newer version, the thumbnail refreshes automatically in the background. With a Figma webhook registered, edited files refresh on their own — details in Figma integration.