
Hi, I'm Eric.
I’m an avid world traveler, photographer, software developer, and digital storyteller.
I help implement the Content Authenticity Initiative at Adobe.
Hi, I'm Eric.
I’m an avid world traveler, photographer, software developer, and digital storyteller.
I help implement the Content Authenticity Initiative at Adobe.
1 January 2025
Hello and welcome to 2025! I’m sharing some fun news about my blog’s custom tech stack. I have a new way of hosting the static image content for my blog and I’m really happy about it.
A few years ago, I wrote about how I built the 146 Parks blog. What I wrote then has become the backbone of all of my web sites. Almost four years later, and it’s all holding up remarkably well. I have no intent of moving from Zola and Netlify as the core technologies that serve my sites.
But … I have encountered a couple of tech challenges in the last year or so, specifically around how I host large binary content (mostly still images).
To wit:
Git’s Large File Storage mechanism isn’t all that performant. Put a few thousand large JPEGs in a git repo – even with Git LFS – and git status
and its friends become noticably slower. Not so bad as to be a blocker (several seconds at worst), but … enough that it made me stop and ask how this might scale when a few thousand becomes many thousand.
Netlify deprecated their Large Media Service in September 2023. All of my sites use this service because it provided a convenient and optimized link between git repo content and Netlify’s content distribution network (CDN). To their credit, Netlify has – more than a year later – not yet announced a schedule for shutting down Large Media Service, so those of us who had built a dependency on it have already been given a very comfortable transition window. But … the writing is on the wall, and I’ve been on the lookout for a suitable replacement technology.
So, the immortal question comes up … “Now what?”
So, I was listening to one of my favorite developer podcasts, The Changelog.
On episode 621, “Building the developer cloud,” about a month ago, they interviewed Kevin Mackey of fly.io and they dropped some knowledge that was exactly what I needed to hear. Quoting Adam Stachoviak:
You were talking about Tigris, and correcting yourself … Tigris is basically like the promise of object storage, but it allows you to actually build a CDN. Like, you can basically run a – you can write some JavaScript, use Tigris, and you have a CDN baked into your application. You couldn’t build anything like that before. You could try and do this with S3, but it’s so complicated to like manage multiple regions of data that it’s impossible …
Ooh, ooh … 💡!
A few weeks later, I was travelling in California, and I thought:
Why not see if it’s really as simple as they say?
It was.
In the course of a few hours, I was able to provision a storage bucket in Tigris, revise my existing (personal) photo-tooling infrastructure to use it (including the reusing existing off-the-shelf Rust S3 SDK), and adapt my existing Zola shortcodes to work together.
I’m very happy with how it has all turned out.
I’m now in the process of retrofitting all of my existing web content to move my photos from Netlify Large Media to Tigris Data.
I’m not sure if I’ve shared all of this before, but here is a summary of the technology I use for my web presences as of the beginning of 2025:
Hope you enjoyed this view into how I build my web sites and I’d love to hear any further thoughts on how things might evolve over time.
Subscribe to my free and occasional (never more than weekly) e-mail newsletter with my latest travel and other stories:
Or follow me on one or more of the socials: