Stacks / Backend
Easy
imgproxy / Thumbor / Imagor
Image transforms you host. imgproxy OSS is MIT; Thumbor is MIT; Imagor is Apache-2.0 — Cloudinary without the credit pack.
The problem
Cloudinary Plus is $89/month for 225 credits; Advanced is $224/month billed yearly. You wanted resize, format, and a URL. imgproxy's open-source edition is MIT (Pro processors are paid — skip them). Thumbor is MIT. Imagor is Apache-2.0. You still need object storage and a CDN in front.
Replaces
Cloudinary
Estimated SaaS saved
$2,400
per year, small team, before lock-in
Start on RailwayPlaceholder: imgproxy (or Imagor/Thumbor) in front of S3/MinIO or a volume. Put Cloudflare in front. No DAM UI on day one.
The stack
Cost table
| You stop paying | Typical / year | Self-host instead |
|---|---|---|
| Cloudinary Plus / Advanced | $2,400 | imgproxy + object storage + a CDN |
Agent setup prompt
Replace Cloudinary URL transforms with imgproxy (preferred), Imagor, or Thumbor. - Point the proxy at S3/MinIO or a volume of originals. Bind HTTP to 0.0.0.0:$PORT. Sign URLs. - Do not enable imgproxy Pro features without a license. Video transforms are not the OSS path. - Swap one Cloudinary URL for a proxy URL. Write AGENT_PROMPT.md.
Also as markdown: /stacks/imgproxy-media.md
FAQ
- Is this a DAM?
- No. It resizes and serves. Uploads and a media library stay in your app or Nextcloud. Cloudinary bundled those; this stack does not.