justin․searls․co

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!


Got a taste for hot, fresh takes?

Then you're in luck, because you'll pay $0 for my 2¢ when you subscribe to my work, whether via RSS or your favorite social network.

I also have a monthly newsletter where I write high-tempo, thought-provoking essays about life, in case that's more your speed:

And if you'd rather give your eyes a rest and your ears a workout, might I suggest my long-form solo podcast, Breaking Change? Odds are, you haven't heard anything quite like it.