Snapshots


An Offline Snapshot is a static copy of your app that stays available at your Public URL while your machine is offline, so teammates or clients can review your work on their own schedule.

The common case is sharing work for review. Designers and frontend engineers send a prototype, website, or landing page to their team or to a client, who then opens it in another timezone or days later. A Snapshot keeps that link working without needing your machine to be awake.

Behind the scenes, a Public URL forwards traffic through a live connection (tunnel) to the app running on your machine. When that connection drops, because your laptop went to sleep, you quit the app, your network dropped, or you paused the Public URL, visitors would otherwise land on the branded offline page. With a Snapshot published, LocalCan serves the static copy at the same URL instead.

Availability

Snapshots are available on paid subscription plans. Your plan determines how many of your Public URLs can have a Snapshot at once. See your dashboard for plan details.

Publishing a Snapshot

Open a Public URL's settings in the desktop app and go to the Snapshot tab. On macOS, LocalCan looks at the app running behind the URL and offers two ways to publish:

  • Publish runs your app's own build and publishes the output. LocalCan detects the app folder and the build output for you, so there is nothing to configure. This is the recommended path for most static and single-page apps, such as Vite, React, Vue, Svelte, or Astro (see the framework table below).
  • Choose Folder… lets you publish a folder of static files yourself. Pick your project root or its built output, and LocalCan finds the dist, build, or out folder for you. You can also point it at a plain folder of hand-written HTML, CSS, and JS. Use this when you built the app yourself or the automatic build does not fit your setup.

On Windows the automatic build is not available, so Publish is not offered. Build your app yourself first, then use Choose Folder… and pick the project root or the built output.

Publishing takes a few seconds. When it finishes, the settings show Last updated just now.

Supported frameworks

A Snapshot works with any framework that builds to static files. On macOS, Publish builds it and finds the output for you. When you build the app yourself (on Windows, or with Choose Folder…), choose the folder that holds the built index.html.

FrameworkHow to snapshot
Vite (React, Vue, Svelte, Solid)Automatic
Next.jsAdd output: 'export' to next.config.ts
Create React AppAutomatic
TanStack StartPrerender all routes, with no server functions
AstroAutomatic
SvelteKitUse @sveltejs/adapter-static with prerendering enabled
NuxtPrerender with nuxi generate
Vue CLIAutomatic
GatsbyAutomatic
DocusaurusAutomatic
EleventyAutomatic
AngularAutomatic

A framework that renders on the server or calls server functions at request time has no static pages to capture until you configure it for static output, as shown above. If yours is not listed, build it and choose the folder with the generated index.html.

When the Snapshot is served

The Snapshot is served only while your tunnel is offline. There is nothing to switch on per session:

  • While you are online, visitors reach your live local app exactly as before.
  • While you are offline, or after you pause the Public URL, visitors get the Snapshot.

Every Snapshot response carries an X-LocalCan-Snapshot: 1 header, and a small dismissible badge appears in the corner of the page so viewers know they are looking at a static copy rather than your live app.

Keeping a Snapshot up to date

A Snapshot is a point-in-time copy. It does not refresh on its own. When your app changes and you want the offline copy to match:

  • Update rebuilds (or re-packs the chosen folder) and republishes.
  • Choose Folder… switches to a different folder.

The Last updated X ago label always tells you how old the current Snapshot is.

Requirements and limits

  • The Public URL must be an HTTP LocalCan URL. Custom domains are supported.
  • Basic Auth must be off. A Snapshot is served straight from LocalCan's edge without your Public URL's authentication, so LocalCan will not publish one that would end up exposed without the password you set. Disable Basic Auth first. See Configuration → Basic auth.
  • Only static output can be published. If a build has no static pages, LocalCan tells you what to change.
  • A Snapshot can hold up to 5,000 files and 100 MB uncompressed.

Disabling a Snapshot

Click Remove Snapshot. The offline page returns for that Public URL and the stored Snapshot is removed. Deleting the Public URL removes its Snapshot as well.

© 2026 LocalCan™. All rights reserved.