Hey HN!
After years of wrestling with Lodash's quirks and bundle size issues, I decided to build something better. SuperUtilsPlus is my attempt at creating the utility library I wish existed.
What makes it different?
TypeScript-first approach: Unlike Lodash's retrofitted types, I built this from the ground up with TypeScript. The type inference actually works the way you'd expect it to.
Sensible defaults: Some of Lodash's decisions always bugged me. Like isObject([]) returning true - arrays aren't objects in my mental model. Or isNumber(NaN) being true when NaN literally stands for "Not a Number". I fixed these footguns.
Modern JavaScript: Built for ES2020+ with proper ESM support. No more weird CommonJS/ESM dance. Actually tree-shakable: You can import from specific modules (super-utils/array, super-utils/object) for optimal bundling. Your users will thank you.
The best parts IMO:
compactNil() - removes only null/undefined, leaves falsy values like 0 and false alone
differenceDeep() - array difference with deep equality (surprisingly useful)
Better random utilities with randomUUID() and randomString()
debounce() that actually works how you expect with proper leading/trailing options
Also genuinely curious - what are your biggest pain points with utility libraries? Did I miss any must-have functions?
Comments URL: https://news.ycombinator.com/item?id=44080808
Points: 32
# Comments: 14
Login to add comment
Other posts in this group

Hey HN!
I’m an NHS doctor and the founder of Pia (https://www.piahealth.co) which developed Lungy (
Article URL: https://www.neilchen.co/blog/kasa
Comments URL: https://news.ycombinator

Article URL: https://nautil.us/the-father-of-modern-metal-235939/

Hi HN,
Since 2019, I’ve been working on a writing platform designed for creating complex documents (e.g., theses). I personally use it for everything as it also allows to classify documents in c