Documentation

Practical product docs for setting up, mapping, editing, and operating BaseBuddy.

Docs/Media and files

Media and files

Configure media libraries, file libraries, Supabase Storage, S3-compatible storage, limits, and private URLs.

How storage works

Media and files are optional project capabilities. A project can have no media storage, a Supabase Storage bucket, an S3-compatible bucket, and optional mapped catalog table metadata for object records.

Credentials stay in environment variables. The project mapping stores bucket, path, provider metadata, catalog table mapping, and display behavior.

Use How to configure Supabase Storage buckets for media and files for Supabase buckets, or How to configure S3-compatible storage for media and files when the provider is S3, R2, MinIO, or similar.

Request flow

EditorMedia/files APISaved storage mappingSupabase Storage orS3-compatible bucketMapped catalog tableif configured

The browser never receives storage secrets. BaseBuddy APIs check permissions, validate size and type, use the saved mapping, and prepare signed upload paths. The browser then uploads bytes to the configured provider through a Supabase signed upload URL or S3-compatible presigned URL, and BaseBuddy completes the mapped metadata update.

Security covers why storage secrets stay server-side and how to handle signed URLs.

Storage modes

ModeWhen to useBehavior
No storage mappingThe project doesn't manage uploadsHide or disable media/file tools
Supabase StorageAssets live in Supabase bucketsBrowse folders, upload objects, resolve URLs
S3-compatible storageAssets live in S3, R2, MinIO, or similarBrowse and upload through env-backed credentials
Catalog table metadataMetadata lives in Postgres beside bucket-backed storageStore title, alt text, caption, path, MIME type, dimensions, or ownership
Media library with mapped folders, upload controls, and sidebar actions
Media library with mapped folders, upload controls, and sidebar actions

Upload limits

AreaLimit
Avatar image5 MB
Media image10 MB per image
File library file25 MB per file
Media batch10 images
File batch10 files
Media multipart API body60 MB when that API path is used
File multipart API body130 MB when that API path is used
Profile update JSON16 KB

Primary media and file uploads use signed direct-upload URLs, so your provider and browser path must allow the file size. Your reverse proxy or hosting provider still needs compatible request sizes for BaseBuddy prepare, complete, metadata, and multipart API requests.

Caps and rate limits keeps the full limits table, and Deployment covers matching those limits at the proxy or host layer.

Accepted types

Media accepts avif, gif, jpeg, jpg, png, and webp.

Files accept common documents, spreadsheets, presentations, data files, and archives: doc, docx, pdf, rtf, txt, md, csv, xls, xlsx, ppt, pptx, json, xml, zip, gz, and tar.

File library with mapped folders, upload controls, and file-specific notes
File library with mapped folders, upload controls, and file-specific notes

SVG is blocked in the media library because SVG can contain script-like behavior and external references.

Use How to upload and manage images in the Media library and How to upload and manage files in the Files library for the library flows. If uploads fail, How to fix media or file upload failures checks type, size, mapping, credentials, and host limits.

Private files

Private assets should use signed URLs or your own protected delivery route. Don't expose permanent public URLs for private documents.

When using signed URLs, treat them as temporary and avoid sharing screenshots that reveal private object paths or signed query strings.

For editor insertion, use How to insert images into a post and How to insert files or downloads into a post.