Assets are files uploaded to the platform's blob storage. They are managed from Admin > Assets and can also be uploaded inline when editing other records (e.g., product images, article featured images).
Files can be uploaded in two ways:
Uploaded files are stored in Vercel Blob Storage and served through a CDN for fast global delivery.
The platform accepts most common file types. Each file field may specify additional constraints via its accept validation. Common supported types include:
Each file field defines a maximum upload size via its mbLimit validation. Typical limits:
The platform validates file size before upload. When an image exceeds the limit (or the wrong shape — see Smart Image Uploads below), the upload modal offers a one-click in-browser fix instead of rejecting outright. Non-image files exceeding the limit are still rejected with a validation error.
JPEG and PNG images that fail the field's size or dimension validations can be auto-transformed in the browser, no external tools required. The upload modal shows side-by-side Before → After previews — including pixel dimensions and file size — so the editor can confirm the result before committing.
mbLimit) — quality and dimensions are reduced iteratively until the image fits under the limit.aspectRatio) — the image is center-cropped to the required ratio (e.g., 1:1 avatars, 1200:630 social cards).pixelDims) — the image is center-cropped and scaled to the exact required dimensions.Assets support private visibility for files that should not be publicly accessible. When an asset's visibility is set to private, the file is uploaded to a separate private blob store and cannot be accessed via a direct URL.
Private files are stored on Vercel Blob with private access. The CDN blocks all direct requests to private blob URLs. Instead, files are served through an authenticated server-side proxy that verifies the user's session and checks per-asset permissions before streaming the file.
When an asset is private, you can further restrict who can view it:
editor or manager role can view the file. This field is hidden when Uploader Only is enabled since it would not apply.Private file storage requires a separate private Vercel Blob store for each environment (development and production). See the README setup guide for instructions on creating private blob stores and configuring the BLOB_PRIVATE_READ_WRITE_TOKEN environment variable.
The platform uses configurable fallback images when no file has been uploaded. These are set in Site Config > Placeholders and include defaults for missing avatars, product images, and hero banners. This ensures the site never displays broken image links.