A Framework for Sustainable Open-Source Bitcoin Development
Much of what we do at Spiral aims to support FOSS (free and open-source software) bitcoin developers and designers. Our grant program currently funds over two dozen developers and designers across more than 18 countries—the largest bitcoin fund of its kind. These individuals are helping make bitcoin the world’s preferred currency by tackling a range of projects from Bitcoin Core and Lightning to general UX improvements.
Some of our grantees have contributed to bitcoin for a long time, while others, though new, are bringing great ideas and necessary skills to the ecosystem. With the support of organizations like ours, many grantees see working on FOSS bitcoin projects as a viable career path, one that they can pursue without jeopardizing their livelihoods.
With this post, we are sharing a framework that can help sustain these projects and others like them independent of our involvement. The projects we support are not unique to us; anyone can help maintain them. Like bitcoin itself, it’s important that they not rely on a single point of failure (in this case, a single funding source).
Phase 1: Identifying a Project
Identifying a project is about builders proposing projects that will improve bitcoin across the following areas:
- Security
- Scalability
- Privacy
- User Experience
- Developer Experience
- Decentralization
During this phase, builders focus on building out project architecture, proposing road maps, and pitching organizations with the resources to bootstrap projects with no strings attached funding.
A successful exit from this stage includes a solid proof of concept and perhaps even some alpha software or mockup that demonstrates what the project builder proposed in their initial plan. Buy-in from the broader bitcoin community is also encouraged and having a mature codebase that allows other developers to quickly understand and begin contributing is also valuable.
Phase 2: Community Development
Community is essential to bitcoin’s success. Therefore, we see community involvement, specifically from non-founders, as essential to early-stage success. Projects should foster communities by welcoming and encouraging human interaction with anyone who wants to contribute.
It’s important to have multiple developers contributing to any given project. Code reviews and audits are essential for all software, especially if it manages money. Having numerous developers review and test code builds trust and confidence in the project. Other potential contributions include adding documentation, reviewing proposals, design, and general mentorship.
How a community gets built is up to the project maintainers. But we recommend creating a well-documented project website that outlines their vision, using popular source control systems like GitHub or GitLab, and promoting the project via social media, podcasts, articles, and communication tools such as Slack, Discord, & IRC.
This phase is considered complete once a community forms that contributes to the project by fixing bugs, adding documentation, implementing features, spreading the word, etc. Project maintainers should also develop their roadmap alongside the community while laying out achievements for years to come.
All of this helps maintainers and advocates understand when the project might be production-ready. We should see the software (even if in alpha or beta) integrated into existing projects upon exiting this stage. Hopefully, then or in the future, it will be fundamental to other developers’ tech stacks.
Phase 3: Multi-Entity Funding
Funding should, appropriately, be decentralized. A sudden lack of financing should not significantly damage a project or end it altogether.
Projects entering this stage have built up a strong community, have users implementing the project in testing and production environments, and have gained the attention of larger organizations who see it as critical to helping them achieve their business goals and objectives.
A primary focus of this stage is establishing some form of entity or foundation that simplifies the process of accepting donations and makes it easier for donors to fund. In addition, this sidesteps the time-consuming and challenging due diligence process that comes with issuing meaningful grants.
A successful, multi-entity-funded project will have individuals and organizations donating directly to its foundation. Project leads should work with contributors and funders to make priority and direction decisions.
Phase 4: Sustainability Without Spiral
As bitcoin continues scaling, much will be built on it, constituting many pieces of a much larger pie, which need to be maintained and monitored.
In this final stage, projects won’t rely on any single entity—including our own—for funding. Instead, individuals and organizations will be confident in the project’s longevity and commit to helping sustain it over the long term through grants and donations.
We expect a project to have its own culture and identity, from generating consensus around new features to onboarding new contributors.
Bitcoin and its related projects will be active for many years and will always require funding and organizational support to stay afloat. We believe that the projects we support will be part of bitcoin’s living legacy and, therefore, money’s future. So should you.
Questions? Want to issue grants yourself?
Hit up Conor Okus on Twitter.