Open Sourcing Your Stuff
Kent C. Dodds
Utah
1 wife, 3 kids
PayPal, Inc.
@kentcdodds
![](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/kentcdodds/images/1237297/smile.png)
What this talk is not
- An explanation of all of the benefits of open sourcing
- Word-for-word script of what to tell your boss when you want to open source
- Everything you need to know to maintain an open source project
![](https://s3.amazonaws.com/media-p.slid.es/uploads/kentcdodds/images/1237298/neutral_face.png)
What this talk is
- Identifying a good candidate in a project for open sourcing
- Extracting it to a solid open source project
- Publishing the library on npm
- Replacing the custom project code with a library dependency
![](https://s3.amazonaws.com/media-p.slid.es/uploads/kentcdodds/images/1237299/grinning.png)
Let's get started...
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/3160804/Screen_Shot_2016-10-25_at_9.38.27_PM.png)
Identify the component
for open sourcing
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/1738415/flushed.png)
Prepare it
for open sourcing
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/3160884/1f51c.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)
Create the GitHub repo
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/1738703/octocat.png)
on github.com
Copy the needed files
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/1738638/cherries.png)
from your project
Alter the files
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/1738689/mount_fuji.png)
so they can stand on their own
yarn (or npm) init
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/1738693/space_invader.png)
create your package.json
build with babel
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/3160809/1f420.png)
create your package.json
test with jest
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/1738735/boom.png)
setup your project's tests
npm publish
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/1751642/joy_cat.png)
and git tag && git push
npm install
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/1751653/palm_tree.png)
and add the module dep
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...
Thank You!
![](https://s3.amazonaws.com/media-p.slid.es/uploads/55780/images/1628505/wave.png)
Open Sourcing Your Stuff
By Kent C. Dodds
Open Sourcing Your Stuff
How to write an Open Source JavaScript Library
- 6,228