Nodes keeps its own recovery points. Once a day, while the app is open, it takes a snapshot of your whole library - every note, PDF, and image, plus the database that holds your tags, links, and descriptions - and keeps it on this Mac. If something goes wrong, you can put the library back the way it was on a given day.
It's on by default, and it lives in Settings ▸ General ▸ Library Backup.
When a snapshot is taken
- Once a day, while Nodes is open. If nothing has changed since the last one, it's skipped - nothing is captured twice.
- Before a replacing import. Bringing in a
.nodesarchive with Replace overwrites notes you already have, so Nodes takes a snapshot first. Same for a database update after an app upgrade. - Whenever you ask. The snapshot now verb on the Library Backup row takes one on the spot. If nothing has changed since the last one, it tells you so instead of making a duplicate.
Safety snapshots taken before an import or an update are kept for 60 days, whatever else happens to the rest.
What's kept, and for how long
Snapshots thin out on a calendar, so the far past stays reachable without keeping everything:
| Kept | Covering |
|---|---|
| The last three | the last three days |
| One | the most recent week not already covered |
| One | the most recent month not already covered |
| One | every calendar year your library goes back |
Each rung is added on top of the ones above it, so a busy week can never shorten how far back you can reach.
Restoring
Click snapshots on the Library Backup row and the list opens: each row is a date, what prompted it, and what it holds - so many notes, tags, stickers, and tag connections. restore asks you to confirm, then Nodes quits.
The restore itself happens at the next launch, before the database is opened. That's deliberate: it's what lets a restore work even when the library is too damaged for Nodes to read in the first place. Reopen the app and it's done.
Every restore is undoable
Restoring doesn't delete anything. Your current library is set aside first, and it appears in the same list under Set-aside libraries - so if you restore the wrong day, or don't like what you find, you restore the set-aside copy and you're back where you started. Deleting a set-aside library is the only way to lose that undo point, and it asks first.
If the library is damaged
Should the database ever fail to open, Nodes doesn't refuse to start. It moves the damaged one aside - never deletes it - and opens on a fresh library, so the snapshot list stays reachable exactly when you need it. Restore any snapshot and your writing comes back.
What a snapshot actually is
A timestamped folder of your own files sitting beside a standard database file. Nothing is packed, encrypted, or written in a format only Nodes can read - if the app vanished tomorrow, your markdown, PDFs, and images would still be sitting there, openable by anything.
They live inside the app's storage:
~/Library/Containers/com.nvm.nodes/Data/Library/Application Support/Nodes/Backups/
Content is stored as copy-on-write clones, so a snapshot of unchanged notes costs essentially no disk space - only what actually changed is written again. The Backups folder is excluded from Time Machine, which already versions the live library and shouldn't be asked to version the copies too.
Turning it off
The switch on the Library Backup row turns automatic snapshots off. It's destructive on purpose: turning it off deletes every snapshot and every set-aside library, after a confirmation that names exactly what's about to go. With it off, no recovery points are kept.
Snapshots aren't a backup of your Mac
A snapshot lives on the same disk as the library it protects. It's the right tool for a bad import, a change of heart, or a damaged database - not for a drive that dies or a Mac that's lost. For that, save a .nodes archive and keep it somewhere else: an external drive, a cloud folder, another machine. See import and export.
The two work together. The archive is the copy you carry; snapshots are the ones you never have to remember to make.