Haciendo que una biblioteca de código abierto sea financieramente sostenible

Rate this content
Bookmark

React Flow es una biblioteca de código abierto utilizada por miles de desarrolladores y cientos de empresas. ¿Cómo nos aseguramos de que se mantenga viva y también sea gratuita? Compartiré algunas ideas a lo largo de nuestro viaje desde la liberación de React Flow como código abierto hasta alcanzar el "cero negro", incluyendo los hallazgos de nuestra investigación de usuarios donde hablamos con algunas de las personas que nos apoyan cada mes.

8 min
02 Dec, 2022

Video Summary and Transcription

La charla trata sobre cómo se logró que una biblioteca de código abierto, ReactFlow, sea financieramente sostenible. Se probaron varios métodos, incluyendo el patrocinio de Github y la financiación cruzada, pero finalmente se agregó un precio a la biblioteca. Generar confianza y expectativas claras a través del apoyo continuo y la comunicación con los suscriptores fue clave para obtener apoyo financiero. El problema de las personas que no saben cuánto contribuir se abordó mediante la provisión de una estructura de precios clara. Se agregaron características adicionales como soporte individual y ejemplos profesionales para combatir la paradoja de la elección y fomentar el apoyo financiero.

Available in English

1. Haciendo una Biblioteca de Código Abierto Sostenible

Short description:

Estoy aquí para hablar sobre cómo hicimos que nuestra biblioteca de código abierto fuera financieramente sostenible. Construimos ReactFlow como una biblioteca de código abierto que ganó tracción. Probamos varios métodos para mantenerla financieramente, incluyendo el patrocinio de Github y la financiación cruzada. Sin embargo, queríamos mantener la licencia MIT y permitir que las empresas más pequeñas la utilizaran. Así que añadimos un precio a la biblioteca.

Hola a todos. Soy John. Hola a todos. Soy John. Eso se sintió como una introducción intensa. Estoy aquí para hablar sobre cómo hicimos que nuestra biblioteca de código abierto fuera financieramente sostenible.

Soy John. Trabajo para ReactFlow. Es una biblioteca que construimos para construir otra cosa que estábamos haciendo hace un par de años. ¿Alguien aquí ha utilizado ReactFlow en algún momento? Algunas manos levantadas y más para ayudar a construir la biblioteca. Gracias por eso.

Construimos esto hace un par de años. Mientras hacíamos otra cosa, decidimos hacerlo de código abierto. Terminó ganando tracción, lo cual fue genial, pero por supuesto, lo que viene con una biblioteca de código abierto que se utiliza con frecuencia es que necesitamos mantenerla. Empezamos a tener muchos problemas, mucha gente haciendo preguntas, el canal de Discord empieza a crecer. Nuestra pregunta fue cómo podemos asegurarnos de que tenga todas las características que necesita, que sea estable para todas estas personas que la están utilizando? Eso viene con las finanzas. ¿Cómo nos aseguramos de mantenerla financieramente?

Probamos varias cosas. Primero, el patrocinio de Github. Para nosotros, no funcionó en absoluto. No era suficiente dinero para trabajar en esto y dedicar una cantidad considerable de tiempo a ello. No teníamos suficientes seguidores, ni suficiente dinero por seguidor. La financiación cruzada era una opción, pero por supuesto, eso es trabajar como una agencia un poco más intensa y luego dividir tu tiempo entre dos cosas. Ir a inversores. Queríamos tener la opción de poder decidir la dirección de nuestra propia biblioteca en ese momento así que eso no era una opción para nosotros. Por supuesto, estaba la opción de simplemente añadir una licencia propietaria en lugar de MIT, venderla a algunas de las empresas que la utilizan por un par de miles de euros y poder ir a Mallorca. Pero para nosotros, la licencia MIT era muy importante ya que habíamos utilizado un montón de cosas con licencia MIT y queríamos que las personas que no pudieran pagarla o las empresas más pequeñas pudieran utilizarla, y creemos en el código abierto en general.

Entonces, ¿qué hicimos? Añadimos un precio. Así que todos ustedes probablemente han visto este tipo de pantalla con tres rectángulos antes y saben exactamente lo que significa. Tienen una opción más barata a la izquierda, más cara a la derecha. Así que a la izquierda tenemos la biblioteca tal como está.

2. Building Trust and Clear Expectations

Short description:

Código abierto, MIT, todos pueden usarlo. Añadimos características, informes de errores y soporte individual. La gente se suscribió y nos volvimos financieramente sostenibles. Hablamos con los suscriptores y obtuvimos información. Construir confianza a través de un soporte continuo es importante. Al responder rápidamente, los suscriptores nos conocieron y nos apoyaron. Hacer nuestras expectativas claras nos ayudó a obtener apoyo financiero.

Código abierto, MIT, todos pueden usarlo. Solo descárgalo como quieras. Y luego agregamos algunas características de ejemplos profesionales, informes de errores prioritarios, y para los que están dispuestos a pagar un poco más, les ofrecimos soporte individual durante una hora al mes y queríamos ver qué sucedía. Veamos si esto funciona. La gente se suscribió. Increíble. Y así es como nos convertimos en una empresa de tres personas financieramente sostenible.

Genial. Pero lo que sucede es que no estábamos seguros de por qué la gente se suscribía para pagar por algo que básicamente pueden obtener de forma gratuita. Así que eso es de lo que voy a hablarles hoy, lo que descubrimos a partir de una investigación que nuestra buena amiga Eileen, que es investigadora, dijo: `Oye, ¿por qué no les preguntas a tus suscriptores por qué están pagando?` Así que hablamos con ocho suscriptores. Y obtuvimos una gran cantidad de información valiosa de ellos. Y algunos de ellos son específicos de React flow, ¿verdad? Nuestra propuesta de valor es excelente, lo cual es increíble. Y en el espacio, en ese momento, no había muchos competidores en este nicho. Pero hoy, compartiré con ustedes algunas cosas que puedo transmitirles a todos ustedes que no están relacionadas solo con React flow.

Hablo rápido. Soy de cerca de la ciudad de Nueva York. Así que despacio. Ahí vamos. Haciendo clic en los botones. Atrás, atrás. Y eso fue un descanso para todos ustedes. El primer punto de cuatro. Probablemente muchos de ustedes ya saben si han trabajado en software de código abierto, que construir confianza a través de un soporte continuo es muy importante al principio, especialmente si vas a tratar de averiguar qué características construir, tus usuarios te lo dirán. Y al responder rápidamente a esas cosas en GitHub y Discord, comenzarás fácilmente a construir esa confianza. Así que cuando realmente hablamos con nuestros suscriptores, no solo sabían que React flow es una gran biblioteca, conocían nuestros nombres. Así que no solo estaban apoyando la biblioteca que obtenían en GitHub y la documentación, sino que nos estaban apoyando a nosotros como personas.

Luego la pregunta es, si nos apoyan como personas, ¿cómo podemos lograr que realmente nos apoyen financieramente si pueden hacerlo? Y eso es haciendo nuestras expectativas claras. Como dije antes, probamos los patrocinios de GitHub y no funcionó en absoluto, ni siquiera cerca de ser financieramente sostenible. Y luego implementamos esta cosa que es prácticamente el modelo probado y verdadero de las empresas SaaS durante años, y funcionó. Y nuestra hipótesis aquí es que básicamente hemos reducido la elección, porque hay tantas bibliotecas de código abierto, no estamos seguros de cómo apoyarlas.

3. Addressing the Paradox of Choice and Pricing

Short description:

Abordamos el problema de que las personas no saben cuánto contribuir al proporcionar una estructura de precios clara. A pesar de ser gratuito, agregamos algunas características adicionales como soporte individual y ejemplos Pro. Esto nos ha ayudado a combatir la paradoja de la elección y obtener apoyo financiero.

Pueden tener estructuras de gobierno complejas, no estamos seguros de cuánto dinero necesitan, cuánto dinero esperan para este tipo de cosas. Por lo tanto, puede ser difícil para las personas decir, cuando van a un patrocinio de GitHub, decir, ¿les doy 10 euros al mes o 100 euros al mes? ¿Qué necesitan? Así que nuestra hipótesis es que hemos combatido un poco la paradoja de la elección aquí. Pero la pregunta nuevamente es, ¿qué pones en la parte superior? Toda esta biblioteca es gratuita. ¿Voy a construir otra biblioteca completa encima? Y como dije antes, no lo hicimos. Solo agregamos estas características, como una hora de soporte individual, que honestamente no todos nuestros suscriptores están solicitando, por lo que no necesitamos pasar todo nuestro tiempo haciendo eso. Tenemos algunos ejemplos Pro adicionales. Pero cuando hablamos con nuestros suscriptores, una de las personas con las que hablamos tenía 10 pestañas de documentación de React Flow abiertas en su pantalla mientras hablábamos con él. Y parecía que tenía la idea de que no solo está pagando por este soporte individual y estos ejemplos Pro, sino que está pagando por toda la biblioteca. Está apoyando el desarrollo completo de esta biblioteca a lo largo del tiempo, aunque sea gratuita. Lo cual es cierto, porque así es como podemos seguir sosteniéndola. Pero eso fue un descubrimiento en el que no pensamos antes. Pensamos que la gente diría, oh, eso es demasiado dinero para gastar en soporte y algunas características adicionales, pero realmente, las personas, después de haberse suscrito a las que hablamos, se dan cuenta de que están apoyando toda la biblioteca y esta pequeña cosa en la parte superior. Y la cuarta y última pieza es proporcionar un punto de entrada claro para las personas que son fanáticas y pueden pagar, y convertirlas en seguidores. Entonces, a estas empresas enterprise que podrían estar usando su producto, bríndeles un punto de contacto, si es posible, en su código. Para nosotros, es más fácil, porque tenemos una herramienta visual. Entonces tenemos una pequeña atribución que dice React flow en la esquina. Y puedes eliminarlo con CSS. Tiene licencia MIT. Puedes eliminarlo fácilmente de cien formas diferentes. En el código, decimos, hey, si puedes apoyarnos, ve a este enlace, y esta es una forma de hacerlo. Y en ese momento, no solo hay un poco de fricción para el desarrollador, como, esto no es fácil, ¿cómo lo elimino? Pero también se han enfrentado a una pequeña decisión moral, si pueden pagar por ello, ¿por qué no estoy pagando por ello? Así que si no prestaste atención durante el resto de la charla, solo toma una foto de esto, y luego deberías estar listo. Gracias. Gracias. Gracias. Gracias.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

React Advanced Conference 2022React Advanced Conference 2022
16 min
How to Build Your Own Open Source Project
We all used open source projects every day such as npm packages, editors, web applications, and even operating systems... Have you ever thought of building one of your own? In this talk, I will share my journey building jest-preview, from when it was just a vague idea, to currently a well-adopted library to help frontend engineers write tests faster. I will share with you how to come up with an idea for a project to work on, what is the struggles you have to overcome as an author of an open source project, how to manage time efficiently, and how you get attention from engineers around the world.
TypeScript Congress 2022TypeScript Congress 2022
30 min
Lessons from Maintaining TypeScript Libraries
Maintaining widely-used JS libraries is already complicated, and TypeScript adds an additional set of challenges.

Join Redux maintainer Mark Erikson for a look at some of the unique problems TS library maintainers face, and how the Redux team has handled those problems. We'll cover:

- Tradeoffs of different ways to define TS types for a library
- How to target different versions of TS, and considerations for determining the supported version range
- Migrating existing JS libraries to TS
- Differences between writing "app" types and "library" types
- Managing and versioning public types APIs
- Tips and tricks used by types from the Redux libraries
- TS limitations and possible language-level improvements
Vue.js London 2023Vue.js London 2023
31 min
Nuxt 3 Modules and Open-Source
Nuxt modules are the de-facto way of extending our Nuxt applications with new behaviors and functionalities. Have you ever built your own? Why would you bother with hundreds of modules already out there? Let's answer those questions together and see why making your own modules in Nuxt 3 can both help you have a deeper understanding of how Nuxt works while also paving the way for you to get into open source!
React Finland 2021React Finland 2021
18 min
The State of XState
Over the past few years, state machines, statecharts, and the actor model have proven to be viable concepts for building complex application logic in a clear, visual way with XState. In this talk, we'll take a peek into the future of XState, including new features in the next version, and new tools and services that will make it even easier to create and collaborate on state machines.
React Day Berlin 2023React Day Berlin 2023
31 min
Break the Race: Easy Race Condition Detection for React
Race conditions are among some of the most challenging to detect and reproduce issues. As such they pose a significant challenge in development notably in UI. In this talk, we explore how to detect race conditions by leveraging fuzzing techniques. We walk you through discovering the real problem of race conditions and how they impact user experience. We provide you tools and examples demonstrating how to easily detect them in your daily work thanks to tests relying on fuzzing. After that talk, we hope your React code will be race conditions free or at least that you will have the right tools to help you.

Workshops on related topic

Node Congress 2023Node Congress 2023
85 min
Node.js: Landing your first Open Source contribution & how the Node.js project works
Workshop
This workshop aims to give you an introductory module on the general aspects of Open Source. Follow Claudio Wunder from the OpenJS Foundation to guide you on how the governance model of Node.js work, how high-level decisions are made, and how to land your very first contribution. At the end of the workshop, you'll have a general understanding of all the kinds of work that the Node.js project does (From Bug triage to deciding the Next-10 years of Node.js) and how you can be part of the bigger picture of the JavaScript ecosystem.

The following technologies and soft skills might be needed):
  - Basic understanding of Git & GitHub interface
  - Professional/Intermediate English knowledge for communication and for allowing you to contribute to the Node.js org (As all contributions require communication within GitHub Issues/PRs)
  - The workshop requires you to have a computer (Otherwise, it becomes difficult to collaborate, but tablets are also OK) with an IDE setup, and we recommend VS Code and we recommend the GitHub Pull Requests & Issues Extension for collaborating with Issues and Pull Requests straight from the IDE.

The following themes will be covered during the workshop:
- A recap of some of GitHub UI features, such as GitHub projects and GitHub Issues
- We will cover the basics of Open Source and go through Open Source Guide
- We will recap Markdown
- We will cover Open Source governance and how the Node.js project works and talk about the OpenJS Foundation
  - Including all the ways one might contribute to the Node.js project and how their contributions can be valued
- During this Workshop, we will cover Issues from the nodejs/nodejs.dev as most of them are entry-level and do not require C++ or deep technical knowledge of Node.js.
  - Having that said, we still recommend enthusiast attendees that want to challenge themselves to "Good First Issues" from the nodejs/node (core repository) if they wish.
  - We're going to allow each attendee to choose an issue or to sit together with other attendees and tackle issues together with Pair Programming through VS Code Live Share feature
    - We can also do Zoom breakrooms for people that want to collaborate together
  - Claudio will be there to give support to all attendees and, of course, answer any questions regarding Issues and technical challenges they might face
  - The technologies used within nodejs/nodejs.dev are React/JSX, Markdown, MDX and Gatsby. (No need any knowledge of Gatsby, as most of the issues are platform agnostic)
- By the end of the Workshop, we'll collect all (make a list) the contributors who successfully opened a Pull Request (even if it's a draft) and recognise their participation on Social media.