Skip to main content

Uploading images

Upload images to Pindeck via drag-and-drop, file picker, or the Discord ingest pipeline.

Upload workflow

  1. Click Upload in the gallery or drag files onto the page
  2. Files are stored in Convex file storage first
  3. A background action persists the file to RustFS through the media API
  4. Derivatives (preview, small, medium, large) are generated and stored alongside the original

RustFS object path format

Objects are written through the RustFS media API under the pindeck bucket.

Image metadata

Every image record includes:

Persistence tracking

Each image tracks its durable storage status:

Backfill failed uploads

Reschedule persistence for uploads stuck in Convex storage:
This targets images where sourceType = "upload", storageProvider = "convex", and storageId is still present.

Sources

Images can come from multiple sources:
  • Direct upload — User-initiated from the gallery UI
  • Discord — Ingested via the Discord bot emoji trigger (see Discord bot)
  • Pinterest — Imported from Pinterest boards
  • AI — Generated as variations of existing images (see AI generation)