Funded Maintenance Approach for Shared Libraries

We believe that permissively licensed software needs to go beyond one time grant funding for shared libraries and other important components that need to be maintained over time.

A consulting relationship also doesn’t align incentives.

The ideal setup is such that one or more maintainers can work from part time to full time on codebases, both doing maintenance and updates, as well as adding features on a certain cadence over time.

This still pairs with large feature grant funding or other major work on the codebase, but with an eye towards multiple companies / organizations / people – anyone that depends on the codebase – supporting it over time.

Fission is set up as a Fiscal Host on Open Collective. We will be pursuing grant funding to have people work on some of the initial projects listed below.

Initial Projects

Below are a handful of projects that we think are a good fit for long term maintenance, improve open source contribution adoption, and usage by multiple teams across the ecosystem.

Go UCAN

The existing Go UCAN library is stale and for a very early version of the spec. The Ken Labs/Pando, Saturn, and other GoLang first teams throughout the PLN have expressed interest in a native Go implementation.

Brendan from n0 who is the original author has already offered to help with code hand off and review.

The first task would be to bring this up to date with the spec, and test working interop with the ts-ucan and rs-ucan implementations.

There has also been interest expressed in doing work on translating the spec, documentation, and other supporting resources into different languages, to help with adoption around the world.

FILSNap

Fission is currently working on short term fixes and improvements to FILSnap. We think that a first class supported functionality like this for native FIL accounts in browser is really important for the ecosystem

FIL Mobile

We have an open dev grant proposal to work on an end to end FIL mobile wallet application, built as open source so that mobile libraries.

The proposal already includes funds and a process for maintenance over time. We think more proposals should include +6/12/24 months of maintenance so we know that code can be used as a solid building block.

The pattern we are following is to set aside 10% of total grant size and funding an Open Collective attached to the project. After initial Grant implementation is complete, continued maintenance and/or small feature additions can be covered by ongoing funding over the term of a year. This itself can be accomplished by rewarding open source contributors, and looking for other people who want to actively use the codebase.

We will prompt users of all kinds to support the project, and will use Open Collective contribution status to gate participation in early access of builds, voting on priority features, and otherwise weight feedback from contributors above those who don’t contribute. Contributor status can also be gained through open source maintenance and support, including code, design, promotion, documentation, translation, and other community contributions.

A service model where contributors, agencies, and others who use the codebase and libraries to build products could also include social norms to allocate a support fee to the Open Collective for every use.

The way that Marijn Haverbeke describes his work on CodeMirror, ProseMirror, and other permissively licensed software is:

Building and maintaining software is skilled, specialized work. I prefer to allow the whole world to use my software, but I do need some kind of income.

Thus, I ask people and companies who use my software to make profit to fund the production of that software. This is a social expectation, not a legal requirement.

Homestar IPVM

Homestar is a reference implementation of IPVM written in Rust and focused on WebAssembly serverless functions.

We would like to start adding some part time open source contributors to the project to make sure the codebase is a good fit for external contributions, as well as dev setup and initial proof of concept for self hosting and deployment.