Web Monetization Community

loading...
p5.js Editor

p5.js Editor— Grant Report #2

Cassie Tarakajian
・6 min read

Project Update

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.

We finished creating our Terms of Service and Privacy Policy with New Media Rights, another Grant for the Web recipient. It was so great to work with them as an organization, and I’m relieved to have documents we can use and feel confident about.

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.

Progress on objectives

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.

We wrapped up the Terms of Service and Privacy Policy with New Media Rights. I made sure that a few of us at Processing Foundation read these documents carefully so that we could feel confident about using them. It was also interesting to adapt a “typical” ToS and PP to our needs. For example, in a default ToS and PP, the assumption is that the organization would want ownership over user data, to sell ads or train machine learning models. But as an open-source project, that is not what we want, so we decided to license all user data under Creative Commons — Attribution-ShareAlike. We also learned that because Processing Foundation is a nonprofit, we are exempt from Children's Online Privacy Protection Rule ("COPPA"), which lessens some of the work in implementing the ToS and PP.

Key activities

  • 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!
  • Completed work with New Media Rights to create Terms of Service and Privacy Policy. We have completed some of the work to integrate these documents, but have not yet posted them.
  • 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.

Communications and marketing

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.

What’s next?

We’re at the end of our funding period but the work for this project has not yet been completed. Once the infrastructural changes have been integrated, I will post the Terms of Service and Privacy Policy, and begin work on the subscription model. This involves adding the subscription-only features, working on a communication plan, and a plan to measure its success.

What community support would benefit your project?

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.

Discussion (1)

Collapse
radhyr profile image
Radhy

Awesome work Cassie!