Bibliothèque média
The single store for every asset. You upload once and reuse everywhere: Studio, Pages, Products, Presentations, Ads. Each file keeps its alt-text, its tags, its usage history and its lineage when it comes from a generation.
Overview
The media library is the source of truth for a workspace's files. An image, a logo, an icon, an Open Graph image, an avatar, a video, a PDF document. Each item carries its MIME type, its size, its dimensions, a checksum, and editorial metadata: kind, collection, tags, alt-text, caption. You sort your assets into named collections (persona, brand, inspiration, product shots, OG) and find them again by filter or by search.
Files live in a storage bucket, served by short-lived signed URL for private assets, by public URL for the ones filed under a public prefix. An upload computes a checksum and dedups on the spot: if the same file already exists unarchived in the workspace, you get the existing one instead of a duplicate. A workspace can have a byte quota, checked before every upload.
The part that matters for real use: usage tracking and lineage. When another module places an image (a page, a Studio draft, an ad visual, a booking avatar), it records the usage. On each file you see who references it and how many times. Generated images keep the trace of their parents (the reference images used to generate them) and their children (what was generated from them). A file with no usage for a while surfaces as an orphan so it can be purged.
What the module does
File kinds and collections
Each item has a kind that drives its display and its filters. The main page filters by kind and by collection, with a full-text search over alt-text, caption and generation prompt. Collections are named folders with their own dedicated pages.
- Kinds: photo, logo, icon, Open Graph, avatar, AI generated, video, document, other
- Shipped collections: persona, brand, inspiration, product shots, OG
- Full-text search over alt-text, caption and generation prompt
- Every file carries free tags, editable at any time
Upload, dedup and quota
An upload computes a SHA-256 checksum and looks for a duplicate in the workspace. If the file already exists and is not archived, you get the existing one, not a copy. Before writing, the workspace checks its byte quota: if the upload would exceed it, it is refused. A cross-workspace dedup pass also runs on a schedule: for a given checksum it keeps the oldest and archives the rest.
Signed URLs and public assets
Private files are served by short-lived signed URL, one hour by default. Files filed under a public prefix come out as a stable public URL. Opening a file's detail mints a fresh signed URL each time, so a copied link expires, which is intended.
Cross-module usage tracking
When another module places a file on an entity, it records the usage: the entity type, its id, and the field involved. The record is idempotent on the file, entity, field triple, so no double counting. On a file's detail you read the list of entities that reference it, and the usage count shows on the thumbnail.
- Studio: post visuals and generated YouTube thumbnails
- Pages: images placed inside a page block
- Ads: ad visuals and brand kit
- Booking: avatar on the booking page
Lineage of generated images
An AI-generated image keeps its parents (the reference images passed to the model) and records its model, its prompt and its generation metadata. The file detail shows the source images at the top and the derived images below. You can trace a final visual back to the references that produced it.
Reference personas
A workspace can mark a small selection of files as active personas. These are the images that Studio generation passes to the model by default as references, to keep a face or a style consistent. The selection is validated: each id must belong to the workspace.
Orphans and purge
A file with no recorded usage, older than a threshold, surfaces in an orphan report sorted by size. On the platform side, MCP tools give per-workspace usage, the orphan list, quota setting, and the hard purge of files archived long enough.
How to use it
- 01
Upload your assets
From /media, you drag your files into the upload zone. The checksum dedups, the quota is checked, the item shows in the grid.
- 02
Sort and describe
You open a file, set a kind, a collection, tags, an alt-text and a caption. Full-text search relies on these fields.
- 03
Reuse elsewhere
From Studio, Pages or Ads, you pick a library file instead of re-uploading. The usage is recorded on the file.
- 04
Mark your personas
You select the reference images to pass by default to Studio generation, to keep a consistent style.
- 05
Track usage and lineage
On a file's detail, you see who references it, its source images and its derived images.
- 06
Clean up orphans
You spot files with no usage for a while and archive them, or hard-purge them on the platform side.