Iteration to Remove Friction

I’ve spent the last couple of hours mulling over my main website (you’re currently reading) and my photography site (SullyShoots) — neither of which has gotten much love in the last year. Nonetheless, every now and then that dangerous little voice in my head starts thinking, “what if we rebuild this thing, Jon? That’ll fix all your feelings!” This little voice clearly has no memory of the last time we did that and it painfully took forever, but I digress.

But let me rewind. I’ve always held that it’s the writing that makes the blog, not the design. And I’ve always been a fan of OG software folks who’ve had the same blog design since back when they were understood as web-logs (weblogs) — they’ve resisted the urge to make something sparkly and instead focused on compelling words. I love that. (Seriously, have you seen Time Pope’s blog?)

So, for now, I will again resist the urge to rebuild this site. It has its quirks and features, but it gets the job done as I need it.

That said, it may be time for SullyShoots. I’ve sort of grown to hate that site.. which is tremendously sad since it hosts all of my pictures, all of which I love! You should not hate the thing that holds that which you love! It just has so much friction. Uploading new pictures to that site is such a painful process.

I don’t think the system/platform was ever intended to do what I’m doing with it. I built it with Adobe’s website builder since we already use Lightroom for picture management, but I think Adobe intended their site builder to create portfolio sites. As in, “here’s my top 10 pictures and a blurb about me.” Not “here’s every moment from the last 3 years, each with 10+ pictures.” As I’ve loaded it up with thousands of images it’s become so slower and slower 😞.

SullyShoots was previously part of this site (not yet called ‘SullyShoots’, just a different set of pages) but that setup required having all of the images directly inside the codebase for the site. That’s not a good pattern. I did it for a while (don’t shame me!) but had to find something else.

And that sort of encompasses the difficultly with sharing photography — where do you host the pictures? How do you host the pictures? And how do you setup / configure both of those things in a way that writing new posts in the future will have the least amount of friction?

How do I build a system that allows me to share my photography, like status-updates, as friction-free as possible?

It’s not Adobe’s website builder, I’ll tell you that! 😆.

While it won’t work for me (since I don’t use their email service), I’ve always been a really big fan of HEY World. Essentially, for anybody that uses HEY for email, they can just write an email to and that email becomes a new blog post on their own, personal HEY World blog. Take Jason Fried’s blog, for example. Each of those posts was just an email he wrote! Or this post from DHH. That one includes an image! I found this so very neat. HEY users can write an email to and that email can contain images. Those images will be automatically uploaded into HEY’s ActiveStorage and served in the blog with proper sizing, variants, compression, and CDN-backing. The writer didn’t have to do anything! They just put a picture into their email composer!

So, that’s kind of a shining star. I want something that friction-less for sharing pictures. While I’m not a HEY user and therefore can’t test this, my assumption would be that a HEY user could email with 40 pictures and all 40 would be handled perfectly, injected into a blog post with ease. No codebase to worry about, no git commands to finagle, no images to caress into shape.

So how do I accomplish this? I’m not sure yet. I know a few things for sure, though. First is that I’ve come to love Typora even more over the last year. Automatic image upload to a CDN has got to be the most friction-removing features I’ve ever used. Just paste the image right in line where I’m writing and it automatically uploads to… wherever!


I wrote about that in my wire-up with Buttondown’s CDN here but I recently reconfigured the same script to work with Cloudflare Images. Since the goal will be to share my pictures online and not in a newsletter (at least not exclusively), I’ll probably go with the latter! This will allow me to write ‘posts’ (pictures included) in Typora with no additional processing after. That’s great!

The rest of the “write a post and publish it” logistics mostly pertain to how the resulting Markdown gets delivered to, and inserted into, the website. Typora does support an interesting (somewhat-hack) approach to running Git commands itself — running a custom Export:


This is super briefly mentioned in the docs, but in theory this should allow me to create a new file from Typora, write a post in it (including uploaded images), save it, then hit “Export -> My-custom-export” and expect it to be live on the website a few minutes later. That might do it!

Anyway, back to the point of this post — iterating just for the sake of iterating is sometimes a bad thing. Iterating to remove friction is usually a good thing. Not always. But usually.

Join the Conversation

Latest Blog Posts