Docs Menu
Docs/Migration/Migrating from React-Toastify to toastory
Updated October 2026

Migrating from React-Toastify to toastory

Transition from React-Toastify to toastory for 5x lighter bundles, zero dependencies, and modern frosted glass design.

React-Toastify is widely used, but its bundle size exceeds 30 KB, it injects heavy inline CSS, and it provides no dialog or bottom sheet primitives.

Upgrading to toastory reduces bundle overhead to under 6 KB for core notifications while introducing Apple frosted glass styling and touch gestures.

---

Component & Method Mapping

React-Toastifytoastory EquivalentNotes
Import from toastory/react.
toast(msg)toast(msg)Default message toast.
toast.success(msg)toast.success(msg)Identical call syntax.
toast.error(msg)toast.error(msg)Identical call syntax.
toast.warn(msg)toast.warning(msg)Renamed to standard warning.
toast.info(msg)toast.info(msg)Identical call syntax.
autoClose: 3000duration: 3000Standard milliseconds duration.
hideProgressBarprogress: falseBuilt-in progress indicator control.
pauseOnHoverpauseOn: ['hover']Granular pause reasons supported.
closeOnClickcloseOnClickIdentical boolean flag.
draggableswipe4-direction velocity gesture dismissal.

---

Side-by-Side Code Comparison

tsx
// Before (React-Toastify)
import { ToastContainer, toast } from 'react-toastify';

function App() { const notify = () => toast.success('Profile updated!', { autoClose: 3000 }); return ( <> ); } `

tsx
// After (toastory)
import { Toaster, toast } from 'toastory/react';

function App() { const notify = () => toast.success('Profile updated!', { duration: 3000 }); return ( <> ); } `

Want to test these options live?

Launch the interactive playground to experiment with themes, positions, and live generators.

Open in Playground →