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
| Type | How to import |
|---|---|
| Figma frame | Paste the frame URL from Figma |
| Figma plugin | Select in Figma → Send to DesignVault |
| Direct upload | Drag & drop an image or PDF (PNG/JPG/WebP/GIF/AVIF/PDF, max 25 MB) |
| External URL | Paste an Adobe Express, Canva, or other link |
| Web Clipper | Chrome extension — right-click any image, or capture the current tab from the toolbar (Alt+Shift+D) |
| AI generators | Clip from Midjourney, Ideogram, Gemini, ChatGPT… — the generator and prompt are captured automatically |
| Programmatic API | POST /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.