How it works

Your data stays on your device. Sharing is built into the URL. Here's how it all fits together.

Local storage with SQLite

Lost the Plot stores everything in a SQLite database in your browser using OPFS (Origin Private File System) — a private storage area that only this app can access.

Your bands, plots, musicians, contacts, and input lists all live in this local database. Nothing is uploaded to a server. No account needed, no cloud sync.

The app also works offline once loaded.

What OPFS means for you

  • Data stays on your device — never uploaded
  • No account, no login, no password
  • Works offline after first load
  • Fast — database queries happen locally, not over a network
  • Private by default — your contacts and channel lists are yours

Sharing without a server

When you hit Share, your entire stage plot gets compressed and encoded into the URL itself. The link contains everything: item positions, channel assignments, musician names, and contact details.

The person you share it with doesn't need the app installed or an account. They just open the link and see the full plot — rendered live in their browser from the data in the URL.

What happens when you share

1

Compact the data

Each item on your stage plot gets converted from a verbose object into a compact numeric tuple. Gear references are replaced with catalog indexes — so instead of storing a full path like amps/guitar/fender_amp, it stores a single number.

2

Compress it

The compacted JSON is then gzip-compressed using the browser's built-in CompressionStream API. This typically reduces the payload by 80% or more.

3

Encode into the URL

The compressed bytes are base64url-encoded and placed in the URL's hash fragment — the part after the #. Hash fragments are never sent to the server in HTTP requests, so your data stays entirely client-side even when using the link.

Anatomy of a share link

https://ltp.slipp.cam/s/my-band/main-stage#compressed-plot-data...
/s/my-band/main-stage

Human-readable path — shows the band name and plot name in plain text.

#...

Hash fragment — contains the entire compressed plot. Never sent to any server.

Privacy

There's no server storing your data, so there's nothing to leak. The hash fragment in the URL is processed entirely by the browser — an intercepted HTTP request would only show the band and plot names, not the content.

Phone numbers, emails, and other contact details you add to band members are included in the compressed payload. They're only visible to someone who has the full share link.

Receiving a shared plot

When someone opens your share link, they see a read-only view of the stage plot with the full canvas layout, input list, musicians, and contacts. No install required.

If they want to edit it, they can click Import to My Plots. This decodes the URL, creates a new band and plot in their local database, and opens it in the editor. From that point on, it's their own independent copy.

Give it a try

No signup or download needed. Open the app and start building your stage plot.