Skip to main content

Loading…

Skip to main content
HomeProjectsPostsApproachesStackResourcesContact
Justin Tsugranes LogoJustin Tsugranes Logo

Justin Tsugranes

HomeProjectsPostsApproachesStackResourcesContact

Stay in the loop

Occasional notes on what I'm building, lessons earned, and the studio behind it.

By subscribing, you agree to receive No spam. Unsubscribe in one click anytime. from Justin Tsugranes. No spam. Unsubscribe anytime. Privacy Policy

© 2026 Total Ventures LLC. All rights reserved.

Privacy PolicyTerms of ServiceCookie Policy
← All stack tools

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 →
Written by Justin Tsugranes, Founder, Total Ventures· Founder, Total Ventures · U.S. Army veteran (13 years) · M.M. Jazz Studies, University of South Carolina
Last reviewed July 22, 2026

Related

  • Google Cloud StorageGoogle Cloud Storage is the reliable object storage for Total Ventures' static assets, serving everything from OG images to user-uploaded PDFs via CDN.
  • ImagenImagen generates unique OG images, brand illustrations, and lead-magnet covers directly from text prompts, integrated into my build pipelines for cost-effective, automated visual asset creation.
  • SanitySanity is the headless CMS I use across Total Ventures for all editorial content, providing a structured content backend that integrates directly with my frontend projects and agentic workflows.
  • Firebase Hosting + Cloud FunctionsFirebase Hosting and Cloud Functions provide the core backend services—authentication, data storage, and serverless compute—that power every Total Ventures product, handling tasks that require persistent state or scheduled execution.
  • StripeStripe serves as the core financial infrastructure for Total Ventures, enabling flexible payment processing for five distinct product brands, managing everything from subscriptions to one-time purchases and multi-currency transactions under a single LLC.
  • VercelVercel hosts all Total Ventures web applications, providing a robust platform for Next.js frontends, serverless functions, and automated deployments with a global edge network.