Why I wrote Just.

The Zen of Dependency-Free Modules.

See also: Just vs Lodash Tradeoffs

Just is a library of zero dependency npm modules that do just one thing.


What’s so special about zero dependencies? Well, package size for one thing of course. A tiny library footprint is essential when developing mobile web apps for poor network conditions, and the big name, dependent-rich utility libraries will all-too-quickly bloat your client.

But there’s something else perhaps more important: simplicity.

I love npm and I love dependencies, but the point of dependencies is to delegate complexity. The logic of every utility offered by Just is already simple enough to be expressed by a handful of JavaScript statements. They don’t need dependencies because there’s no complexity to delegate.

Dispersing simple logic makes it harder to follow. As a developer I want to be able to reason about the modules I’m using; follow their logic, understand why they fail. As a developer I want to minimize the depth of my dependency stack, knowing that each additional layer represents a potential point of failure––one more opportunity for a faulty patch, an ambiguously documented API, or a costly semver transgression.

Just is designed for those who value easy to follow, debuggable utilities over version lotto and yak-shaving down the module tree. There’s nothing fancy or particularly clever here. You won’t find elaborate routines that optimize for trillion element arrays; just short, cohesive, readable code––the sort of helper functions we all inline in our projects every day because edge case optimizations that we’ll never need aren’t worth the overhead and the uncertainty of a sprawling dependency chain.

Try it and let me know what you think. And please feel free to add more utilities––this project is far from complete and I welcome pull requests.