โจ About jods
jods (JavaScript Object Dynamics System) is a fun, intuitive reactive state library that makes JavaScript objects come alive. It emphasizes simplicity and composability while providing powerful state management capabilities.
๐ค What is a Dynamics System?
๐งญ Core Philosophyโ
jods was built around a few fundamental beliefs:
- ๐ Simplicity Matters: State management shouldn't require complex mental models
- ๐๏ธ Direct Manipulation: Mutating state directly is intuitive and straightforward
- ๐ Framework Agnostic: Core reactivity should work without framework dependencies
- ๐งฉ Composition Over Configuration: Combine small, focused pieces instead of monolithic patterns
- โ๏ธ Zero Dependencies: Keep the library small and focused
๐ง Unix Philosophyโ
jods draws inspiration from the classic Unix philosophy of "do one thing and do it well." Each function in the library has a single, well-defined purpose:
store()
- Creates a reactive store, nothing moreonUpdate()
- Subscribes to changes, nothing morecomputed()
- Derives values reactively, nothing morejson()
- Serializes a snapshot, nothing morediff()
- Compares two states, nothing more
Like Unix commands that can be piped together to build powerful workflows, jods' minimal functions compose elegantly to create sophisticated state management solutions without unnecessary abstractions.
This approach makes jods both lightweight and powerful - users can build exactly what they need without carrying the weight of features they don't want. It also makes the learning curve much gentler since each function is simple to understand on its own.
This is also what makes all of our framework integrations so powerful. Each integration (React, Preact, Remix) uses just what it needs from the core library and nothing more, allowing for lightweight, focused implementations that match each framework's unique patterns and paradigms.
๐ Historyโ
jods was created by clamstew in early 2025. What began as a name registration on npm (๐ ) quickly evolved into a full-featured reactive state library incorporating ideas from various state management approaches (๐คฏ):
- ๐ The proxy-based reactivity from Vue
- ๐ง The simplicity of Zustand's API
- โก The fine-grained updates of Signal-based systems
- ๐ The server integration capabilities of Remix
The project went from concept to implementation in under two weeks, with the addition of React, Preact, and Remix integrations showing the versatility of the core reactive system. The development process was accelerated through the thoughtful application of AI tools like LLMs and Cursor, while maintaining high code quality and developer experience standards.
๐ค Why Another State Library?โ
With so many state management options available, you might wonder why jods needed to exist. The answer lies in its unique combination of features:
- ๐ท JSON Snapshots: First-class support for getting serializable snapshots
- ๐งฎ Computed Values: Built-in support for reactive computed properties
- โ๏ธ Direct Mutations: No actions, reducers, or immutable patterns required
- ๐ Framework Integration: Deep integrations with React, Preact, and Remix
- โก Fine-Grained Reactivity: Signal-based tracking for optimal performance
- ๐ Server + Client: Bridges the gap between server and client state
For Remix users in particular, jods provides a model-oriented approach that combines schema validation, server-side data loading, form handling, and client-side reactivity in a cohesive package.
See how jods compares to other state management libraries โ
๐ค Contributingโ
jods is open to contributions! Check out our contribution guidelines to get started.
๐จโ๐ป Creatorโ
clamstew is a software developer with a passion for creating intuitive developer experiences.