Creating React Libraries from Scratch

In this course we'll cover what it takes to maintain, write, and publish a React library from scratch.


What You Will Learn

Creating a React library from `yarn init` to deployed on npm

The different types of JavaScript dependency types and versioning

Setting up documentation for contributers and consumers

Keeping up with code quality while multiple people work on a project

Different JavaScript module systems

In this course, we'll cover what it takes to write, maintain, and publish a React library from scratch. In the 2020 State of JS survey, an annual survey conducted of the frontend JavaScript community, React came in as the most used framework for frontend development. Because React is so popular, building libraries in it can open you up to a wide range of users, contributors, and possibilities!

Why this course

Building a library is so much more than just the code. We need to know the ins and outs of versioning, deploying, building, documenting, dependency management, module types, tooling, and more. This is a daunting task for just one tutorial to cover. Creating React Libraries from Scratch will teach you everything you need to know to succeed in creating a library.

Don't worry if you're not a React wizard. This course is designed for beginners who have never deployed a library before and have minimal React experience. However, you should be familiar with JavaScript.

Course Topics

Throughout Creating React Libraries from Scratch we'll develop a React Hook called Scroller that will provide a utility for scrolling around web pages—taking advantage of window.scrollTo. We'll start in module 1 with an empty directory; adding documentation files, installing dependencies, and setting up GitHub. Right away, you'll have a project that could be deployable as a fully functional library! In module 2 we'll implement scroller while taking advantage of Storybook to visually test our code. By module 3 Scroller will be deployed to npm in multiple JavaScript module formats. Finally, in module 4, we'll look at different tools and techniques in software development to maintain a library. This includes linting, unit tests, TypeScript, and Lint-Staged! By the end of this course, you'll be able to run npm install scroller, and take advantage of React code you wrote in future projects.

Creating React Libraries from Scratch will dive into:

  • initializing a new npm package
  • maintaining code quality
  • publishing to npm
  • keeping contributors on track
  • exposing modules that work in NodeJS and the Web
  • unit-testing
  • Storybook for demoing components
  • exposing typing using TypeScript
  • and more!

Course Content

5 modules19 lessons1h 6m total


2 lessons 4m total


An introduction to the course.


2:16 minutes

Setting up our development environment

Get the required tooling installed for developing our library.


2:25 minutes


4 lessons 18m total

Setting Up Our Project

Setting up the files and directories needed to write a React library.


5:25 minutes

What are Dependencies?

Introduction to project dependencies, devDependencies, and peerDependencies.


4:36 minutes

Installing Scroller's Dependencies

Installing dependencies for the Scroller library.


3:07 minutes

Initializing Git and GitHub

Setup Scroller using Git, create a new GitHub project, and how push code to GitHub.


5:11 minutes


3 lessons 7m total

Scroller schema

Describe the implementation of Scroller.


1:07 minutes

Implementing Scroller

Writing code for the Scroller library and exporting it for users.


2:52 minutes

Setting up Storybook

Setup Storybook to view and test our code.


3:56 minutes


4 lessons 15m total

Setting up ESBuild

Why do we need to bundle our code, and how can ESBuild help?


2:18 minutes

JS Modules

What are JS Modules, and how do they affect consumers of our code?


4:54 minutes

Building Multiple JS Modules

Updating ESBuild to export multiple JS module formats.


2:54 minutes

Deploying to NPM

How to configure and deploy to a public npm repository.


5:34 minutes


5 lessons 19m total


An introduction to maintainability in a React library.


0:43 minutes


Adding a type-system to JavaScript.


7:01 minutes


Testing our code through unit tests.


4:33 minutes


Code linting and ensuring code style.


4:33 minutes


Git hooks to prevent bad commits.


2:23 minutes


1 lesson 34s total


What we learned in Creating React Libraries from Scratch.


0:34 minutes

Your Instructors


👨‍💻 Hi, I'm Dylan Paulus! I'm a Lead Software Engineer working on full-stack software for the power grid with previous experience at PlayStation and higher education. In all these positions I lead the migration of large codebases to React, maintained open-source libraries, and created high-value enterprise applications. I'm passionate about increasing developer productivity. One of the best ways to improve developer velocity is by creating libraries that remove friction in the development process.

In this course, we'll be breaking down how to create maintainable React libraries. We'll start with 'npm init' and end with a fully deployed NPM package.

Frequently Asked Questions

Who is this course for?

The entry-level or intermediate developer with some knowledge of React or Web Dev, who has never published an npm package.

What if I need help?

You can ask us questions anytime through the community Discord channel or by sending us a message.



OrGet this course and every newline Book and Guide with a newline Pro subscription for just $20/mo
  • 19 lessons (1h 6m)

  • 1 complete project

  • 336 lines of code

Creating React Libraries from Scratch