What We Owe to Each Other

Rate this content

Open source has won, and it's the center of gravity for our community. Whether we're contributors to open source projects, commercial product engineers, companies, developer advocates, or something else, we're all a part of this community. And we owe it to each other, and to ourselves, to leave the community better than we found it.

But how do we do that? What responsibilities do companies have to the community? Or developer advocates? Or OSS contributors? How are we failing those responsibilities, and how can we do better?

In short, what do we owe to each other? Let's find out.

Bryan Hughes
Bryan Hughes
24 min
05 Jun, 2023


Sign in or register to post your comment.

Video Summary and Transcription

The Talk discusses building and supporting the JavaScript community, the role of companies in open source, the importance of time and collaboration, reporting bugs with kindness, the challenges of developer relations, the role of maintainers and documentation, the importance of inclusivity, embracing change in project development, supporting ourselves and the community, and finding hope for a better community.

Available in Español: Lo que le debemos a los demás

1. Building a Thriving JavaScript Community

Short description:

Hi, JS Nation. I'm Brian Hughes, a staff front end engineer at Patreon. I've been part of the open source community for a decade, playing various roles and contributing to projects like Node.js. In this talk, I'll discuss how we can grow and support our community and what it means to be an upstanding citizen.

Hi, JS Nation. My name is Brian Hughes and I'm a staff front end engineer at Patreon. I've been a part of the open source community for about a decade now, which is kind of wild to think about. You know, I've seen this community grow so much during that time.

And you know, I've been fortunate that I've been able to play a variety of roles within the community. You know, I've started my own smaller open source projects. I used to be pretty involved in the Node.js project. I've also been working as developer relations in the community. I presented at lots of conferences, and, you know, I've used open source in my day-to-day work a lot.

And like over this time, I've thought a lot about like what it takes to build a good community and how we can help this community thrive because we really are independent at the end of the day. So I want to spend this talk talking about exactly that. How do we help grow this community? How do we help each other out? Basically, you know, what do we owe to each other?

So this talk is inspired by this book of the same title by T. M. Scanlon. Scanlon's a moral philosophy professor, wrote this book about 25 years ago. I don't expect many of you have actually read this book. Admittedly, I'm only about a third of the way through this book myself, but a lot of you have seen this show, The Good Place. So it turns out The Good Place is actually inspired by T. M. Scanlons book and it kind of has that philosophy at the core of the show and the show. I love the show so much because it's all about growing and becoming better than we were yesterday and how we come together, support each other. And it's, you know, through all of these characters growing closer together that they end up, you know, succeeding with all of their wild adventures they go on. And it's just all about community. You know, that's what they do is they form their own small community. And you know what? We're a community, too. It may not always necessarily seem like that, but we really are. Even if we're just using open source, we're still taking part in this community. And, of course, for all of you listening right now, this is a conference for us to come together as a community. And I think this is so important. And it's led me to ruminate on this question of what does it mean to be a good community an upstanding citizen in the JavaScript community.

2. The Role of Companies in the JavaScript Community

Short description:

This is a complicated question. And there's no one-size-fits-all answer to it. A lot of it depends on what kind of role you have within the community. I'm going to focus on three in specific: the role of companies, developer relations, and project maintainers. Companies stand on the shoulders of open source giants and benefit from open source. It's important for companies to give back by supporting open source with time and money. Companies and the open source community have a symbiotic relationship. A good example is Observable sponsoring the CodeMirror project, which improved their product and helped the project grow. Companies should consider contributing to open source projects like becoming members of the OpenJS Foundation.

This is a complicated question. And there's no one-size-fits-all answer to it. A lot of it depends on what kind of role you have within the community. And we could spend all day talking about there's so many different kinds of roles people can play. But we only have so much time together, so I'm going to focus on three in specific. I'm going to focus on the role of companies, focus on the role of developer relations, and on that of project maintainers themselves.

Let's start by talking about companies and the role they have to play in the JavaScript community. Because really these days, companies stand on the shoulders of open source giants. Every single web app I can think of that's out there today I'm sure has open source at the heart of it. How many web apps that companies have created are getting out there, getting customers and all of that, how many of those products are based on top of Node.js in the or Python or some of the other open source server runtimes? How many apps are written using React? How many are written using Webpack to build? How many use TypeScript? VS Code? All of these are open source. Some of these were created by companies, yes, but not all of them. But they're all open source regardless. And so, you know, the fact that we can build code so much faster, we can build more complicated apps faster than we used to be able to, even if it still feels like it's, you know, pulling teeth at times, there's so many options. We have improved so much because of open source. And companies benefit from this. And so, you know, I think it's really important for companies to give back. And the main way that companies can do this is supporting with time and money. And, you know, I know this sounds like, you know, companies should be altruistic, but it's not really the case. There's a symbiosis between companies and the open source community. And companies supporting open source ultimately helps them, too.

As a good example, I used to work at a startup called Observable. And we based our code editor on the open source project CodeMirror, which is a great project, by the way. Just a lot of great work from Ren, the lead maintainer, and everyone else who worked on it. And because we were using this as such a core part of our product, Observable actually ended up sponsoring the project. You know, donating money to it specifically so that, you know, all of the maintainers on the project could focus on it full-time. And by doing so, the project grew faster, it became more reliable, bug fixes, all of that that ended up helping us in return. We didn't have to hire someone to do it ourselves because we could, like, you know, enable the project to do it for us. It was a great symbiotic relationship between the two. I think all companies, at least if there's, like, open source was a really core part of what you do, if there's especially one or two projects that are at the heart of what you do, you know, think about how you can contribute. With the Node.js project, for example, companies can become members of the OpenJS Foundation, which oversees the project.

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

How to Build Your Own Open Source Project
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.
The Hidden Cost of Open Source
Vue.js London 2023Vue.js London 2023
11 min
The Hidden Cost of Open Source
There is a cost that many companies don’t consider when using open source. It can cost a lot of money and time to keep upgrading sunsetted versions.Open source is free for companies to use until the author sunsets a version.These are some best practices that we we recommend when considering open source adoption:        - Who is the author? Do they have a strong reputation that is going to be around for a long time? Do they have the resources to support an enterprise library?        - How much online support is there in the community for this library? How many dependencies are on this library?        - Does it have an end of life policy? What’s going to happen when they rev on a version? Will companies have an option to stay on older versions for a long time?        - What should you consider when migrating to a supported framework after a version has been sunsetted?
Lessons from Maintaining TypeScript Libraries
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
Patterns for Large Scale Vue.js Applications
Vue.js London 2023Vue.js London 2023
24 min
Patterns for Large Scale Vue.js Applications
What is the best way to structure a Vue.js application so that it can scale to meet all your users' needs? There are multiple patterns established by the Vue community and the programming community at large that can be adopted in order to make your codebases more predictable, maintainable, and extendable.
Nuxt 3 Modules and Open-Source
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!
Break the Race: Easy Race Condition Detection for React
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.js: Landing your first Open Source contribution & how the Node.js project works
Node Congress 2023Node Congress 2023
85 min
Node.js: Landing your first Open Source contribution & how the Node.js project works
 Claudio Wunder
Claudio Wunder
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.