convex-file-storage

Automate Convex file storage with upload URLs, metadata, and serving.

Updated Feb 7, 2026
One-click install
npx skills add https://github.com/rieckt/create-loumi-app --skill convex-file-storage-rieckt
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: convex-file-storage
Source: https://github.com/rieckt/create-loumi-app/tree/main/template/skills/convex/convex-file-storage
Command: npx skills add https://github.com/rieckt/create-loumi-app --skill convex-file-storage-rieckt

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill enables end-to-end file handling in Convex apps, covering uploads, storage, serving via URLs, and metadata management.

Core Features & Use Cases

  • Upload and store any file type with generated URLs for access.
  • Retrieve and manage file metadata from the _storage system table.
  • Use in applications needing user-uploaded images, documents, or generated files via server mutations and queries.

Quick Start

Use the convex-file-storage skill to enable uploading a file and retrieving its serving URL in your app.

Frequently Asked Questions about convex-file-storage

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I handle file uploads in Convex?▼

File uploads in Convex require generating an upload URL via a server mutation, sending the file from your client, and saving the resulting file metadata. This workflow enables server storage and URL-based file access for web apps.

How does file metadata storage work with the Convex _storage system table?▼

The Convex _storage system table stores file metadata. You save the storage ID via a server mutation after uploading, then query the table to retrieve and manage file metadata and serve the generated file URLs.

Can I use Convex storage to serve uploaded images and documents via URLs?▼

Yes, Convex storage serves uploaded images and documents via generated URLs. The workflow uses server queries to retrieve serving URLs from the _storage system table, enabling client access to stored files.

What's the best way to generate upload URLs for client file uploads in a Convex app?▼

The best way to generate upload URLs in a Convex app is using the generateUploadUrl server mutation. The client fetches this URL, uploads the file directly to Convex storage, and calls a saveFile mutation to store the file metadata.

Do I need server mutations and queries to fetch file URLs in Convex?▼

Yes, fetching file URLs in Convex requires server mutations like saveFile to store metadata and server queries to retrieve the generated serving URLs. This server-side integration ensures secure access to files in the _storage system table.