Skip to main content

signalstory | Empower Your Angular State Management

Unlock the Power of Signals with a simple solution to a hard problem

Signal-Based State Management

Signal-Based State Management

Utilizes a signal-based approach to state management. This eliminates the need for asynchronous observables in components and templates for the most part.

Event Driven

Event Driven

Supports event handling, enabling decoupled communication and interaction between different stores as well as providing the possibility to react synchronously to events.

Open Architecture

Open Architecture

Offers an open architecture: You can stay completely imperative or make use of declerative decoupling features; you can use plain repository-based stores or mimicking Redux-like behavior depending on your needs and preferences.

Flexible Side Effect Execution

Flexible Side Effect Execution

Apart from embedded store methods and companion services, side effects can be managed using encapsulated effect objects, ensuring modular, cleaner and more testable code.

Automatic Persistence

Automatic Persistence

Provides automatic persistence of store state to local storage. Any changes made to the store are automatically synchronized with local storage, ensuring that the state is preserved across page reloads.

State History

State History

You can activate store history to trace state changes over time and execute undo and redo operations. Keep your backend informed about the sequence of events in the case of an error.

Support for Redux devtools

Support for Redux devtools

Dive deep into the history of state changes, visualize the flow of actions, and effortlessly debug your application using the Redux Devtools

Immutability

Immutability

In contrast to native signals, immutability becomes a choice, safeguarding your state against accidental mutations and offering more predictability and simplified debugging.

Tree shakeable

Tree shakeable

Leveraging a plugin architecture, optional features are only then part of your bundle if you choose to use them. Custom plugins are a few lines of code away.