OpenFund: Quadratic Funding for RadicalXChange

screenshot of a fundraising platform project screen with an image, funding targets and description

Background

Quadratic funding (also known as “Plural funding”) is a an exciting new way of funding public goods using a mechanism that more optimally represents the actual needs of citizens. Rather than the frequently distorted process we typically use of electing representatives to fight over taxes and budget priorities, Quadratic funding is a decentralized grant matching process that incentivizes citizens to collectively fund shared projects.

RadicalXChange is the organization promoting and researching applications of these new approaches, and they ran a hackathon to experiment with Quadratic funding for fundraising. OpenFund was my winning submission to the GitxChange hackathon. It demonstrates how Quadratic Funding (in fiat currency) can be made as intuitive and perhaps even more compelling than traditional fundraising platforms like Kickstarter or GoFundMe.

OpenFund

My concept for OpenFund was to take the hackathon challenge and use a modern front end architecture to build a simple, compelling minimum viable product of a Quadratic funding platform. It shows how the financial features needed for better funding of public goods can be quickly built on the Stripe platform).

a scattered collection of screenshots on a zoomed out figma canvas

As part of the challenge of making the application approachable and intuitive, I wanted to build a simple design language that fit the RadicalExchange aesthetic but that also worked in less editorial, more interactive application. To accomplish this I put together a moodboard and then customized a Tailwind CSS Figma library and built a mini component library with React + Tailwind.

a project funding page showing the amount of matching funds being applied

Next steps

The resulting code from the hackathon is open source, and any organization that wants a quadratic funding platform can take this and run with it. The next step is to put it in front of real people and battle test it before it goes live.