> For the complete documentation index, see [llms.txt](https://standard-resource.js.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://standard-resource.js.org/introduction/core-concepts.md).

# Core Concepts

Standard Resource has two core concepts: **resources** and **groups**.

## Resources

A resource is an atomic unit of data. For instance, if you have an object that represents a particular book, then that is a resource.

Typically, resources are stored in a remote database, and are sent to your application through a network request of some kind, such as a RESTful endpoint or as a response to a GraphQL query.

Resources can have attributes associated with them. In the case of a book, it might have a name and a publish year.

In Standard Resource, all of your resources are stored in a single state tree, and the library provides a succinct, but powerful API for retrieving and updating data in the tree.

## Groups

A group is a collection of resources. Groups can be ordered, or they can be unordered.

Groups are designed for the common use case applications have of needing to organize resources together. Your application may need an ordered group of resources, such as when a user arranges some resources within a list in the UI. Or, it may might need an unordered group, like when a user selects some resources by checking checkboxes in the app.

Anytime that you need to organize resources together for any use case, you can use groups.

Groups are stored in the state tree alongside your resources.


---

# 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://standard-resource.js.org/introduction/core-concepts.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.
