Stack Tool · creative
Cloudinary
Cloudinary is the asset management and delivery layer for all Total Ventures brands, handling image and video transformations on the fly and serving them globally via CDN.
Visit cloudinary.com ↗Cloudinary provides the core asset management and on-demand image/video transformation engine for every Total Ventures product, ensuring consistent, optimized media delivery across all digital properties.
What it is
Cloudinary is a cloud-based service for managing all types of media assets — primarily images and videos. It handles uploads, storage, manipulation (resizing, cropping, filters, watermarks, format conversion), optimization, and delivery via a global CDN. For Total Ventures, it's the single source of truth for all visual brand assets, from logos and icons to product photography and editorial images.
How I use it
My primary use for Cloudinary is centralizing brand kit assets and dynamic image generation. Each Total Ventures brand — Total Formula 1, Pregnancy Power Hour, Inky — has its own dedicated folder structure within Cloudinary. This allows me to manage logos, favicons, social share images, and UI elements distinctly for each product.
When building out a new feature or product, I upload the raw, high-resolution assets to Cloudinary. For instance, for Total Formula 1, I might upload a 4K hero image. Then, in my Next.js App Router components, I can request specific transformations. A single image can be served as a webp, resized to 800px width for a blog post, or cropped to a 1:1 aspect ratio for a social share card, all by manipulating the URL. This is critical for performance and responsive design, especially when integrating with frameworks like Tailwind CSS v4 where specific image sizes are often needed for different breakpoints.
I also use it for dynamic content. For example, generating social share images for blog posts on Pregnancy Power Hour. Instead of pre-rendering hundreds of images, I can use Cloudinary's text overlay and image manipulation features to dynamically create an Open Graph image based on the post title and featured image. This agentic engineering approach saves significant manual effort and ensures consistency.
The API integration is straightforward. I use a small utility function that takes a Cloudinary public ID and an object of transformations, returning the optimized URL. This keeps my frontend code clean and focused on presentation, not image manipulation logic.
Why this over alternatives
The main driver for choosing Cloudinary was its comprehensive feature set for on-the-fly transformations combined with integrated CDN delivery. While I could set up an S3 bucket and use a separate CDN, then write custom Lambda functions for transformations, Cloudinary bundles all of this into a managed service. The cost-benefit analysis for a solo operator running multiple brands pointed heavily towards Cloudinary. The time saved not managing image processing infrastructure is substantial.
Alternatives like imgix or self-hosting with a library like sharp were considered. imgix is comparable but I found Cloudinary's free tier and initial pricing more amenable for starting multiple small brands. Self-hosting would mean managing servers, scaling, and maintaining image processing libraries — a distraction from building product. My focus is shipping today, not maintaining an image server.
For brand assets, the per-folder organization and robust API for fetching and transforming assets are superior to simply dumping files into a generic cloud storage bucket. It integrates well with my monorepo strategy, allowing asset paths to be consistent across projects, even when using tools like Turbo for managing different brand applications.
Where it falls short
Cloudinary's main drawback is cost as usage scales. While the free tier is generous for initial development and small brands, high volumes of transformations or storage can become expensive. It requires careful monitoring of asset usage and optimization strategies to keep costs in check. For example, ensuring I only request necessary transformations and don't re-transform the same image repeatedly if it's not truly dynamic.
Another minor point is the initial learning curve for its transformation syntax. While powerful, it takes some time to become proficient with all the URL parameters and SDK options. Documentation is thorough, but it's not always immediately intuitive. For simple use cases, it can feel like overkill, but the power becomes evident quickly for more complex scenarios.
Finally, while it handles video, its video editing capabilities are not as robust as dedicated video platforms. For simple video optimization and delivery, it's excellent, but for advanced video manipulation or streaming features, a specialized service would be needed. For Total Ventures, this hasn't been a limitation yet, as video use is primarily for background elements or short clips.
FAQs
- Is Cloudinary overkill for a small project with only a few images?
- For a truly static site with minimal images, it might be. But if you anticipate any future need for responsive images, dynamic transformations, or a CDN, starting with Cloudinary avoids a migration later. It's about building for future flexibility from day one.
- How does Cloudinary impact page load speed?
- Significantly. By optimizing images (compression, format conversion like WebP) and serving them from a global CDN, Cloudinary reduces file sizes and latency. This directly translates to faster page loads and better user experience.
See how I run a multi-brand studio with this stack.
See the full stack →