Out of my mind…


Lead · May 3, 2026

middleman-s3_sync 4.8.0 released

Immutable caching directives for fingerprinted assets, and max-age finally winning the argument with Expires.


I’ve just released version 4.8.0 of middleman-s3_sync, a gem that synchronizes Middleman-built websites to Amazon S3, with optional CloudFront invalidation. This release tightens the HTTP caching story for hashed assets.

What’s new

immutable directive

Caching policies now support the immutable flag. Pair it with a long max_age on fingerprinted assets — the kind Middleman’s asset_hash extension produces — and browsers will skip revalidation entirely, even on a user-initiated reload:

ruby
caching_policy 'text/css', max_age: 1.year, public: true, immutable: true caching_policy 'application/javascript', max_age: 1.year, public: true, immutable: true caching_policy 'image/png',...

middleman-s3_sync 4.7.0 released

Feb 15, 2026

Reliability work on CloudFront invalidations, plus conveniences in the caching policy DSL that make it easier to reason about what gets re-uploaded.

middleman-s3_sync 4.6.5 released

Feb 15, 2026

Thread-safe CloudFront invalidation tracking, batched S3 deletes, and streaming uploads — efficiency and stability work for larger syncs.

middleman-s3_sync 4.6.4 released

Jan 3, 2026

Replaces the unmaintained map gem with a small native IndifferentHash, dropping an external dependency with no breaking changes.

I'm Back!

Apr 13, 2025

Back after a long silence — nearly nine years at AWS, new priorities, and more writing to come.