What problem does it solve? Integrating Cloudinary into React apps often fails due to wrong import paths, misconfigured environment variables, Upload Widget race conditions, and video player DOM conflicts. This Skill provides verified patterns and troubleshooting guidance to avoid these frequent errors. ## Core Features & Use Cases - Opinionated Integration Patterns: Exact import paths for @cloudinary/url-gen, reusable cld instance configuration, and bundler-specific environment variable setup (Vite, CRA, Next.js). - Upload Widget & Signed Uploads: Strict polling-based widget initialization, unsigned presets, and secure signed upload flows with a Node.js backend. - Transformations, Overlays & Video: Canonical overlay code blocks, responsive/lazyload plugin usage, and imperative Cloudinary Video Player setup with cleanup handling. - Use Case: A developer sees "createUploadWidget is not a function" in a Vite app; the Skill supplies the index.html script tag plus setInterval polling pattern that resolves the race condition. ## Quick Start Ask the assistant to set up a Cloudinary image upload widget in your React app using the cloudinary-react skill.