Uploading images
Upload images to Pindeck via drag-and-drop, file picker, or the Discord ingest pipeline.Upload workflow
- Click Upload in the gallery or drag files onto the page
- Files are stored in Convex file storage first
- A background action persists the file to Nextcloud via WebDAV
- Derivatives (preview, small, medium, large) are generated and stored alongside the original
File path format on Nextcloud
MKCOL before PUT.
Image metadata
Every image record includes:| Field | Type | Description |
|---|---|---|
title | string | Display name |
description | string (optional) | Detailed description |
category | string | Classification (Commercial, Film, Moodboard, etc.) |
tags | string[] | Searchable keywords |
group | string (optional) | Project grouping (e.g., Commercial, Spec Music Video) |
projectName | string (optional) | Specific project within a group |
projectOrder | number (optional) | Sort order within a project |
moodboardName | string (optional) | Moodboard or reference name |
uniqueId | string (optional) | Auto-generated or custom unique ID |
sourceType | string | Origin: upload, discord, pinterest, ai |
colors | string[] (optional) | Extracted color palette |
Persistence tracking
Each image tracks its Nextcloud persistence status:| Field | Values | Description |
|---|---|---|
nextcloudPersistStatus | pending, succeeded, failed | Current persistence state |
nextcloudPersistError | string | Error message if persist failed |
storageProvider | convex, nextcloud | Where the file is currently stored |
derivativeUrls | object | URLs for small/medium/large derivatives |
Backfill failed uploads
Reschedule persistence for uploads stuck in Convex storage: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)