← Default view
React toast libraries · Standings · Matchday 2026-07-13

The toast
league table

Sonner tops the table on installs by a factor of ten. It has not shipped a release in eleven months. Both facts are on this board — and they do not point the same way.

SURVEY 41 CITATIONS ALL FIGURES FETCHED LIVE 2026-07-13 NPM · BUNDLEPHOBIA · GITHUB
41.4MSonner weekly
installs [1]
10×the runner-up
(4.0M) [10]
0Sonner runtime
dependencies [1]
4.7 kBreact-hot-toast gz —
half the field [4]
345 dsince the leader
last shipped [1]
01

The table

Sorted by weekly installs · standalone libraries

Four standalone toast libraries, ranked the way the ecosystem ranks them: by how often npm hands them out. Read across each row — the position column and the release column disagree, and that disagreement is the whole story.

POS
LIBRARY
STARS
WEEKLY INSTALLS
SIZE · MIN+GZIP
DEPS
LAST RELEASE
OPEN ISS.
R19
1
Sonner The default · shadcn-native
⭐ 12.6k
41.4M · champion
9.2 kB · 33.4 min
0
2.0.72025-08-02 · 345 d
52
2
react-toastify The power option · still shipping
⭐ 13.4k
4.0M · 9.5% of leader
9.5 kB · 33.6 min
1
11.1.02026-04-19 · 85 d
72
3
react-hot-toast The minimalist · half the bytes
⭐ 11k
3.4M · 8.3% of leader
4.7 kB · smallest
2
2.6.02025-08-15 · 332 d
115
Relegation zone no npm release in 18 months — not a greenfield pick
4
notistack Legacy · MUI's queue, unmaintained
⭐ 4.1k
1.4M · mostly existing MUI apps
8.2 kB · 23.4 min
2
3.0.22025-01-18 · 541 d
53
Installs bar scaled to the leader (41.4M = full) Size bar scaled to 10 kB gz — shorter is better R19 = React 19 peer range accepted Sources: [1] [3] [4] [5] [6] [7] [8] [10] [11] [12] [15] [17] [19] [20]
02

Two tables, two champions

The same four clubs, ranked twice

Re-sort the field by who is actually shipping code and the leader drops to third. Nobody moves except by standing still.

Ranked by weekly installs

1Sonner41.4M
2react-toastify4.0M
3react-hot-toast3.4M
4notistack1.4M
re-sort
by cadence

Ranked by last npm release

1react-toastify85 d ago
2react-hot-toast332 d ago
3Sonner345 d ago
4notistack541 d ago
The trap in the headline number

The install count is not a popularity vote — it is a lagging indicator of one scaffolding decision. shadcn/ui deprecated its own toast and now tells every user to install Sonner instead [29] [30]. That single default produced the 10× gap.

It is still worth something: the install graph is what determines how much Stack Overflow, LLM training data and third-party wrapper code exists for a library. Just don't read it as a health score. The most-installed library has the quietest repo — ~11 months without a release, ~7 without a commit, a single maintainer [6]. The risk with Sonner is bus factor, not bugs. A toast library is a small, finished problem.

03

Spec sheet

✓ full · ~ partial · ✗ absent

All four standalone libraries converge on the same shape — mount one container at the app root, call an imperative toast() from anywhere. No context, no prop drilling, callable from a catch block. Everything below is what separates them after that.

Capability Sonner react-
toastify
react-hot-
toast
notistack Mantine Chakra v3 Base UI MUI
Snackbar
Imperative APIcall from anywhere, no context declarative only
toast.promise()loading → success / error manual update manual update
Arbitrary JSX contentbring your own component ~Styles API
Headless / unstyledyou own every pixel ~~ ~ by design
Visible-count cap / queuelimit, maxSnack, visibleToasts FIFO + priority no queue at all
Stack-and-expand on hoverthe Sonner look overlap
Multiple independent toasterscontainerId routing ~ new in 2.6.0
Zero CSS import neededno forgotten stylesheet auto since v11 styles.css required ~you write it
CSP nonceinjected style tag ~ 11.1.0 ~~
Swipe-to-dismisstouch gesture
Ships its own typesno @types/* needed
supported ~ partial / workaround not supported Sources: [31] [32] [33] [34] [35] [36] [37] [13] [16]

MUI Snackbar is the outlier and the reason notistack exists at all: one snackbar bound to an open prop, no queue. The MUI docs themselves point at notistack for stacking [37]. On MUI you are choosing between hand-rolling a queue, adopting a library that has not published in 18 months, or dropping Sonner in next to MUI — Sonner has no MUI coupling.

04

The bench

Design-system natives — already on your payroll

If the design system is already in the bundle, its toaster costs ~0 marginal bytes and matches your theme for free. That beats every number in the table above.

+5.5 kB
gz on top of @mantine/core · ⭐ 31k

notifications.show() from anywhere, a real FIFO queue with a priority field that bumps ahead of older toasts. No promise() helper — do it with update().

⚠ Only option here that silently misbehaves without an explicit styles.css import [34]
293 kB
gz whole lib, tree-shaken · ⭐ 41k

The most complete built-in of the four: toaster.promise(), max, overlap stacking, pauseOnPageIdle, composable parts, built on Ark UI.

⚠ Sensible only if Chakra is already your system — the design-system tax is real [24]
6.2M
weekly installs · v1.6.0 Jun 2026 · ⭐ 10k

The MUI team's headless successor to Radix, and a genuine competitor now that it's stable. useToastManager(), a global manager for firing outside React, F6 landmark nav, fully unstyled.

→ Pick it when you want to own every pixel [36]
no toast component any more · ⭐ 119k

"The toast component has been deprecated. Use the sonner component instead." There is no in-system alternative. sonner is now a first-class shadcn component with a pre-themed <Toaster />.

→ This single decision produced Sonner's install numbers [30]
05

Pick by constraint

The only sort that matters is yours
Greenfield React app, no strong design system, you want good defaults in ten minutes
SONNER0 deps · 9.2 kB · promise
Bundle budget is the hard constraint — marketing site, embed, widget
REACT-HOT-TOAST4.7 kB · accept a slow repo
You need heavy customisation — custom progress bar, notification centre, CSP nonce, containerId routing — or you want the maintainer who is actually shipping
REACT-TOASTIFY v11v11.1.0 · Apr 2026
You already ship Mantine or Chakra v3
THE BUILT-IN~0 marginal bytes
You already ship MUI — Snackbar has no queue
SONNER ALONGSIDEno MUI coupling
Headless-first codebase, you style everything
BASE UI TOASTunstyled · F6 landmark
Greenfield + notistack
DON'Tno release since Jan 2025
Full time

Take Sonner.
Don't agonise.

Migrating away from a toast library is a mechanical find-and-replace of toast() call sites plus one root component. The switching cost is close to zero — which is exactly why this decision does not deserve the week you were about to spend on it.

Take the table leader. Revisit when a constraint bites: a bundle budget, an a11y audit, or an upstream fix you need landed this quarter. Only the last one puts you on react-toastify — and only because it is the one whose maintainer is currently shipping.

06

Elsewhere in this expedition

↑ back to the expedition
07

The ledger

41 citations · all figures measured 2026-07-13