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.