explaingit

toss/es-toolkit

11,065TypeScriptAudience · developerComplexity · 2/5LicenseSetup · easy

TLDR

es-toolkit is a modern JavaScript utility library offering functions like debounce, chunk, and pick that can shrink your app's bundle by up to 97% vs lodash, with a drop-in compatibility layer.

Mindmap

mindmap
  root((es-toolkit))
    What it provides
      Utility functions
      Type-safe helpers
      Lodash compatibility
    Key functions
      debounce
      chunk
      pick
    Benefits
      97% smaller bundle
      2-3x faster
      Tree shakeable
    Used by
      Storybook
      Recharts
      CKEditor
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Replace lodash in an existing project using the es-toolkit/compat drop-in compatibility layer without rewriting code.

USE CASE 2

Reduce JavaScript bundle size by switching to tree-shakeable utility functions that only include what you import.

USE CASE 3

Use fully typed utility functions like debounce or chunk in a TypeScript project with full editor autocomplete.

Tech stack

TypeScriptJavaScript

Getting it running

Difficulty · easy Time to first run · 5min
Use freely for any purpose including commercial as long as you keep the copyright notice.

In plain English

es-toolkit is a JavaScript utility library, which means it is a collection of small, pre-written functions that developers commonly need when building web applications. Functions like debounce (which delays an action until a user stops typing), chunk (which splits a list into smaller groups), and pick (which pulls specific fields from an object) are included. Instead of writing these from scratch each time, a developer installs the library and uses the pre-built versions. The main appeal compared to older libraries like lodash is a much smaller file footprint. Because es-toolkit is designed to support tree shaking, only the specific functions your application uses get included in the final JavaScript file sent to users' browsers. According to the project's benchmarks, this can reduce bundle size by up to 97% compared to similar libraries. The library also claims to run 2 to 3 times faster in modern JavaScript environments. For teams already using lodash, es-toolkit ships a compatibility layer called es-toolkit/compat that makes it a near drop-in replacement. You can swap it in without rewriting all existing code. The library is written in TypeScript, meaning editors like VS Code will show type hints and catch certain errors before you run the code. It also provides utility functions for checking the type of a value, such as testing whether something is neither null nor undefined. es-toolkit is used in several well-known open-source projects, including Storybook, Recharts, and CKEditor. It was built by Toss, a South Korean fintech company, and is released under the MIT license.

Copy-paste prompts

Prompt 1
Replace all my lodash imports with es-toolkit/compat in this codebase, walk me through the steps and flag any breaking differences.
Prompt 2
Show me how to use es-toolkit's debounce function to delay a search API call until the user stops typing for 300ms.
Prompt 3
How do I use es-toolkit to chunk an array of 500 items into pages of 10 and display them with React pagination?
Prompt 4
Migrate my JavaScript project from lodash to es-toolkit to reduce bundle size, show me before and after import examples.
Open on GitHub → Explain another repo

← toss on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.