Enforces project Cloudinary media conventions when working with image uploads, URL generation, transformations, social sharing images, and photo management components...
This skill enforces the project Cloudinary media conventions automatically during media-related development. It ensures consistent patterns for image uploads, URL transformations, social sharing images, photo management, error handling with Sentry, and proper type usage across the application.
This skill activates when:
CldUploadWidget or CloudinaryServiceCldImage component from next-cloudinary for image displaycloudinary.utils functionsCloudinaryPhoto type or related interfacesCloudinaryPathBuilder or CLOUDINARY_PATHS constantssrc/lib/utils/cloudinary.utils.tssrc/lib/services/cloudinary.service.tssrc/lib/constants/cloudinary-paths.tssrc/types/cloudinary.types.tssrc/components/ui/cloudinary-*.tsxcloudinary, imports from next-cloudinary, or uses cloudinary utilities)references/Cloudinary-Media-Conventions.mdCldImage from next-cloudinary for all Cloudinary imagespublicId to src prop (not full URL)alt, crop, gravity, quality={'auto'} propssizes prop for responsive images with fillextractPublicIdFromCloudinaryUrl() when neededgenerateOpenGraphImageUrl() for OG images (1200x630)generateTwitterCardImageUrl() for Twitter cards (800x418)generateSocialImageUrl() for platform-specific dimensionsextractFormatFromCloudinaryUrl() to get file extensionsCloudinaryService static methods for server-side operationsdeletePhotosByUrls() for batch deletion with URL contextmovePhotosToPermFolder() to move temp uploads to permanent locationsgetOptimizedUrl() for programmatic URL generationCLOUDINARY_PATHS.FOLDERS for base folder namesCloudinaryPathBuilder functions for dynamic paths:bobbleheadPath(userId, collectionId, bobbleheadId)collectionCoverPath(userId, collectionId)profilePath(userId)tempPath(userId)CloudinaryPhoto interface for photo datatransformCloudinaryResult() to convert upload resultsPhotoUploadState for tracking upload progressFileUploadProgress for individual file trackingisPersistedPhoto() and isTempPhoto()CloudinaryPhotoUpload component for photo managementCldUploadWidget with proper options and signature endpointcreateServiceError for service-level errorsuploadError propertyreferences/Cloudinary-Media-Conventions.md - Complete Cloudinary media conventions