aboutsummaryrefslogtreecommitdiff

LibreFund

WARNING: Project is still in alpha, backwards incompatible changes will be made. Not ready for release. USE AT YOUR OWN RISK.

To paraphrase Dominic Tarr

"We need another way to fund software. All the other ways are broken or unscalable. We need to align the interests of the users with developers. We need to feed developers, and the software needs to be freely distributable."

This project is another attempt at this.

If you believe the software unstable, pay for stability.

If you believe the software badly documented, pay for it to be to be documented.

Users align with the project's maintainer by funding aspects of the project they want worked on. The choice is conveyed by the maintainer offering a set of objectives (think OKRs). By offering the right choices for funding, the maintainer better understands what needs work.

But why be the only one paying? Free software is for everyone, you can wait for others to pay.

We need to align between paying users too. Its worth more if others give -with- you. Through a form of crowd matching, you pay for others to pay. The more you give, the more others give.

Hopefully with this approach, we can have better sustainable software for all.

Here you will find instructions on how to build, test, and run the service. For using the system and other information, please refer to the documentation section.

Project Goals

  1. Accountability: Facilitate accountability among all parties. Without trust, whats the point? Transparency will promote it amongst those concerned. It will help users gauge their contributions value. For the project maintainer, they must show themselves responsible while being protected against mischives or bad luck.

  2. Modifiable: Lead by following. Embody free software by emphasising its benefits. Make the source code clear and easy to modify. It means test coverage to avoid regressions, and other tests to document features. The project must be easy to fork.

  3. Simplicity: Simple to self-host, simple to give contributions, simple to operate. Lowering the cognitive load is a long term benefit for everyone. It means avoiding feature creep. It means making the project intuitive.

Documentation

Similar Projects

Building

Requirements:

go build ./cmd/librefund

Testing

To run all unit tests in the project, use Go's standard method.

go test ./...

Try it out

You can can give librefund a quick spin by using the project's test service data.

cd ./service/testdata/isolated
go run ../../../cmd/librefund