# Snapshots

## What are snapshots?

A snapshot captures the current state of an [instance](/features/nuvolos-basic-concepts/organisational-hierarchy.md#instances) — files, database tables, application configurations, and dependencies — in one operation. Every snapshot is:

* **Complete** — everything in the instance is saved as a single unit. There is no risk of partially captured state.
* **Immutable** — the copy is read-only from the moment it is created. No data, code, or setting can be changed after the fact.
* **Persistent** — the snapshot remains available until explicitly deleted by the user.
* **Restorable** — you can return an instance to a previous snapshot at any time, making it safe to experiment without fear of losing work.
* **Shareable** — snapshots can be [distributed](/features/nuvolos-basic-concepts/distribution.md) to other instances, colleagues, or students, carrying the full working environment with them.

Taken together, these properties make snapshots the foundation for reproducibility in Nuvolos: if you can snapshot it, you can version it, restore it, and share it — and anyone who receives it will get exactly what you had.

## Snapshot use cases

### Research reproducibility

A snapshot preserves the exact combination of code, data, and application configuration that produced a result. You can share it with referees or colleagues, and they will be able to reproduce your work without any setup.

### Course setup

Build and test your course material, then snapshot and [distribute](/features/nuvolos-basic-concepts/distribution.md) it to all students. Every student receives the identical environment, ready to use.

### Project onboarding

Distribute a snapshot of the current project state to a new team member. They can start working immediately without setting up infrastructure from scratch.

### Assignment audit trails

Students can snapshot their work before handing in. The time-stamped, immutable record makes it clear what was submitted and when.


---

# Agent Instructions: 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://docs.nuvolos.com/features/nuvolos-basic-concepts/snapshots.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.
