

Snapshoto is a small snapshot utility built around a simple approach to file versioning: keep the working file canonical and move version history somewhere else.
In many file-based workflows, successive versions are represented directly in the working directory through filenames such as project_001, project_002, and project_003. This preserves history, but it also means that the identity and path of the current file continually change. That can become inconvenient when files are referenced by other assets, accessed programmatically, used by automated processes, or simply expected to occupy a stable location.
My preferred workflow reverses this relationship. The active file or directory retains a canonical name and path while previous states are preserved as timestamped archives in a separate snapshot repository. The working environment therefore describes the current state of the project, while its history accumulates independently.
Snapshoto is the general-purpose implementation of this workflow. Developed in Rust, it can create a snapshot of any file or directory and is integrated into the Windows context menu for direct access from the filesystem. A snapshot is compressed as a timestamped .7z archive and written to a user-defined central archive directory, preserving the source name so snapshots from many locations can be collected within the same system.
The result is intentionally simple: work normally on canonical files and directories, and create immutable snapshots whenever a state is worth preserving. Snapshoto does not attempt to manage retention or decide which historical versions remain important. Pruning and long-term storage policy are left to the user, allowing the snapshot archive to participate in whatever broader backup or archival strategy is appropriate.
Snapshoto for Blender and Snapshoto for Maya extend the same workflow into their respective applications, providing application-specific ways to snapshot active project files without leaving the working environment.

