Back to Buffer, and how I built my own POSSE pipeline for "thoughts"
Photo by AbsolutVision / Unsplash
I'm back on Buffer after a few years away. I had forgotten how much I liked it - and the current version is excellent. It does one thing, it does it well, and it stays out of the way. And, on top of that, it's always been one of my favourite companies: bootstrapped, remote and values-driven. I even applied to work there in 2014, back before I created MarsBased.
The reason I came back to Buffer wasn't nostalgia, though. It was something their CEO, Joel Gascoigne, posted a few months ago that caught my attention.
The origin: Joel's POSSE setup
Joel, Buffer's founder and current CEO, wrote about how the Posts section of his website works. The idea behind it is POSSE: Publish (on your) Own Site, Syndicate Elsewhere. Your website is the source of truth, and social networks are just distribution channels that point back to it. You own the canonical content and distribute copies on Twitter, LinkedIn, etc.
I've believed in this for a long time. Heck, my original uni Final Year Project from 2008 was about this: digital sovereignty and identity ownership. You should own all your info and content you generate, and platforms should request to access it. In a way, it's a proto-Solid project. Platforms, we've seen time and again, come and go and algorithms change every all-too-often now and, on top of that, accounts get suspended for no reason. Your own domain is the only place you really own, the rest is borrowed thin air on someone else's computer, if you store it on the cloud.
Reading Joel's post was the push I needed to stop thinking about it and build my own version and it became yet another project AI could help me bring to reality. And so it did.
Mine's slightly different
Joel's setup is built around writing posts, mostly short-form, which is what inspired mine. I wanted to "own" certain tweets and short-form thoughts that have had more repercussion and gravitas than some of my long-form articles.
Also, I don't know if Twitter or BlueSky will be around in 20 years time, but my website - I hope - will. I want to own those tweets. That's why I built the Thoughts section on this website.
How does mine work? Here's the flow:
- I dictate a "thought". A thought is a short-form idea, roughly the size of a tweet. I say it out loud to Instinct, using a voice note, or I write it.
- Instinct cleans it up. It corrects the transcription and the wording, and drops the result into a proxy file.
- The proxy file acts as a buffer. Thoughts get stored there and queued, so I don't flood Buffer (or my followers) with ten ideas in one afternoon. I usually think - and work - in bursts.
- A cron job sends them out. Every day it takes a few thoughts from the queue and sends them to Buffer.
- Buffer spreads them out across my Twitter and Bluesky accounts.
- My website gets them too. Every thought also lands on alexrodba.com/thoughts, and once it has been published on social, the links to the Twitter and Bluesky versions are added to it via another cron job.
So the website stays the canonical home, and the networks are just amplifiers of my thoughts.
Learnings
Because everything is queued, a thought might go out today or next week. That means they can't be tied to what's happening right now, so timely thoughts go directly on Twitter/BlueSky manually like I've always done. It has to be evergreen content only.
I actually like this constraint because it forces me to write things that age well instead of reacting to The Current Thing. I'll also like to re-read the Thoughts section every now and then because it will be highly relevant without time-sensitive tweets.
It's a bit overengineered but it is exactly how I wanted my version 0.1 it to be. The proxy file could've been skipped but it required more config on the API side and we avoid hitting limits and having to pay for a Buffer account just for this.
The goal was zero friction. If posting an idea requires opening multiple apps, finding the right account, polishing the copy, adapting to different formats for each social network, and picking a time, I won't do it. If it means saying one sentence out loud and letting the AI figure out the rest, I damn right will.
Most vibecoded apps die because we don't build the habit of using them so you have to make them as seamless as possible and remove all friction from the processes until you have no excuses left.
Backfilling with AI
The thoughts page is a bit empty for now. It will fill up soon enough, but I also want to backfill it with some of my best tweets from the past years.
A few years ago I would never have even considered it because it's an enormous effort, but with AI - again - I have no excuse. Going through thousands of old tweets, picking the good ones, cleaning them up and importing them is exactly the kind of tedious job that it's a breeze with AI.
That's a pattern I keep seeing: AI doesn't just make the work you were already doing faster, better or with less errors. It makes the work you used to skip worth doing. And I'm loving it.
But, Àlex, don't you have enough things going on already, ffs?
True. But social networks are great for reach and terrible for memory recollection. Everything you post there gets buried in a few hours and becomes hard to find, or disappears with the platform. Also, twitter's search functionality is downright horrible to use - probably intentional.
With this setup, every idea I have ends up in my website, my domain, searchable and permanent, while still reaching my audiences in the social networks for zero cost.
If you've got your own POSSE setup, I'd love to see it. Joel's inspired mine, so maybe yours will inspire my version 0.2!