A curated collection of micro-utilities for the web.
Each one solves exactly one frontend problem —
perfectly, with zero dependencies.
No feature creep. No "while we're at it."
Each utility does exactly one thing
and does it better than a 5-minute
StackOverflow copy-paste ever could.
No lodash. No moment. No anything.
You install the package — not the package
plus a hundred transitive dependencies
you didn't ask for.
TypeScript-first. ESM + CJS output.
Every package works in React, Vue,
Svelte, vanilla JS, and anywhere
else you're building.
The latest package in the collection.
Unsaved changes detection — snapshot
form state, expose isDirty + changedFields,
handle beforeunload. In 3 lines.
// 1. Install npm install form-dirty // 2. Import & init import FormDirty from 'form-dirty'; const fd = new FormDirty({ form: '#my-form', beforeUnload: true, }); // 3. Check anytime console.log(fd.isDirty); // true / false console.log(fd.changedFields); // [{ name, original, current }] // After saving, re-baseline ✦ fd.snapshot();