Patu

Self-hosting image optimization: the honest tradeoffs

The default advice for images is a managed service — Cloudinary, imgix, and friends. That advice is often correct, and this is not a “SaaS bad” post. It’s an honest look at the tradeoff, from a project that sits on the self-hosted side of it.

What the managed services genuinely give you

For a small team without infrastructure people, that is worth paying for. Don’t self-host to prove a point.

Where the managed model gets expensive — and not just in money

The friction shows up along three axes as you grow:

None of these is a reason to leave on day one. All of them are reasons the calculus flips at some scale.

The self-hosted options are real now

Self-hosting used to mean gluing ImageMagick to a cache and hoping. The current tools are solid:

You put a CDN in front of any of them and you have the managed experience, on your own compute, with a cost that’s your server bill instead of a per-image meter.

What self-hosting actually costs

Honesty cuts both ways. Self-hosting is not free-as-in-effort:

The reward is a predictable cost that doesn’t scale with your traffic, data that never leaves infrastructure you control, and the freedom to optimize exactly how you want.

How to actually decide

Patu exists for the second and third cases: the same result a managed service gives you — AVIF-first, quality-targeted, behind a CDN — on infrastructure you run, priced like software instead of like a meter. Whether that’s the right trade is genuinely yours to make; this post is here so you make it with the real tradeoffs in front of you, not the marketing version.


Patu is open about being one option among several; the projects linked above are the real alternatives, and the right choice depends on your team, traffic and data constraints, not on which post you read last.