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

# Introduction

`ng-state` is a controlled nested state container designed to help write performant, consistent applications on top of Angular 2. It is powered by `RxJs` and `Immer (or ImmutableJs)` and was inspired by [@ngrx](https://github.com/ngrx/store).

### Version 10.0.0 introduces createEffect function!!! 🔥

[Read more](/ng-state/core-concepts/createeeffct.md)

### Version 9.5.2 introduces WithStore decorator!!! 🔥

[Read more](/ng-state/core-concepts/injectstore-decorator-1.md)

### Version 9.1.0 introduces injectable actions!!! 🔥

[Read more](/ng-state/core-concepts/actions/injectable-actions.md)

Core tenets:

* State is a single immutable data structure
* Each component gets its own peace of nested state
* State accessed with `actions` variable under component or the `Store`, an observable of state and an observer of global state

These core principles enable building components that can use the `OnPush` change detection strategy giving you [intelligent, performant change detection](http://blog.thoughtram.io/angular/2016/02/22/angular-2-change-detection-explained.html#smarter-change-detection) throughout your application.

`ng-state` share same core as [`react-state-rxjs`](https://github.com/react-state/store) so it is very beneficial for those who are not bind to one technology.&#x20;

How it is different from others please read on [Main differences](/ng-state/main-differences.md) page.


---

# 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:

```
GET https://vytautas.gitbook.io/ng-state/master.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
