> For the complete documentation index, see [llms.txt](https://docs.aurelia.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.aurelia.io/aurelia-packages/store.md).

# Store

This guide aims to help you become familiar with the Aurelia Store plugin, a means of managing state in your Aurelia applications.

## When should you use state management?

Before we delve too deeply into Aurelia Store and how it can help manage the state in your Aurelia applications, we should discuss when to use state management and when not to.

* When you need to reuse data in other parts of your application — State management shines when it comes to helping keep your data organized for cross-application reuse.
* When dealing with complex data structures — An ephermal state is great for simple use cases. Still, when working with complex data structures (think multi-step forms or deeply structured data), state management can help keep it consistent.
* For apps that require the ability to undo or replay data — Because Javascript passes everything by default, passing objects and modifying them can cause complications, especially if you need to undo changes made to an object or redo them. Aurelia Store can help you implement undo/redo functionality.
* For debugging — State management is exceptionally helpful when you want to see what is happening with your data. Mutating objects directly leaves no trail, so they are fragile and hard to debug. You can see what data is being mutated through your actions in the Redux Inspector extension for your browser.

### Scenario driven guides

Need practical recipes? Check the [state management outcome guide](/aurelia-packages/state/state-outcome-recipes.md) for optimistic updates, persistence, time-travel debugging, and more.

## Aurelia Store guides

Please visit one or more of the following sections to learn about the Aurelia Store plugin:

* [Configuration and setup](/aurelia-packages/store/configuration-and-setup.md) — install the plugin and initialize your root state
* [Middleware](/aurelia-packages/store/middleware.md) — extend the store with logging, persistence, and custom behaviors


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.aurelia.io/aurelia-packages/store.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
