Writing an Open Source JavaScript Library
Join us for an Exclusive Workshop:

Writing an Open Source JavaScript Library

Kent C Dodds
Kent C Dodds
August 9, 2016 - 9:30am to 5:30pm Central US Time

Attend Online

Live and in Full HD

Join in Person

From Downtown Minneapolis, MN

You're Registered to Attend Online!

August 9, 2016 - 9:30am to 5:30pm Central US Time

This Workshop Is Currently Live

August 9, 2016 - 9:30am to 5:30pm Central US Time

This Workshop Has Already Concluded

Writing an Open Source JavaScript Library

Why You Should Join Us

By coding along with us in the Workshop, you'll:

  • Learn how to set up a new project locally and on GitHub for development
  • Learn how to configure npm for publishing the project to the npm registry
  • Learn how to transpile the source with babel
  • Learn how to add unit tests and code coverage
  • Learn how to add CI (with Travis CI) to run tests automatically and report coverage stats to codecov.io
  • Learn how to automate releases with semantic-release
  • Learn how to distribute a browser build with webpack

Your Instructor

Kent C Dodds

Kent C Dodds

Kent C. Dodds works at PayPal as a full stack JavaScript Engineer. He represents PayPal on the TC39. He's actively involved in the open source community as a creator and contributor. He does a bunch of stuff in the React and general JavaScript ecosystem. Kent's an Egghead.io instructor, Frontend Masters instructor, and Google Developer Expert. He's happily married and the father of four kids. He like code. He care about craft, design, tools, and architecture.

Spend a Full Day Immersed With a Leading JavaScript Master

Workshop Details

Publishing an open source library is fun, rewarding, and sometimes daunting. In this class we'll learn about the tools and tricks you can utilize to publish an open source project with ease and confidence.

Join Kent C. Dodds and learn invaluable skills you can take back to improve your JavaScript applications.

Daily Schedule

We'll get started by giving an overview of what we're going to build, then we'll get our blank slate going with a package.json. We'll talk about the significance of this file and the various properties we'll use to help us with the distribution and management of our module and its dependencies.

Then we'll add the tooling needed for testing our library and adding code coverage. This is something that's really important to get working early on in the project, so we'll get it done early.

Then we'll jump into setting up the tooling for transpiling our source code from ESNext to ES5 so we distribute code that can be consumed by people delivering to older environments (like old Node or browsers).

Then we'll add the tooling we need to distribute a browser version of our library so people can consume our library in the context of a browser (without having to bundle it themselves).

As contributions to our library grows, it'll be important to be able to check that the contribution passes our unit tests automatically without having to pull down every pull request to test it locally. So we're going to add continuous integration with TravisCI to automatically run our tests and report the code coverage reports to codecov.io

With this infrastructure set up, we'll then add semantic-release to automate releases of our library. This will help us reduce a great amount of human error associated with the release process.

We'll wrap up by providing useful links and resources about how to maintain the project in the long term.

  • 4:00AM
    Wrap up, links, and resources
  • 8:30AM
    Tech Check and Hello
  • 9:00AM
    Give overview of the course and the library we're building
  • 9:15AM
    npm init the package.json
  • 9:45AM
  • 10:15AM
    Add unit tests with mocha & coverage with nyc
  • 10:45AM
  • 11:30AM
    Add transpiling with babel
  • 12:00PM
    Lunch and Exercises
  • 1:00PM
    Distribute a browser build with webpack
  • 1:30PM
  • 2:00PM
    Add CI with Travis CI
  • 2:15PM
  • 3:00PM
    Automate releases with semantic-release
  • 3:30PM

Interact with the Instructor - Online & In-Person

Get Your Questions Answered • Code Along with the Class • Classroom Format

Is This Workshop for Me?


This is for anyone who writes code they want to use again for themselves in another project or share with others. If you've never published a library before, this will be great for you. If you've published libraries, but want to see how you can improve your tooling and automate processes, this will be really valuable.

Event Details


One Full Day Workshop Session

Replay Videos (available immediately)


August 9, 2016 - 9:30am to 5:30pm Central US Time


Option 1: Attend online on our full HD live stream

Option 2: Attend in-person at HQ in Minneapolis, MN