How to Replace Cloudinary with AuraImage in 10 Minutes
Narek Hakobyan
If you are on Cloudinary and tired of the dashboard, the pricing model, or the enterprise-weight SDK — here is the fastest way out.
Before you start
You need:
- An AuraImage account and a project (create one at auraimage.com)
- The AuraImage CLI:
npm install -g aura - Your project's Secret Key (run
aura keys create --project <name>)
Step 1 — Replace serve URLs
Cloudinary serve URLs look like this:
https://res.cloudinary.com/demo/image/upload/w_800,h_600,c_fill/avatar.jpgAuraImage serve URLs look like this:
https://imagedelivery.net/<project>/avatar.jpg?w=800&h=600&fit=coverThe transformation syntax maps nearly one-to-one:
| Cloudinary | AuraImage |
|---|---|
w_800 | w=800 |
h_600 | h=600 |
c_fill | fit=cover |
c_fit | fit=contain |
q_auto | default (auto quality) |
f_webp | default (auto format) |
No f_auto or q_auto needed — AuraImage auto-selects the best format and quality per browser.
Step 2 — Replace the upload flow
Cloudinary requires a signature server-side. AuraImage works the same way but with a smaller API surface.
// Before (Cloudinary)
const signature = cloudinary.utils.sign_request(params, { api_secret });
// After (AuraImage)
import { createUploadToken } from '@auraimage/sdk/server';
const token = await createUploadToken({ projectName: 'my-app' });The client upload is identical in shape — pass the file and the signed token.
Step 3 — Replace the React component
Cloudinary gives you <AdvancedImage>. AuraImage gives you <AuraImage>.
// Before
<AdvancedImage cldImg={image} />
// After
<AuraImage src={img.mdUrl} alt='' width={800} height={600} fit='cover' />The mdUrl comes from the upload response. It is the signed serve URL with transform parameters baked in.
Step 4 — Remove the Cloudinary dependency
npm uninstall @cloudinary/url-gen @cloudinary/react
npm install @auraimage/sdkThat is it. Four steps, ten minutes. The hardest part is remembering to cancel your Cloudinary subscription.