Cloudinary Blog

Cheers to One Million Developers on Cloudinary!

Doron Sherman
By Doron Sherman
A Huge Milestone for Cloudinary: A Million Developers

Cloudinary’s mission from Day One has been to help companies unleash the full potential of media to create engaging visual experiences. Today, we celebrate a momentous milestone: more than one million developers have registered with Cloudinary. That translates to a total of approximately 50 billion monthly assets, attesting that our vision for visual media 10 years ago has taken off. A big thanks to all of you who have partnered with us on this journey and who have taken visual media to the next level through Cloudinary.

A Few Highlights

As of June 2021:

  • Developers from over 180 countries out of a total of approximately 195 countries have registered with us.
  • We’ve released a total of 19 SDKs and libraries, 15 of which were developed by us and four by the community. SDKs are available for most popular frontend, backend and mobile programming languages. Read more about the SDKs available here.
  • Video-bandwidth usage over the past 12 months has increased by 70%.
  • We’ve added nearly 50 Media Developer Experts (MDEs) along with an active Discord community of media developers.
  • Nine classes are now offered for developers by the Cloudinary Academy, which provides free training courses, replete with insights from seasoned experts on how to fully leverage Cloudinary’s capabilities to raise productivity and grow revenue. The infographic below illustrates the key factoids about the journey we have taken together.

Corporate Donation and Transformation Contest

To celebrate the million-developer milestone and to thank our community, Cloudinary is donating to five organizations ($10,000 each), which are dedicated to promoting diversity in the tech and STEM fields, including Black Girls Code, Girls Who Code, StartOut, TheOpenCode Foundation, and The Knowledge House. In addition, we are holding a fun contest for our million-plus developers—with an awesome prize for the lucky winner: the ultimate software-engineering workstation-laptop combo (valued at more than US$10,000). See below for the steps on how to enter the content and the rules.

Step 1: Create a Cloudinary account for free if you don’t already have one.

Step 2: Upload this image to your Cloudinary account: https://res.cloudinary.com/cloudinary-marketing/image/upload/1M-dev-contest.jpg

1 million users

Note
For those who are new to Cloudinary, when you transform an uploaded image or video, Cloudinary automatically generates a transformation URL with all your edits.

Example: The Cloudinary URL for an uploaded image:

Ruby:
Copy to clipboard
cl_image_tag("lady.jpg")
PHP v1:
Copy to clipboard
cl_image_tag("lady.jpg")
PHP v2:
Copy to clipboard
(new ImageTag('lady.jpg'));
Python:
Copy to clipboard
CloudinaryImage("lady.jpg").image()
Node.js:
Copy to clipboard
cloudinary.image("lady.jpg")
Java:
Copy to clipboard
cloudinary.url().imageTag("lady.jpg");
JS:
Copy to clipboard
cloudinary.imageTag('lady.jpg').toHtml();
jQuery:
Copy to clipboard
$.cloudinary.image("lady.jpg")
React:
Copy to clipboard
<Image publicId="lady.jpg" >

</Image>
Vue.js:
Copy to clipboard
<cld-image publicId="lady.jpg" >

</cld-image>
Angular:
Copy to clipboard
<cl-image public-id="lady.jpg" >

</cl-image>
.NET:
Copy to clipboard
cloudinary.Api.UrlImgUp.BuildImageTag("lady.jpg")
Android:
Copy to clipboard
MediaManager.get().url().generate("lady.jpg");
iOS:
Copy to clipboard
imageView.cldSetImage(cloudinary.createUrl().generate("lady.jpg")!, cloudinary: cloudinary)
Lady

The Cloudinary URL for the same image with two transformations:

Ruby:
Copy to clipboard
cl_image_tag("lady.jpg", :gravity=>"face", :crop=>"crop")
PHP v1:
Copy to clipboard
cl_image_tag("lady.jpg", array("gravity"=>"face", "crop"=>"crop"))
PHP v2:
Copy to clipboard
(new ImageTag('lady.jpg'))
  ->resize(Resize::crop()
    ->gravity(Gravity::focusOn(FocusOn::face())));
Python:
Copy to clipboard
CloudinaryImage("lady.jpg").image(gravity="face", crop="crop")
Node.js:
Copy to clipboard
cloudinary.image("lady.jpg", {gravity: "face", crop: "crop"})
Java:
Copy to clipboard
cloudinary.url().transformation(new Transformation().gravity("face").crop("crop")).imageTag("lady.jpg");
JS:
Copy to clipboard
cloudinary.imageTag('lady.jpg', {gravity: "face", crop: "crop"}).toHtml();
jQuery:
Copy to clipboard
$.cloudinary.image("lady.jpg", {gravity: "face", crop: "crop"})
React:
Copy to clipboard
<Image publicId="lady.jpg" >
  <Transformation gravity="face" crop="crop" />
</Image>
Vue.js:
Copy to clipboard
<cld-image publicId="lady.jpg" >
  <cld-transformation gravity="face" crop="crop" />
</cld-image>
Angular:
Copy to clipboard
<cl-image public-id="lady.jpg" >
  <cl-transformation gravity="face" crop="crop">
  </cl-transformation>
</cl-image>
.NET:
Copy to clipboard
cloudinary.Api.UrlImgUp.Transform(new Transformation().Gravity("face").Crop("crop")).BuildImageTag("lady.jpg")
Android:
Copy to clipboard
MediaManager.get().url().transformation(new Transformation().gravity("face").crop("crop")).generate("lady.jpg");
iOS:
Copy to clipboard
imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setGravity("face").setCrop("crop")).generate("lady.jpg")!, cloudinary: cloudinary)
Lady

The Cloudinary URL for the same image with seven transformations:

Ruby:
Copy to clipboard
cl_image_tag("lady.jpg", :transformation=>[
  {:gravity=>"face", :height=>400, :width=>400, :crop=>"crop"},
  {:radius=>"max"},
  {:width=>200, :crop=>"scale"}
  ])
PHP v1:
Copy to clipboard
cl_image_tag("lady.jpg", array("transformation"=>array(
  array("gravity"=>"face", "height"=>400, "width"=>400, "crop"=>"crop"),
  array("radius"=>"max"),
  array("width"=>200, "crop"=>"scale")
  )))
PHP v2:
Copy to clipboard
(new ImageTag('lady.jpg'))
  ->resize(Resize::crop()->width(400)->height(400)->gravity(Gravity::focusOn(FocusOn::face())))
  ->roundCorners(RoundCorners::max())
  ->resize(Resize::scale()->width(200));
Python:
Copy to clipboard
CloudinaryImage("lady.jpg").image(transformation=[
  {'gravity': "face", 'height': 400, 'width': 400, 'crop': "crop"},
  {'radius': "max"},
  {'width': 200, 'crop': "scale"}
  ])
Node.js:
Copy to clipboard
cloudinary.image("lady.jpg", {transformation: [
  {gravity: "face", height: 400, width: 400, crop: "crop"},
  {radius: "max"},
  {width: 200, crop: "scale"}
  ]})
Java:
Copy to clipboard
cloudinary.url().transformation(new Transformation()
  .gravity("face").height(400).width(400).crop("crop").chain()
  .radius("max").chain()
  .width(200).crop("scale")).imageTag("lady.jpg");
JS:
Copy to clipboard
cloudinary.imageTag('lady.jpg', {transformation: [
  {gravity: "face", height: 400, width: 400, crop: "crop"},
  {radius: "max"},
  {width: 200, crop: "scale"}
  ]}).toHtml();
jQuery:
Copy to clipboard
$.cloudinary.image("lady.jpg", {transformation: [
  {gravity: "face", height: 400, width: 400, crop: "crop"},
  {radius: "max"},
  {width: 200, crop: "scale"}
  ]})
React:
Copy to clipboard
<Image publicId="lady.jpg" >
  <Transformation gravity="face" height="400" width="400" crop="crop" />
  <Transformation radius="max" />
  <Transformation width="200" crop="scale" />
</Image>
Vue.js:
Copy to clipboard
<cld-image publicId="lady.jpg" >
  <cld-transformation gravity="face" height="400" width="400" crop="crop" />
  <cld-transformation radius="max" />
  <cld-transformation width="200" crop="scale" />
</cld-image>
Angular:
Copy to clipboard
<cl-image public-id="lady.jpg" >
  <cl-transformation gravity="face" height="400" width="400" crop="crop">
  </cl-transformation>
  <cl-transformation radius="max">
  </cl-transformation>
  <cl-transformation width="200" crop="scale">
  </cl-transformation>
</cl-image>
.NET:
Copy to clipboard
cloudinary.Api.UrlImgUp.Transform(new Transformation()
  .Gravity("face").Height(400).Width(400).Crop("crop").Chain()
  .Radius("max").Chain()
  .Width(200).Crop("scale")).BuildImageTag("lady.jpg")
Android:
Copy to clipboard
MediaManager.get().url().transformation(new Transformation()
  .gravity("face").height(400).width(400).crop("crop").chain()
  .radius("max").chain()
  .width(200).crop("scale")).generate("lady.jpg");
iOS:
Copy to clipboard
imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation()
  .setGravity("face").setHeight(400).setWidth(400).setCrop("crop").chain()
  .setRadius("max").chain()
  .setWidth(200).setCrop("scale")).generate("lady.jpg")!, cloudinary: cloudinary)
Lady

Step 3: Apply two transformations of any kind to the image from Step 2.

Note
With Cloudinary, you can transform images on the fly to any format, style, and dimension you desire, as well as apply effects and other visual enhancements.

Step 4: Post the Cloudinary URL of the transformed image on Twitter with the hashtag #1MillionCloudinaryDevs as an entry.

Important
The image must originate from your Cloudinary account, not somebody else’s.

Cloudinary will randomly pick the lucky winner from the #1MillionCloudinaryDevs hashtag.

The contest starts today and ends at 23:59 UTC on Wednesday, September 1, 2021. We’ll announce the winner on the Cloudinary Twitter feed shortly afterwards.

General Rules for Entry:

  • Cloudinary employees and affiliated individuals (contractors, paid consultants, MDEs) are not eligible to participate.
  • All entries must be submitted by 23:59 UTC on Wednesday, September 1, 2021.
  • All entries, one entry per person, will be entered into a random computerized drawing on Thursday, September 2.
  • The winner, who will be notified by Friday, September 3, will have 30 days in which to respond, i.e., by Sunday, October 3 at 23:59 UTC at the latest. In the absence of a response from the winner within the 30-day time frame, a secondary winner will be selected.
  • The winner will receive one (1) NZXT Creator PC (valued at $3,999.00 + taxes and shipping) and one (1) Dell New Precision 7760 Data Science Workstation (valued at $7,196.86 + taxes and shipping). Note that if shipping is restricted or prohibited to the winner's in-country address, the prize will be converted to a dollar value and wired to the winner.

The strides we’ve made over the years would not have been possible without your support, feedback, and enthusiasm for the work we are doing: transformation, optimization, and moderation of images and videos on websites; video APIs; digital asset management. We look forward to working with you as we grow our capabilities, add offerings, and push the boundaries of digital experiences. Here’s to the journey ahead.


One Million Developers on Cloudinary Infographic

Recent Blog Posts

How to Apply Riveting Image Effects in Nuxt Applications With Cloudinary

Nowadays, no way can we build modern apps for the web without considering visuals, which are one of the most efficient ways of communicating online. However, improvements in image quality over the years have exacted a price in larger files, slowing down page loads, especially in low-bandwidth regions or on mobile devices. To resolve that conundrum, turn to Cloudinary, a platform that offers the infrastructure for managing images in web apps. Additionally, Cloudinary’s reliable APIs serve visuals through multiple, fast content delivery networks (CDNs).

Read more
The Pros and Cons of AVIF for Websites

AVIF is a 2019 spinoff from the AV1 video format developed by the Alliance for Open Media (AOM), whose members include Amazon, Apple, ARM, Facebook, Google, Huawei, Mozilla, Microsoft, Netflix, and Intel. As an open-source and royalty-free video codec, AVIF delivers much higher compression rates than the older image codecs like JPEG and WebP, and is on par with the brand-new JPEG-XL format, which does not work on any browser yet.

Read more
Get Your Media Moving Faster with Cloudinary’s Media Optimizer

So, your boss comes to you in a panic: he's just heard about Google's Core Web Vitals initiative and needs you to optimize the company website right now! "No problem," you say, hiding your fear that it's not something that can be done overnight. Just taking the first metric, Largest Contentful Paint (LCP), how can you possibly identify all the large elements - most likely images or video posters - of the many hundreds of pages that make up your site? There are already thousands of high-resolution (read massive) media files stored away, which marketing could use any time. How are you going to make sure they're all compressed to a size small enough to be delivered within the threshold? Not to mention all the new images and videos that will be created over time...

Read more
How to Tap Into the Value of User-Generated Content (UGC)

User-generated content (UGC) took off with, first of all, the advent of the internet and, subsequently, social networks. Everyday consumers were given keys to the kingdom, so to speak, so that they, too, could compose and post content, simultaneously engaging with others online. Twitter, Facebook, Instagram, Snapchat, TikTok—the networks through which we can create and publish content have grown exponentially, and brands are becoming aware of the benefits of tapping into the gold mines offered by those networks.

Read more