Convex file storage
Convex stores files with afiles table that tracks ownership per user. The functions live in packages/backend/convex/files/.
Frontend upload
generateUploadUrl, saveFile, getUrl, deleteFile. All enforce user ownership - users can only access their own files.
Vercel Blob
@repo/storage re-exports @vercel/blob for simple file uploads to Vercel’s CDN. No database tracking or user ownership.
Server-side upload
BLOB_READ_WRITE_TOKEN in your environment.