When choosing a tech stack, we need to consider factors like the following:
- The specific needs of the project
- Skills of the development team
- Scalability factor
- Maintenance of the technology
Many technologies can satisfy these factors, making it difficult to choose the right ones. Tech stacks affect the entire development process, the application’s stability, and the overall cost. As a result, companies typically don’t change their tech stacks since the process is both time-consuming and resource-intensive.
To meet these challenges, Cloudinary uses a tech-agnostic approach through composable architecture. This popular design pattern allows developers to create reusable components to build applications more quickly and easily. Composable architecture helps avoid complex integration and vendor lock-in via APIs and other tools to scale systems more efficiently.
Cloudinary offers a cloud-based service for performing tasks such as image and video uploads, storage, and transformations using a variety of APIs. It uses a Software-as-a-Service (SaaS) and API-first-based approach to media development, allowing us to easily integrate it into our current stack.
This article highlights several of Cloudinary’s features and explains how we can add Cloudinary to any existing tech stack without changing our approach.
A composable structure allows us to choose the most appropriate technologies and create flexible solutions. We can replace, remove, or reuse specific components without affecting others. In the long run, composable architecture saves time and money and makes a system easier to scale.
A composable architecture contains multiple features, services, and applications as independent systems that combine to form a working application. Composable architectures function by having components communicate with each other through APIs.
Cloudinary achieves its composable approach through the use of multiple, reusable APIs. APIs define the rules and procedures to interact with various software systems, allowing two applications to talk to each other.We can leverage the APIs through software development kits (SDKs), which can contain multiple APIs and provide code to interact with services in our coding language of choice. This makes it easy to access all functionalities, allowing us to focus on developing our applications.
Cloudinary’s Programmable Media solution allows developers to perform image and video upload, storage, and transformation operations. Some examples of the APIs included in this set are:
- The Upload API allows uploading images and videos to Cloudinary’s servers. It supports various file types and can also upload files from a URL or remote server.
- The Transformations URL API enables various image and video transformations, such as resizing, cropping, adding watermarks, and applying filters. The API uses a simple URL syntax, making it easy to use and understand.
We could, for example, add Programmable Media to an application on an e-commerce website. Then, we use the Upload API to upload product images to Cloudinary’s servers automatically. We can use the Transformations URL API to resize and crop the images for different pages.
Cloudinary strives to make it as easy as possible to use its services by providing SDKs for a wide range of popular frameworks and programming languages. This makes it easy to integrate Programmable Media and Media Optimizer into any tech stack and to work with their APIs in code.
The SDKs are easy to use, with consistent and intuitive APIs, so we can immediately start integrating Cloudinary into our applications regardless of the framework or language. The SDKs also successfully abstract many low-level details of working with an API, such as constructing and sending HTTP requests, making them easier to use than working directly with the APIs.
Cloudinary’s frontend SDKs provide an easy way to interact with the Cloudinary server-side platform for image and video management. The SDKs support several popular frontend frameworks, including:
These SDKs allow us to perform tasks such as image and video uploads, transformations, and manipulations directly from the client-side, without having to call the server-side code.
For example, with the Cloudinary React SDK, we could use a React component to upload and display an image and then apply transformations to that image using Cloudinary’s URL-based API. Or, we could use the Cloudinary Angular SDK to perform similar tasks.
We can easily add these SDKs as dependencies to existing projects to enhance functionality while keeping the existing infrastructure and workflows. The APIs allow uploads directly from a browser and provide transformation and optimization on the client side. Cloudinary further provides plugins that find the optimal way to render information and automate tasks like lazy loading.
Cloudinary’s backend SDKs allow us to interact with the Cloudinary server-side APIs within the application’s backend code. These SDKs boast support for several programming languages and frameworks, such as:
- Ruby on Rails
If working with Ruby on Rails, for example, we can use the Cloudinary SDK to upload and manipulate images to our applications. Or, if working with PHP, we can use the SDK to generate responsive images dynamically.
Cloudinary’s backend SDKs enable us to manage and manipulate media assets within an application’s backend—all without worrying about the underlying infrastructure or scaling challenges. These SDKs also allow automatic signature generation to sign uploads, optimize images, and provide transformation capabilities, enabling developers to focus on application development.
Cloudinary’s mobile SDKs are unique because they allow developers to perform media management and manipulation tasks directly on a mobile device without needing server-side communication. This can enhance the performance and responsiveness of mobile applications and lower the load on backend servers multifold.
Cloudinary’s mobile SDKs support a variety of popular mobile platforms and frameworks, including:
- Swift (iOS)
- Java (Android)
The mobile SDKs integrate with existing tech stacks allowing us to perform media management and manipulation tasks directly on a mobile device while leveraging Cloudinary’s cloud-based infrastructure for storage and delivery. For example, for an iOS application, we can use a mobile SDK to perform image manipulation on a device and then upload the modified images directly to Cloudinary for storage and delivery.
Cloudinary’s compostable architecture allows us to incorporate image and video management capabilities into any technology stack. Their approach allows APIs to integrate and communicate through a wide range of SDKs, making it easy to add functionality to any application. This also allows us to easily incorporate Cloudinary’s cloud-based services with existing systems without requiring extensive modification.