Insights & challenges: building on bitcoin
Bitcoin development over the past several years stands apart from other approaches and dev cultures in the rest of "crypto". There's a deliberate slant to building slow and steady, focusing on robustness and security, and staying true to some of the ideals of the project. This has given us the rock solid powerhouse that is Bitcoin today, but it'd be false to say that there haven't been casualties along the way.
In particular, bitcoin's dev approach may not have been the friendliest or easiest to connect with for the average builder looking to hack on a problem and not necessarily coming in from an orange-pilled-first approach. We've recently been seeing a shift in this though, as tech like the Lightning Network matures and more emphasis is placed on things like design and application-level projects.
To date we've had lots of work done on building out the infrastructure that can support an entire alternative system of money, and we're now seeing folks building applications atop this infrastructure in more traditional and fast-iterating ways.
It's pretty much what we've been doing at StackorSpend: building on the infrastructure provided by folks like Galoy, and taking a user-first approach with a design/UX focus on crafting our product.
An API-first Approach
We wanted to take something that existed already before, and present it again in a new light for end users. Specifically, even though the underlying data was the same, we wanted to present an entirely new window into this data for the end-user.
In putting together our product we never had to touch any bitcoin or lightning nodes, never had to think about channel routing and managing fees, never had to download any keys or secure funds behind a seed phrase. The only thing we had to do was grab an API token for the end-user, and then make calls to a GraphQL-driven backend designed and maintained by Galoy.
This was an interesting experience for us. It's the sort of development experience that we expect we'll be seeing more and more as products like Voltage, LNBits, Indra etc. come online and abstract the task of running a bitcoin-based backend.
It allowed us to focus less on the bitcoin side of things, and more on the application side of things:
-
designing a beautiful UX around a novel usage thesis
-
implementing transaction and user-behaviour level logic to deliver the value proposition of the app
Respecting privacy & sovereignty
Of course all this being said, we still are operating within the bitcoin paradigm where we believe certain values should be respected and upheld.
Specifically, when designing the app we gave a lot of thought to how we could maintain our users' data privacy and ensure that we weren't build a new honeypot. This may not be the same approach we see in traditional tech today, where the focus is on accumulating and analysing as much user data as possible, and naturally it presents unique challenges where thinking through how our application would be built.
In the end we opted to implement the app in a way where all data fetching, storage and processing could be done on the users' own device. StackorSpend doesn't run any servers and doesn't collect any sort of user data to perform the app operations.
Instead, we leveraged on-device SQLite databases and we build a "backend" abstraction that we could drop straight into the app to run the business logic.
Given how early we are with bitcoin services and that most services haven't as yet implemented things like OAuth flows to allow for authorized operations and revocations for 3rd parties, we also insisted on having everything on device so that we never need to touch or see user secrets. The user logs into their connected service (in this case Galoy's Bitcoin Beach Wallet) from the app and credentials are stored in the device's local AsyncStorage from there and never shared outside of that.
Looking ahead
We're excited to see how other projects approach this emerging paradigm of building more end-user facing applications on top of existing bitcoin infrastructure. We think that while we will be seeing more speed and a diversity of builders entering the space, there are certain core values that should be maintained and the challenge will be to educate both new builders and users to understand why these values exist and how we can all work together to design things in a way that respect and uphold these.