B SIDE

Stowaway ·

Stowaway 1.0: free media offload for WordPress, on S3 and CloudFront

Stowaway is now on WordPress.org. It copies your Media Library to your own S3 bucket, serves it through CloudFront, and imports what WP Offload Media already offloaded. Free, with no Pro version.

Stowaway 1.0 is on WordPress.org

Stowaway is a free WordPress plugin. It copies your Media Library to your own Amazon S3 bucket and serves it to visitors through CloudFront. Your pages load faster and your server has less to do. Nothing changes about how you use WordPress.

It's listed on WordPress.org as of October 31. Every feature is in the free plugin. There's no Pro version, and there isn't going to be one.

Why we built it

Grand River Sailing Club, a club we work with, had its media on S3 and CloudFront, run by WP Offload Media Pro. Then the license lapsed, and renewing it wasn't in the club's budget.

The obvious fix was to start over: switch plugins and upload the whole library again. But that changes every image URL on the site. Old links break, search engines have to find everything again, and you're paying AWS to store two copies of the same files.

So we wrote a plugin that picks up where WP Offload Media left off. Stowaway reads the records WP Offload Media left in the database. Every file it offloaded keeps its exact URL, and nothing is uploaded again. The club switched over by working through a short checklist. Its visitors didn't notice, which was the point.

What it does

  • Copies every upload to your bucket. The original and every size WordPress makes, as soon as you upload it. Edited and regenerated images go up too.
  • Serves media from CloudFront. Attachment URLs, responsive images, images in posts and shortcodes, and Yoast's share images all point at your distribution. The bucket stays private.
  • Catches images themes print elsewhere. Turn on Catch images anywhere on the page and Stowaway also rewrites images outside the post content, like Divi's background images. This needs WordPress 6.9 or later.
  • Brings your existing library along. One button with a progress bar, or wp stowaway offload --all from the command line.
  • Keeps working when AWS doesn't. Every hour, Stowaway checks that your images still load from CloudFront. If they stop (a suspended account, a deleted distribution, broken DNS), your site switches to its own copies, clears the page cache and emails you. It switches back when AWS recovers.
  • Doesn't lock you in. Your posts keep their normal local URLs the whole time. Turn delivery off or delete the plugin and nothing breaks. "Bring it all home" downloads everything back from the bucket whenever you want.

Setting it up

You'll need an AWS account. A setup wizard walks you through the rest, starting from an empty one:

  1. Create a bucket. The wizard tells you which settings matter.
  2. Make an access key that can use that one bucket and nothing else. The wizard shows the policy with your bucket's name already in it.
  3. Put CloudFront in front of it, or skip that for now and add it later.

When you finish, Stowaway runs a connection test. It reaches the bucket, uploads a small file, loads it the way a visitor would, and deletes it. If something's wrong, it tells you which step failed. The docs cover every step with screenshots.

Coming from WP Offload Media (Lite or Pro)? Deactivate it, then choose Import from WP Offload Media on Settings → Stowaway. Your bucket settings and offloaded files come with you, and Stowaway uses the access keys already in your wp-config.php until you replace them.

What it doesn't do

Stowaway works with Amazon S3 and CloudFront, and nothing else. No Google Cloud, no DigitalOcean, no Cloudflare R2. Supporting only Amazon is what keeps it small: no AWS SDK, no Composer, and a download of about 100 KB.

You pay Amazon for storage and delivery, on your own account. Stowaway never sees your files or your traffic. It sends nothing to us, and it has no tracking or analytics.

It hasn't been tested on Multisite yet.

Get it

If Stowaway saves you a license fee, a review on WordPress.org helps other people find it.