Skip to main content
Add file uploads to any feature in 5 minutes. The pattern is the same regardless of file type. Time: ~15 min. Difficulty: Beginner.

Foundation prompt

What vly generates

  • A generateUploadUrl mutation.
  • Client-side direct-upload code (no proxy through your function).
  • A schema field for the storage IDs.
  • Preview UI for uploaded files.
  • Server-side validation in the mutation that records the upload.

Tips

Always validate on the server. Client-side checks are UX-friendly but bypassable.

Convex file storage

The reference.

Architecture: file uploads

Patterns.

Cloudinary

Advanced image processing.
Last modified on April 18, 2026