Retrospective on Meeting Cabin's Technical Needs

Today marks the end of my work under my proposal, exactly a year after it was approved. The proposal had two goals: to take care of Cabin’s current and future technical needs, and to play a cofounder role on Cabin’s journey to build a network city. I believe I delivered on both of these promises.

TL;DR: to me the proposal was a success. I shipped a ton of new features and improvements across Cabin’s tech stack, supported others in their work, and helped scout the uncharted territory that Cabin is navigating. With all that done, I no longer think Cabin needs a full-time technical contributor. I’ll continue contributing under Cabin Labs.

Here are some highlights of my work:

Maps

This is one of the improvements to cabin.city that I’m proudest of. Maps are an intuitive way to visualize and navigate the Cabin network. We have one on the homepage, on the city directory, and on the census. You can take in the extent of the network as a whole, explore different parts of the world, or even zoom in on your city and find Cabin members near you. I’ve personally made several new friends just from this!

Beyond it’s direct usefulness to our community members, the maps also make the Cabin city legible to the rest of the world. “Network city” is a nebulous concept. A city of neighborhoods across the world and on the internet — what does that mean??? This map helps make that concrete. It’s already made it onto the “What is Cabin?” slide of our conference presentations.

Messaging

When you find other Cabineers to connect with, the next step is getting in touch with them. That’s why we now have in-app messaging. In the past you could have reached out to someone through other channels, but that took extra effort and many people did not want to share their contact info. Now every Cabin member is just one click away.

Messaging has only been around for a few months, but I’ve already seen people use it in all these ways:

  • Building local community with others in their area
  • Connecting during travel to new places
  • Helping each other during the disastrous fires in LA
  • Coordinating coliving
  • Messaging me about bugs :person_facepalming:

Messaging naturally leads to doing things together. Things like voting.

Voting

Governance plays a vital role in Cabin. But you used to have to go to a totally separate website (Snapshot) to do it. Now, you can do it all in our site (though its still Snapshot under the hood).

You can see past and current proposals, vote on them, and get a rundown of how everyone else voted. Those are the basics that Snapshot does too, but we have a good bit more than that.

For one, the site shows a banner when there’s a vote happening so you can participate. This alone significantly increased voter turnout for recent proposal votes. In addition, vote results show you familiar names and faces instead of wallet addresses. Furthermore, the site helps you understand how quadratic voting works by framing everything in terms of votes, not tokens.

De-emphasizing Crypto

One thing you didn’t see in any of the previous sections is any mention of crypto. In fact, “less crypto in your face” was a big theme for my work this year. Blockchains and crypto are a technology, not a feature. No app brags about which database they use, and crypto is mostly a fancy database. It allows some important properties (eg strong guarantees about money and decisionmaking), but the focus should be on how these properties serve users and not on the tech itself.

Today you can use everything on cabin.city without knowing a thing about crypto. You can make an account, receive Cabin tokens, and even participate in governance. None of this requires knowing what a transaction is or how blockchains work. This is a huge win for usability, voter access, and Cabin’s reach outside the crypto world.

Other Changes

I highlighted a few of the most visible changes, but that was only a fraction of the total work. A lot of my time went towards many small changes that added up to significant improvements over time. Here’s the rundown:

user-visible changes

  • landing page for the Neighborhood Accelerator Program
  • new rich text editor with image support.
  • nicer-looking social previews for profiles and neighborhoods.
  • greatly simplified the codebase and removed many pieces we no longer use. the biggest ones were events, citizenship minting, activity feeds.
  • redid neighborhood pages to highlight place-based communities
  • multiple onboarding improvements, even beyond what was original planned
  • lots of new things happening on profile pages
  • the nav menu is simpler and works better
  • performance improvements. site loads faster and is more responsive across the board
  • a million smaller things

under-the-hood changes

  • switched hosting providers for images (ipfs → cloudflare). no more broken/laggy image loading.
  • dropped otterspace protocol (it shut down) and brought stamps offchain.
  • dropped hats protocol. we weren’t using it.
  • fixed token balance syncing.
  • improved error logging.
  • tons of refactoring and strong type checking. working on the site is now faster and safer.

There’s more in my mid-year update.

Strategic Work

This part of my work is the hardest to showcase in a forum post. I can point to a few outputs: this memo on a new product idea, the /cabin channel on Farcaster I launched and grew to 3700 followers, internal feedback for the team, and the multiple episodes of Campfire I did with @jxn.

However, most of my strategic contributions happened in meetings with @jon and the other core contributors, in conversations with Cabin community members and fans, while supporting other proposals, during IRL gatherings in my neighborhood, in workshops and presentations at conferences such as EthDenver, Edge Esmeralda, and TNS Camp (which I helped run), and during thousands of moments between activities when my mind naturally returned to Cabin’s existential questions.

What Could Have Been Better

It’s always good to look for areas of improvements. In retrospect I think I could have done two things better.

First, I should have communicated my work and ideas better throughout the year. My past experience (including in 2023 at Cabin) was with small, high-context teams and few outside stakeholders. I’ve never seriously contributed to a DAO before, and so I underestimated the need to send regular public updates about my work. It took me till late 2024 to realize this:

I did eventually create a #tech-updates channel in Discord where I posted weekly updates, but I now see I should have done that from the start. Also I should have written more than one comprehensive update, and probably held some live calls to gather feedback and show off my work. Lesson learned.

My second big learning is that my greatest strength as a technical contributor is high-level systems design and architecture, not cranking out code for a fast-changing product that pivots a lot. While the current state of the project is very good, it took me a long time to get here and I ended up spending more time than I should have on work that was later discarded. Once I got things in good shape, I was able to move very fast — shipping multiple significant features per week. But it took a while to get there. I wonder if I could have been more effective by being emphasizing short-term speed over long-term quality (aka moving fast and breaking things).

What’s Next

My main goal was to meet Cabin’s technical needs, and I met them. They are no longer a bottleneck and don’t need a lot of ongoing work. Therefore I won’t renew my proposal. Instead I’ll continue to support Cabin through Cabin Labs. I’ll maintain Cabin’s digital presence and website, contribute strategic thinking and leadership, and run new experiments that will hopefully lead to future proposals.

One direction I’m particularly excited about is how to unlock and financially support local public goods creation in a way that sustainably accrues long-term value to Cabin. Stay tuned for a separate post on that.

2 Likes