Image Uploads & Variants
Uploads
Built-in sections that accept images (Hero bg_image, Features icons, etc.) write to the public disk under filamentcraft/uploads/ by default. Override with environment variables:
dotenv
FILAMENTCRAFT_UPLOADS_DISK=s3
FILAMENTCRAFT_UPLOADS_DIR=tenants/acme/site
FILAMENTCRAFT_UPLOADS_VISIBILITY=public
FILAMENTCRAFT_UPLOADS_MAX_KB=10240The disk MUST be publicly readable so the renderer's Storage::disk()->url($path) call resolves to a working URL.
Size variants
ImageValue::small(), medium(), and large() return the original URL by default — FilamentCraft does not bundle an image transformer. To wire up your stack's resizer (Glide, Imgix, Cloudinary, etc.), register a resolver on the plugin:
php
->imageSizesUsing(fn (ImageValue $image, string $size): string => match ($size) {
'small' => $glide->getUrl($image->path, ['w' => 480]),
'medium' => $glide->getUrl($image->path, ['w' => 1024]),
'large' => $glide->getUrl($image->path, ['w' => 1920]),
default => $image->url,
})