justin․searls․co

Who has the patience for videos longer than a minute? Not America, apparently. So every now and then I'll put some short videos of big ideas together and hope a bunch of fractional eyeballs will add up to one real person's attention.


Creating static Instagram Stories as Wisps

Fun little demo of this weekend's project. I recently shipped Becky a way to ship auto-expiring stories from Beckygram that would in turn syndicate to Instagram via POSSE Party, which was pretty straightforward since her site is an actual honest-to-god Rails app. But justin.searls.co is a static site with no backend component. I accomplished the same thing by creating a new media type for the blog called "wisps".

What you're looking at in this demo:

  • A new single-page app that takes S3 & GitHub API keys and uploads new posts from mobile
  • Uses Straight-to-Video to compress the story for Instagram and create a thumbnail-size preview video entirely within the browser
  • Netlify sees the commit hit GitHub and builds the site with Hugo
  • POSSE Party sees the wisp in a new all-wisps Atom feed, configured to be syndicated as stories
  • POSSE Party creates an Instagram crosspost and publishes it to Instagram as a story using the graph API
  • My homepage has been updated with a new UI that shows all current stories along the top, including a player to navigate them (click to continue, arrow keys, escape to clear, etc.)
  • A GitHub action runs every half-hour to effectively "unpublish" any stories that are over 48 hours old, returning them to the netherworld from whence they came

Extremely fun long weekend project, and would not have been possible without the acceleration of coding agents. In fact, Codex CLI wrote 100% of this code, which took me about 4 days and ~20 hours.

I've never been a fan of the story format because of the sick and twisted way it devolves into the "who watched my stories" meta by exposing so many metrics to users, but this way I don't have to engage with that to share shit. Hopefully this means I'll be able to better stay in touch with friends and loved ones when traveling and moving about. And if you, like me are not an Instagram person, now you have an excuse to visit my actual website from time to time!

Will code for 🙌's

It's true, you catch more bugs with honey than vinegar.

Clipped from my conversation with José Valim about how little we know about the future of coding agents (and, as in the case of this video, also their present).

AI is exposing order-takers

One thing few people are talking about is how it's not as simple as people being sticks in the mud with respect to the adoption of AI tools, it's that once they get their hands on this tremendously capable set of tools, they lack the imagination to find any use for it. "They've been given this rocket ship and they've got no fucking clue where to fly it."

Clipped from the back half of my discussion with Scott Werner on Hotfix.

What is Refactoring?

Realized I managed to shit out a decent definition of the word "refactoring" in 30 seconds when I was editing this longer video on career advice, so may as well clip it for posterity. Both were pulled from v31 of Breaking Change.

The Wrong Programmers

I'm as big a fan of searching for environmental and systemic explanations when expectations are missed, but that doesn't mean that sometimes the blame lies with the skill of the people doing the job. Decided I'm going to stop pretending as if that's never the case.

The Baby Store

Why I didn't have kids, despite the fact a lot of men seem weirdly OK with pretending they have zero regrets.

This clip is from v30 of Breaking Change.