An Ember addon for managing complex object state with undo/redo capabilities, supporting Ember Data models and nested relationships.
Ember Time Machine is an Ember.js addon that provides robust object state management for Ember applications. It solves the framework's lack of built-in support for handling complex object state, particularly in forms and data-intensive interfaces, by enabling undo/redo functionality and change tracking.
Ember.js developers building ambitious applications with complex forms, data-intensive interfaces, or relational data models that require state management features like undo/redo.
Developers choose Ember Time Machine for its deep integration with Ember Data models and nested relationships, allowing direct model modification without buffers and intelligent batching of changes for efficient undo/redo operations.
An object state management solution.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Works seamlessly with Ember Data models, plain objects, and arrays, enabling state management across various data types as demonstrated in the usage examples with user models and relationships.
Tracks changes in hasMany and belongsTo relationships out of the box, allowing undo/redo operations on complex relational data without additional configuration, as shown with tasks and settings.
Can revert array manipulations like pushObject alongside property changes, providing comprehensive change tracking for dynamic interfaces, evident in the examples for tasks collection.
Applies changes directly to the actual model without using a buffer, simplifying the architecture and reducing memory overhead, which is highlighted in the README's philosophy.
Exclusively designed for Ember.js, making it unsuitable for projects outside this framework or those considering future migration, limiting its versatility.
Lacks built-in support for server-side state synchronization, conflict resolution, or collaborative editing, which restricts its use in multi-user or real-time applications.
Relies on a separate wiki for documentation, which may be less maintained or harder to navigate compared to integrated docs, increasing the risk of outdated or incomplete information.
Ember.js flavored changesets, inspired by Ecto