5. Literally means:
The source code is published with a license potentially
allowing modification and distribution of the code
Usually means:
The code is written collaboratively on GitHub
6. Free as in beer?
Free as in speech?
"Open" means free
8. For the author/maintainer:
• Lots of testers and people reporting bugs
• Anyone can fix bugs and add features
• More people will use and know how to use the project
• Interact with users/developers through GitHub
• Great for recruiting
Pros of open source
9. For the developer/user:
• You can fork and modify the code however you need
• You can rely on this code even if the company creating it goes
out of business
• Development progress is transparent on GitHub
• Improve your reputation by contributing
Pros of open source
10. Cons of open source
For the author/maintainer:
• It’s hard to build a business around open source
• Very time-consuming if it isn’t your full-time job
• People expect a lot from you (e.g. free support)
11. Cons of open source
For the developer/user:
• You can’t necessarily expect support from the authors
• If the project isn’t backed by a company, it can stop suddenly
14. Choosing a project
• Contribute to something you use
• Fix a bug or add a feature
• Merge a fork "upstream"
• Start your own
• Look at a list of open source projects• Look at a list of open source projects
15. Contributing to something you use
Why something you use?
• You’ll understand what the project is supposed to do and why
• You’ll be familiar with the API (which parts are good vs. bad)
• You’ll have concrete test cases in your existing work
• You’ll be meticulous in your contributions, since you’ll use them
• You can have well-informed conversations with contributors
16. Contributing to something you use
How to get started
• Just jump in and start reading the codebase
• Fix a small bug or add a small option to a feature
• Try something more challenging (e.g. big feature)
• Inform the authors on GitHub
• Discuss the task in detail
18. A few projects I’ve contributed to
React Native
CodeMirror
FramerJS
A few projects I’ve created
Deco IDE
React Native Express
React Native Web Player