Skip to content

Design guides for brands, campaigns, and vectors.GuidesWhere your browser work lives

Where your browser work lives

You have four days of work sitting in a browser tab and no clear idea where it physically is. That's a fair thing to be uneasy about. Browser storage is real storage, but it is still controlled by your browser. Learn how to read its state and keep an explicit recovery copy.

Read the indicator, not your instincts

The save readout sits in the editor chrome and updates on its own. It never says a bare "Saved", because the question that actually helps you is when the last write landed, not whether a write ever happened.

Gesso builds that readout from storage facts alone. Being signed in doesn't feed into it. Neither does having a good connection. Neither of those tells you whether your last edit reached disk.

What you seeWhat it means
OpeningThe store hasn't answered yet. No verdict either way.
Saving / Saving…A write is in flight, or an edit is queued behind one.
Saved nowThe last write landed within the past minute.
Saved 3:42 PMThe last write landed at that time.
Not saved yetDurable storage is available, and this document hasn't been written to it.
Unsaved work from the last session was recoveredThe copy you're looking at came from a draft, not from the saved file.
Storage is full. Free space and save again.The browser refused the write for space.
The document could not be saved.The write failed for some other reason.
Session only — this browser cannot keep documents after it closesNothing is being written to disk at all.
Read-only recovery — export documents, saving is offThe recorded store isn't reachable, so saving is disabled on purpose.

The last four are worth stopping your work for, and the editor styles them differently so they catch your eye. Everything above them is ordinary traffic.

If this is your first document, start with how to create a Gesso project, then come back here before you close the browser.

Find which browser store holds your documents

Gesso picks one place inside your browser to keep documents, then remembers the choice. There are three possibilities, in order of preference.

  1. Origin Private File System first, when the browser offers it. Each document is a file in a directory, which is the closest a browser gets to how a document behaves everywhere else. Writes go to a temporary sibling file and only replace the real one once all the bytes have arrived, so a tab you close mid-save leaves the previous good copy untouched.
  2. IndexedDB second, when OPFS isn't available. An older mechanism, chosen automatically, with the same document format inside. You don't have to do anything differently.
  3. Memory, which isn't durable at all and is what "Session only" is reporting.

Whichever wins gets written into a storage profile under a gesso.storage.profile.* key, and that profile owns your library from then on. If Gesso reopens and the recorded store isn't there or won't accept a test write, it opens the library read-only for recovery rather than quietly starting a second copy somewhere else. Two live copies of one library is a much worse day than one afternoon of read-only.

When Gesso opens a durable store, it also asks the browser to mark that storage persistent. If the browser agrees, it has promised not to throw your data out when space gets tight. If it refuses, or won't answer, eviction stays possible. You don't get a vote on that answer, which is the entire argument for the next section.

Download a manual recovery copy

Browser-local saving is useful, but it is not a replacement for a recovery plan. For work you would be upset to lose, use Export to download a portable .ges copy yourself.

  1. Wait for the save indicator to show that your current edit has landed.
  2. Open Export and choose the Gesso document (.ges) option.
  3. Confirm the browser download and put the file somewhere you can find again.
  4. Keep that download with your normal backup or project records.
  5. Make another manual copy after a meaningful round of work.

The download is explicit: Gesso does not create automatic disk copies or sync your browser library to a location outside browser storage. A .ges file is the editable source document, so it is the right recovery copy before clearing site data, changing browser profiles, or replacing a device.

Use a short browser-storage checklist

  • I know which browser profile, on which device, holds this project
  • The save indicator says the work is saved, not session-only and not read-only recovery
  • Important work has a manual .ges download outside browser storage
  • That download is included in the backup practice I already use
  • Anything I'd be upset to lose has been exported, not just saved

That last line carries the most weight. A .ges download protects the editable source. An exported PNG, JPG, SVG, or packaged ZIP is the copy that doesn't depend on Gesso, on a browser, or on a permission grant surviving the weekend.

Recover when storage has already failed

If the indicator reads read-only recovery, don't fight it and try to force a save. Export every document you need first, out of the read-only session you have in front of you. The store may come back when you reopen in the browser profile that originally owned the library. A different profile, a different browser, or a cleared origin will not find it.

If it reads storage is full, free some space and edit again. The next edit reopens the write path and retries, so a failed save stays in front of you instead of spinning quietly.

If it reads session only, treat that tab as scratch paper. Export before you close it.

Once the editable source is safe, use the export workflow for files that can be opened without Gesso. For a client or collaborator, the handoff guide explains what to include.

Common questions

Not on its own. Documents written by the browser editor go to that browser's own storage on that device. Anything that leaves is something you started: an export, a download, or a hosted workflow you turned on.