Taking Excalidraw out of the browser: printing and exporting without surprises

Looking for an Excalidraw desktop app leads to an unusual situation. There was an official one, built with Electron, and the team retired it on purpose. What replaced it is the website, and the website is capable enough that the decision made sense. What the website does not do by itself is behave like an application on a Mac, and it stores work in a place that surprises people at the worst possible moment. Both of those are fixable, and neither is fixed by downloading something unofficial.

The official position, and when it was set

Excalidraw published a post titled Deprecating Excalidraw Electron in favor of the Web version in December 2020. It is worth reading because it explains the reasoning rather than just announcing a decision.

The desktop build had been the web app bundled into an Electron shell with an About window added. On macOS it gained a system level menu bar, but almost none of the menu actions did anything, and file type association for .excalidraw files did not behave reliably across installation types. Packaging, code signing, and update hosting were real work for very little gain.

Against that, the team listed what the browser already provided. Excalidraw is an installable progressive web app with a service worker and a web app manifest, caching its resources so it runs without a network connection. It is configured to run standalone, so installing it produces a window of its own with an icon in the Dock. It uses a file system access library for a true open, edit, and save workflow, including save as. It supports drag and drop of files onto the canvas, copies drawings to the clipboard as PNG and SVG, and registers as a handler for .excalidraw files.

That list is the reason the retirement was not a loss. It is also the reason a wrapper window is a reasonable thing to build today: the capabilities are in the engine, so putting the site in its own window is closer to restoring the desktop app than it sounds.

Where the drawings actually live

Open the menu on excalidraw.com and the first thing it says is a warning, not a feature: drawings are saved in the browser's storage, that storage can be cleared unexpectedly, and work should be saved to a file regularly.

This is the single most important sentence for anyone thinking about a new window, because browser storage belongs to a browser profile. A drawing made in a Chrome tab is not in a new app built with its own profile, and vice versa. The canvas opens empty and looks like data loss when it is actually a different room.

The migration is simple as long as it happens before anything important is drawn in the wrong place:

  1. In the original browser, open the menu and choose Save to, which writes a .excalidraw file to disk.
  2. Launch the new window and use Open, or Cmd+O, to load that file.
  3. Keep the file. It is the copy that survives a cleared cache, a deleted profile, and a new machine.

The paid tier exists precisely to remove this problem. The Excalidraw pricing page lists the free tier as one infinite scene with unlimited collaborators, export to PNG, SVG, or a saved file, libraries, and end to end encryption held locally in the browser, while the Plus tier at six dollars a month per user adds unlimited scenes and folders stored on their servers, access management, comments, and presentations, with a fourteen day trial. Anyone who keeps more than a handful of drawings is choosing between a paid account and a disciplined habit of saving files, and a new window does not change that choice.

The upside of an isolated profile

The isolation cuts both ways, and the good side is worth stating. An app with its own storage area is not affected when someone clears cookies and site data in their everyday browser, which is exactly the accident the warning is about. Work stops being one privacy sweep away from disappearing.

The bad side is symmetrical. Deleting the app deletes the profile behind it, so the same export habit applies. Treat the window as a workspace, not as an archive.

What the export dialog actually offers

Export image, reached from the menu or with Cmd+Shift+E, presents a small and fixed set of choices: a background toggle, a dark mode toggle, an embed scene toggle, a scale of one, two, or three times, and three actions, PNG, SVG, and copy to clipboard.

There is no PDF button, and there is no print command anywhere in the menu. That is the surprise most people hit the first time a drawing has to go into a printed document, and knowing it in advance changes how the export is done.

Option What it does When it matters
Background Includes the canvas colour instead of transparency Printing, and slides with a coloured background
Dark mode Exports the dark theme rendering Rarely wanted on paper
Embed scene Stores the editable scene inside the exported file Handing a drawing to someone who will edit it
Scale Renders at one, two, or three times Anything destined for print

Copy to clipboard is the fastest path into a document or a chat message, and it is the feature the deprecation post specifically called out as working in both PNG and SVG form.

Printing without surprises

Since there is no print command, printing means exporting first and printing the exported file from Preview or any other application that handles images. Three settings decide whether the result looks deliberate.

Turn the background on. A transparent PNG dropped into a document takes on whatever is behind it, which on paper means the drawing looks washed out or gains a grey block depending on the destination.

Turn dark mode off. A dark themed export prints as a large dark rectangle, which wastes toner and makes the hand drawn strokes harder to read.

Choose a scale of two or three for anything that goes on paper. A one times PNG is sized for a screen, and screen resolution is well below print resolution, so a diagram that looks crisp in a browser looks soft when printed. SVG avoids the question entirely because it is vector, and it is the better choice whenever the destination application accepts it.

For a drawing that someone else will need to modify later, switch embed scene on. The exported file then carries the editable scene inside it, and dragging that file back onto a canvas restores the drawing rather than a flat picture.

Choosing how to build the window

Route Storage Engine Extensions Cost
Safari, Add to Dock Shared with Safari WebKit Per web app only Free with macOS
Chromium, Install page as app Shared with the profile That browser From the profile Free with the browser
A site to app tool Isolated per app Chosen per app Per app Free tier, paid above it

Apple documents Add to Dock as turning a website into an app, adding an icon to the Dock and Spotlight and giving the window a simplified toolbar. Google documents the Chromium equivalent in its web apps help, through Install page as app, and notes that installed web apps can gain offline storage and file system access, which are precisely the two capabilities Excalidraw leans on.

The engine choice deserves one thought. The open, edit, and save workflow described in the deprecation post depends on file system access support in the engine, with a fallback to ordinary downloads where it is missing. A window built on a Chromium engine gets the full behaviour. That argues for picking the engine deliberately rather than inheriting whatever the default browser happens to be, and tools that build each app separately expose that as a setting, alongside the icon and the starting URL. The supported services list shows the sites already configured this way.

Live collaboration and the link problem

Live collaboration is in the same menu, and the free tier places no limit on the number of collaborators. A session works by sharing a link, which is where a standalone window meets an operating system rule that catches everyone out eventually.

A link clicked in a chat message, a calendar invite, or an email opens in the default browser, not in the app built from the same site. macOS routes URLs by default handler, and a generated app is not that handler unless something is configured to make it one. So a colleague pasting a room link into a team channel sends everybody to a browser tab, including the person who carefully built a window for exactly this.

Two habits make that harmless. Keep the everyday browser signed in and available for joining other people's sessions, and treat the app as the place where work that belongs to one person lives. Or start the session from inside the app and share the link outward, which puts the host in the right window from the beginning.

The second window question follows from this. A whiteboard used for a recurring meeting and a whiteboard used for personal thinking are different objects with different contents, and because storage is per profile, two apps keep two canvases that never overwrite each other. That is harder to arrange inside one browser than it sounds, since a single profile has one Excalidraw storage area regardless of how many tabs point at it.

Shortcuts worth knowing before building

The menu exposes a small set: Cmd+O to open a file, Cmd+Shift+E for the export dialog, Cmd+/ for the command palette, and Cmd+F to find on the canvas. The last one is the interesting case, because a browser has its own idea about that combination. In a window with no browser interface to speak of, the page is the only thing asking for it.

The native clients, and what they are

Searching the Mac App Store for Excalidraw returns native clients, the best known being ExcalidrawZ, published by Chocoford Tech. It is a genuine native application that wraps the Excalidraw canvas and adds file management, iCloud sync, history, and additional export options including PDF.

It is not published by the Excalidraw team, which is a statement of fact rather than a criticism. The practical distinction is where the work lives and who ships fixes: a native client manages files on disk and follows its own release schedule, while a window built on excalidraw.com always runs the current version of the site. Anyone whose main complaint is PDF export and file organisation should look at a native client. Anyone whose main complaint is that a whiteboard is buried in a browser tab wants a window.

What to change first

Save the current canvas to a file before anything else, because that file is the only copy that outlives a browser profile. Then build one window on excalidraw.com, open the file inside it, and make the first export a two times PNG with the background on so the printing question is settled early. If a second whiteboard for a different context ends up wanted, a tool such as Kagemusha can create it with a separate storage area of its own.

Frequently asked questions

Is there an official Excalidraw desktop app for Mac?

Not any more. The team deprecated Excalidraw Desktop, which was an Electron build, in December 2020 in favour of the web version, and explained that the installable web app already provided the standalone window, offline caching, and file handling the desktop build existed for.

Why is the canvas empty in a newly created window?

Because drawings are held in browser storage, which belongs to a browser profile. A new app with its own profile starts with nothing in it. Use Save to in the original browser to write a .excalidraw file, then open that file in the new window.

Can Excalidraw export a PDF?

Not from the export dialog on excalidraw.com, which offers PNG, SVG, and copy to clipboard, with toggles for background, dark mode, and embedding the scene, plus a scale of one to three times. A PDF is made by exporting an image and printing or converting it, or by using a third party native client that adds PDF export.

How should a drawing be prepared for printing?

Export at two or three times scale, switch the background on, and leave dark mode off. Use SVG when the destination application accepts vector files, since it removes resolution from the equation entirely. There is no print command inside Excalidraw itself.

Does a standalone window still work offline?

Yes, to the extent the engine supports it. Excalidraw is built as an installable progressive web app with a service worker that caches its resources, which is why the team considered Electron unnecessary. The drawings themselves are local to the profile in the free tier, so offline editing is the normal case rather than a special mode.

Back to all posts