Pteropixel
Saving and versions
Your work is kept in two places: a draft in your browser, and the workspace's own copy. That copy is in a folder on your computer, in Pteropixel's cloud storage, or, for accounts that connected one before 15 October 2026, in a GitHub repository. Such an account can keep cloud storage on beside it; Settings, under Workspace, turns each one on or off.
Drafts
Every change is written to a draft in the browser a couple of seconds after you make it. If you close the tab, or the browser quits, the draft is there when you open the document again. A draft belongs to that browser and that workspace only.
On the lists of artworks, fonts and compositions, a document whose draft here holds changes you haven't saved says Unsaved changes, and one that exists only in this browser says Not synced. In Recents, right-click a Not synced document and choose Save, or one with Unsaved changes and choose Save changes, to save it without opening it. If the saved copy changed since, nothing is overwritten: open the document to review the two.
On the Artworks, Fonts and Music pages, Manage selects several documents at once (shift-click selects a run) to save, duplicate or delete together. Right-click a document and choose Pin to top to keep it first on that page or tab whatever the order; drag pinned documents to reorder them. Pins are kept in this browser. Right-click an empty part of Recents to start a new document.
Saving
⌘S, or the Save button, saves the document. The button's menu shows when you last saved.
In a folder, or with cloud storage on, every change also reaches the folder or the cloud a few seconds after you make it, and Save marks the version to come back to: Reset edits since last save, in the menu, drops the changes since. In a folder, Save keeps that version's files in a saved folder inside the document's own.
With work kept in GitHub alone, nothing reaches GitHub until you save, and the menu offers Discard changes, or Reload from server when there's nothing to discard. A document that has never been saved has no copy there: an imported artwork's Discard returns it to the file as imported, and anything else has nothing to go back to, so the menu doesn't offer it.
Reset edits in this session returns the document to how it was when you opened it, whatever was saved since. A reset is one step you can undo with ⌘Z.
With both cloud storage and GitHub on, Save also syncs the open document to GitHub, and no other. To sync every document at once, use Sync everything to GitHub... in Settings, under Workspace: it lists what will go to GitHub and what will come in before anything moves.
Local version history
While you work, the app takes a snapshot of the document every few minutes and keeps it in the browser. Open Local version history from the third button beside undo and redo in Edit history, or from the Save button's menu. You can restore a snapshot, name it, download it as JSON, or take one any time with ⇧S.
In Paint, a snapshot can be kept with the artwork, which saves it in the artwork so it's never cleared out. Paint's Timelapse panel plays the snapshots back, and exports them as a video.
Sharing
With cloud storage on, or in a folder linked to the cloud for a document the link keeps there, an artwork or a composition can be shared by a link: in Settings, open Access and choose Create link. Anyone with the link can open the version you last saved, without an account, read-only: they can try things in it, but nothing they do is kept. Edits you save later reach the link too. Stop sharing turns the link off at once.
A document in a folder is shared from your cloud workspace, once the folder syncs it there (below).
Downloading your work
With cloud storage on, Download everything... in Settings, under Workspace, downloads every document as it is now, without older versions: one zip per app, and a large app in several numbered zips. Your browser may ask whether to allow several downloads. Unzip them all into one folder to have every document's files together.
Set up a local folder..., in the Folder pane beside it, writes the same files straight into an empty folder on this computer. The folder becomes the same workspace kept on this computer: it keeps its name, icon and unsaved changes, and it's kept in step with the cloud. The workspace menu lists it once. In its Settings, under Workspace, Work from the cloud only goes back to the cloud copy, and in the cloud's Settings Open its folder on this computer, in the Folder pane, returns. Disconnect in the folder's settings makes it a workspace of its own. The folder remembers which account it belongs to, so opened while signed out (on another computer, say) it asks you to sign in first, or to make it a workspace of its own, which then goes its own way and won't be synced back. A copy that stops part way carries on when you choose the same folder again. With GitHub on, you can also choose your local clone of the repository (pull it first). Pteropixel then stops syncing with GitHub, without a last sync, and GitHub can't be turned back on. The clone is then brought up to date with the cloud, files the cloud no longer has are removed, and git shows what changed.
Workspaces
Each folder you open, and each cloud workspace, is a workspace of its own. Folders need Chrome, Edge or another Chromium browser. With cloud storage on, New cloud workspace makes another, empty, with its own documents; your storage allowance covers all of them together. With one workspace, New cloud workspace and Open a folder... are in the account menu, and in Settings, under Workspace, at any time. Once there is more than one, a menu beside the home button switches between them and sets the workspace's icon. Switching always opens Recents. A GitHub repository connected before 15 October 2026 belongs to your first cloud workspace.
To forget a folder, use Forget this folder in its Settings, under Workspace. This browser stops using it; the folder and its files stay on your computer.
A cloud workspace other than your first is deleted from its Settings, under Workspace, with Delete this workspace...: its documents, their history and its share links go for good, and a folder kept in step with it on any computer stays as it is. Your first workspace goes only with your account. Before either, the dialog says whether a folder on a computer keeps a copy, and if none does, offers a full download first.
A folder and the cloud
Signed in with cloud storage on, a folder can keep its documents in the cloud too, so they also open in your cloud workspace on another computer, and can be shared from there. In the folder's Settings, under Workspace, choose Keep everything in the cloud too. It syncs when the folder opens, every few minutes while the page is open, straight after you save with ⌘S, and on Sync now. Saving with ⌘S sends the document as you see it, in place of the cloud's copy. Otherwise, an artwork, a composition or a font changed in both places is put together from both: each layer, note, part, character, setting and swatch list keeps whichever side changed it last, and if it's open, your unsaved changes stay. A document whose copies don't both record when their parts changed (one not edited since this arrived) keeps this folder's version, and the cloud's stays in its history. Saved copies, previews and cached renders stay in the folder. In a folder that's a git repository, its previews, cached renders and saved copies are left out of git (in its .gitignore): your commits are its save points, and a clone keeps its own saved copies from its first Save. The exception is the cached renders of an artwork with Keep cached renders on, which its clones need to look the same. Before a folder links, the app measures what it would send, and if that's more than your cloud storage has room for, it says so and links nothing until you make room. A folder in Dropbox, iCloud Drive or OneDrive works best set to keep its files downloaded. When a document's file isn't on this computer (online-only, while you're offline), or is still arriving from the sync service, the sync waits for it rather than taking it as deleted, and Settings lists it under Not downloaded yet. If the sync service makes a copy of the document you have open, because it changed somewhere else too, a notice says so straight away, with Settle conflict. Disconnect syncs once more, then stops syncing and leaves both copies as they are.
A document edited or deleted in the folder by another program (Finder, git, a sync service) waits before it syncs: the folder's Settings list it, with Keep or Undo for an edit and Restore or Delete in the cloud too for a deletion. A document added to the folder from outside syncs like an import once it passes the same checks; one that doesn't is listed with the reason.
Not supported yet: more than one folder linked to the same account's cloud (disconnect one before linking another), and a single file larger than your cloud storage takes (25 MB unless your account says otherwise), which stays in the folder only and is listed after the sync. When more than a few documents are deleted from the cloud at once, the folder keeps them until you choose, in Settings, under Workspace, to delete them here too or restore them in the cloud.
When Pteropixel can't be reached
If the network has gone, Pteropixel's servers or GitHub are down, the app has used up its GitHub requests for the hour, or Pteropixel itself is paused for a while, a small notice appears in the window's lower left corner, or in the bar along the top: Offline: working from this device, Pteropixel is temporarily unavailable, or the time the requests reset. In an editor, Save turns into a crossed-out cloud in the warning colour for as long as saves have to wait. You can keep editing: drafts, autosave and version history all stay in the browser and need nothing from the server. Press the notice to see the documents waiting to sync, each a link back to it, and Check again to ask again now. Waiting documents are sent on their own once the server answers again; Sync all sends them now. Meanwhile the lists show what this browser last loaded, with its drafts added.
Saving while the server can't be reached doesn't fail. The Save button reads Waiting to sync, and the document keeps its unsaved changes. When the server answers again it's sent by itself, open or closed, including after you reload. If the sync finds a document was saved from somewhere else in the meantime, it leaves it alone until you open it, and the two are put together then.
When two copies disagree
When a document was saved from somewhere else since you opened it, or your unsaved changes here meet a newer saved copy as you open it, the two are put together: each layer, note, part, character, setting and swatch list keeps whichever side changed it last, and nothing is asked.
Only two copies both last saved before October 2026, before the app recorded when each part changed, make you choose one. In Paint and the Music Composer the two are then compared line by line underneath, and the one you don't keep can go into version history.