Swaying in the Wind

Is land near? ( source )

Semble is the first product I’ve ever shipped with actual users.

It feels silly to write that down, but it’s true. I’ve worked on far too many tools and “apps” with no or very few users. It’s unfortunately a common occurrence in distributed and peer-to-peer tech. Often, the tech is impressive but the user experience sucks; unintuitive constructs too difficult to grasp, janky interfaces, and use-cases hardly tethered to real, immediate needs.

My career in tech started after I discovered Holochain and realized that there was a lot more to distributed web technology than blockchain-based crypto gambling and NFT-trading. I was sold on the vision and dedicated myself to learning the ropes and contributing to any of the projects open to contribution.

Luckily for me, Holochain developers were few and far between, so it didn’t take much to get noticed and eventually offered contract work. Over the years, I worked on some really interesting projects like Acorn, Coasys, hREA, neighbourhoods, and moss, just to name a few. These years provided incredible opportunities for learning and, more importantly, opened me to the much wider world of DWeb (which to this day provides a core source of my hope for the future of a dis-enshittified internet).

screengrabs of Acorn from its landing page

This all sounds quite rosy. There was just one tiny problem — hardly anyone was using these tools! Except for Acorn, I’m not sure if anyone other than those in the core community used them in any kind of way other than completely experimental without any meaningful dependence. While the vision for each of these projects was compelling, the reality of spending so much time building something that almost no one used caught up with me.

Was there a more pragmatic middleground? As it turns out, there was. It’s called the Authenticated Transfer Protocol (ATProto).

Fast forward another couple years over an abandoned startup, an experimental science hyperfeed (Semble’s precursor), and navigating complex team dynamics, here we are, building Semble. Which apparently (to my surprise) is one of the most funded ATProto projects outside of Bluesky — WHAT THE ACTUAL F***?!?!?!— Ahem, I mean, how did that happen??

It’s equal parts mind-blowing and overwhelming. On the one hand, it’s an opportunity of a lifetime to build a new kind of future-proof social networking experience. On the other, it’s an immense amount of pressure to deliver on (reasonably) high expectations.

Feeling that pressure ( source )

When I look around, it’s hard not to see the giants surrounding me. Bluesky, Blacksky, Streamplace, Spark, Leaflet, Tangled, Smoke Signal and SO. MANY. OTHER. top notch projects and teams. The imposter syndrome is more real than ever.

Unsurprisingly, when users rely on software, the development priorities change drastically. Performance matters, authentication flows matter, error handling matters, availability matters, and so many other little things that can mostly be ignored when building purely for a vision rather than for users. Frankly, these are all aspects of programming I wish I had more experience with. Instead, I’m learning as I go.

It’s a complicated melange of feelings: excitement, gratitude, anxiety.

Some days I can’t stop thinking of all the exciting possibilities for Semble. Other days it feels like I don’t even know how to ship a basic feature.

Either way, the wind of opportunity is blowing mightily and there’s no better time to set sail.

Is the boat supposed to lean this much? ( source )