Skip to main content

โœจ 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:

  1. ๐Ÿ” Simplicity Matters: State management shouldn't require complex mental models
  2. ๐Ÿ–‹๏ธ Direct Manipulation: Mutating state directly is intuitive and straightforward
  3. ๐ŸŒ Framework Agnostic: Core reactivity should work without framework dependencies
  4. ๐Ÿงฉ Composition Over Configuration: Combine small, focused pieces instead of monolithic patterns
  5. โ˜๏ธ 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 more
  • onUpdate() - Subscribes to changes, nothing more
  • computed() - Derives values reactively, nothing more
  • json() - Serializes a snapshot, nothing more
  • diff() - 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.