Monetizing the p5.js Editor has been more work than I had anticipated, and also sometimes different work than I expected. With the advent of paid accounts, there were code infrastructure changes I needed to make for security reasons. It has been a massive undertaking to fix this, as the codebase is five years old. Now that the work is almost completed, it has actually opened up possibilities for many new features, many of which could be paid.
This is the first time the Processing Foundation is creating a paid service, and I want to make sure I’m doing it right. During the funding period, I’ve learned so much about what this looks like, and what I need to be successful. I hadn’t been able to get any feedback on my business model, and I realized that it would be helpful for me to have a business mentor. I decided to apply to an incubator to get this support. I also think they can help me measure if the subscription model is successful, and how to evolve it based on those findings. I also realized that I struggled balancing low-level work (like development) simultaneously with high-level work (like planning or project management), and figured out that hiring both a developer and UX designer are necessary for the project to move forward. Lastly, I’ve realized that a huge portion of this project is communicating to our community the need for a subscription model. I believe this model is an experiment in holding true to our values of access and collective abundance, and I want to make sure this is communicated with the full context of the history of FLOSS and creative computing.
Lastly, we were finally able to get our Uphold account approved, so we can finally integrate with the web monetization API and Coil.
This grant has enabled huge progress towards sustainability for the p5.js Editor and it has been exciting for me to see it all come together.
Great progress has been made in laying out the infrastructure for the subscription features. The p5.js Editor can run any front-end code that a user may write, and therefore their code needs to be executed in a sandboxed iframe. However, the way I had originally implemented this was vulnerable to cross-site scripting (XSS) attacks. I had let this slide for a long time (years, in fact, as I first opened an issue to make these changes in 2016), because there was not a lot to gain from hijacking another user’s account. However, paid accounts make this a huge issue. Unfortunately it involves a fundamental re-write of how the p5.js Editor renders a user’s sketch. On the plus side, it has helped (and will continue to help) other issues, such as making the p5.js Editor work better with developer tools, create a separate rendering server for sketches so that users can run them in a separate browser window using
postMessage, and fix show-stopper bugs like the p5.js Editor not working in the latest version of Safari. With large codebase re-writes like this, sometimes it can feel like the work is too much or impossible, and I am grateful that the subscription model has been the impetus to finally complete this work. Without this grant, I’m not sure when this important work would have otherwise gotten done.
- Infrastructure changes have continued on the chore/sandbox branch. I have been using Release to deploy and test these changes, as it involves front-end, back-end, and dev ops changes. I’m doing my best to test everything as this touches so much code!
- Finally managed to connect Uphold to the Processing Foundation bank account, so now it is possible to integrate Coil.
- Applied to NEW INC for mentorship and community support.
- Created a scope of work to hire additional people to work on the subscription project.
I haven’t yet, but I have been thinking a lot about how to best approach open dialogue since communication is a huge part of completing this project. I want to communicate to our community about the creation of a subscription model in a way that builds and maintains trust. For twenty years our tools have been free of cost, and the reason for charging money is the size of the community we are supporting. Grants and donations cannot keep up with our rate of expansion, and the subscription model is an experiment to support the labor necessary to support that expansion. I want to make sure we communicate the full context for this work, all of our research and understanding about open-source, political organizing, and labor. Everyone at Processing Foundation holds a bit of this history, and I think it will be important to synthesize it together.
I think it would be helpful for me to talk to more folks in open source, specifically those who work on educational tools or those who have paid products. I want to ask them how they maintain trust with their community, and how they make sure that the labor of key contributors is compensated.