WindowsmacOS

Where Does the Canva Desktop App Store Its Data?

The Canva desktop app caches session data in Roaming Canva on Windows and Application Support on Mac. Designs themselves live in the cloud.

Last updated

The Canva desktop app is a cloud shell with a local cache. Designs never touch your disk as project files. What sits locally is session state: app-state.json, Preferences, cache trees, IndexedDB for the web app, and a main.log for diagnostics.

That split decides your maintenance. Clearing the local folder fixes launch faults and costs nothing, since login restores it all. Migrating machines needs no file copy at all. Install Canva, sign in, and the same cloud library appears.

Where Canva stores this, by platform

Windows
%APPDATA%\Canva

Session cache with app-state.json, Preferences, Cache trees, IndexedDB for canva.com and logs/main.log. No designs live here. Deleting the folder with the app quit forces a clean rebuild on next launch.

macOS
~/Library/Application Support/Canva

Same Electron cache layout as Windows. Reach it with Finder Go to Folder since Library is hidden. Reset here mirrors the Windows flow: quit, remove the folder, relaunch and sign back in.

Frequently asked questions

Canva desktop will not launch. How do I reset it?

Delete %APPDATA%\Canva on Windows or ~/Library/Application Support/Canva on Mac with the app quit, then launch again. It rebuilds the folder from scratch. Your designs are cloud-side and return on login, so this only clears local session bulk.

How do I move Canva projects to a new computer?

You cannot, because there is nothing local to move. The desktop folder holds cache, GPUCache, IndexedDB and logs such as main.log, not project files. Share or export from inside Canva instead. Copying the local folder to a new PC carries login bulk rather than designs.

Where does the Canva updater stage downloads?

Open %LOCALAPPDATA%\canva-updater and check pending plus update-info.json. Stuck updates usually sit there as a half-downloaded setup file. Clearing a stale pending build and relaunching lets the updater fetch cleanly.

Notice an outdated path? Let us know.