Show HN: A WordPress plugin that rewrites image URLs for near-zero-cost delivery

Hacker News (score: 21)
Found: November 26, 2025
ID: 2503

Description

Other
Show HN: A WordPress plugin that rewrites image URLs for near-zero-cost delivery Hi HN,

I built a WordPress plugin called Bandwidth Saver. It takes the images your site already has and serves them through Cloudflare R2 and Workers, which means zero egress fees and extremely low storage cost. The goal is to make image delivery fast and cheap without adding any of the complexity of traditional optimization plugins.

The idea is simple. WordPress keeps generating images normally. The plugin rewrites the URLs on the frontend so images are served from a Cloudflare Worker. On the first request, the Worker fetches the original image and stores it in R2. After that, Cloudflare’s edge serves the image from its global cache with no egress charges. There’s no need to preload or sync anything, and if something fails, the original image loads. That’s the entire system.

I built this because most image CDN plugins try to do everything: compression, resizing, AI transforms, asset management, custom dashboards, and monthly fees. That’s useful for some users, but it’s unnecessary for most sites that just want their existing media to load faster without breaking the bank. Bandwidth Saver focuses only on delivery, not transformations. It’s intentionally minimal.

There are two ways to use it. The plugin is completely free if you want to run your own Cloudflare Worker. I included the Worker code and the steps needed to deploy it. If you don’t want to deal with any Cloudflare setup, there’s a managed option for $2.99 per month that uses my Worker and my R2 bucket. I’m trying to keep it accessible while also covering operational costs.

The plugin works with any theme or builder and doesn’t modify the database. It only rewrites URLs on output. WordPress remains the system of record for all media. R2 simply becomes a cheap, durable cache layer backed by Cloudflare’s edge.

I’m especially interested in feedback about the approach. Does the fetch-on-first-request model make sense? Is the pricing fair for a plugin of this scope? Should I prioritize allowing users to connect their own R2 buckets or the managed service? And for those with experience in edge compute or CDNs, I would love thoughts on how to improve the Worker or the rewrite strategy.

Thanks for reading, happy to answer any questions.

More from Hacker

Show HN: Grsh – A high-performance shell for FreeBSD written in Rust

Show HN: Grsh – A high-performance shell for FreeBSD written in Rust I built GRSH because I wanted a modern, memory-safe shell that feels native to FreeBSD but works seamlessly on macOS.<p>While there are many shells out there, GRSH is my take on a minimal, fast, and secure command interpreter written entirely in Rust. It&#x27;s designed for users who want the safety guarantees of Rust without the overhead of more bloated alternatives.<p>I&#x27;m currently working on the official FreeBSD port. I’d love to get feedback on the shell&#x27;s behavior and performance from the community.<p>Github: <a href="https:&#x2F;&#x2F;github.com&#x2F;antoniomalara301289&#x2F;grsh" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;antoniomalara301289&#x2F;grsh</a>

iMessage-kit is an iMessage SDK for macOS

iMessage-kit is an iMessage SDK for macOS

Using Vectorize to build an unreasonably good search engine in 160 lines of code

Using Vectorize to build an unreasonably good search engine in 160 lines of code

Scaling Go Testing with Contract and Scenario Mocks

Scaling Go Testing with Contract and Scenario Mocks

No other tools from this source yet.