Open Sourcing Your Stuff
How to create an Open Source JavaScript Library
Kent C. Dodds
Utah
wife, 4 kids, & a dog
PayPal, Inc.
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/2504801/slides-logo-black-1400x550-e5784ee4ba30e28a9b9ddf59ca5651a6.png)
Please Stand...
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/4757643/big-smile.png)
if you are able ❤️ ♿️
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/4807106/azure_advocates.png)
Thanks Azure Advocates!
Diversity Scholarship Sponsors
What this talk is
- Identifying a good candidate in a project for open sourcing
- Extracting it to a solid open source project
- Pushing the library to a GitHub org
- Publishing the library on npm
- Replacing the custom project code with a library dependency
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/4757655/smile.png)
What this talk is not
- An explanation of all of the benefits of open sourcing
- Everything you need to know to maintain an open source project
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/4757659/neutral-face.png)
Let's
Get
STARTED!
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/4757664/racing-car-reverse.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/4757665/dash-reverse.png)
Let's get started...
Identify the component
for open sourcing
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/1738415/flushed.png)
Create the new Project
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/1738542/sweat_smile.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/1738602/Screen_Shot_2015-09-18_at_2.42.04_PM.png)
npm init
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/1738693/space_invader.png)
create your package.json
Copy the needed files
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/1738638/cherries.png)
from your project
npm publish
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/1751642/joy_cat.png)
npm install
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/1751653/palm_tree.png)
and add the module dep
Create the GitHub repo
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/1738703/octocat.png)
Create the git repo
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/1738719/git.png)
git init && git remote
Community
You are not an island
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/4806992/1f30d.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/4806993/1f30e.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/4806994/1f30f.png)
ESLint & Jest
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/1738735/boom.png)
setup your project's tests
Build
Write modern JS!
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/4807082/1f420.png)
CI
Run tests, linting, and build for every PR
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/4806975/1f477.png)
done!
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/1751658/dancer.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/kentcdodds/images/1237306/clap.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/kentcdodds/images/1237306/clap.png)
Resources
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/4757666/books.png)
Thank you!
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/4757667/wave.png)
Open Sourcing Your Stuff
By Kent C. Dodds
Open Sourcing Your Stuff
How to write an Open Source JavaScript Library
- 5,659