Privacy Policy

Electronic Catalog Maker — Editor & Viewer

Short version: these apps don't collect, store, or transmit any personal information. Everything runs locally, in your browser or in the installed app, against files on your own device — with one optional exception, real-time collaboration, described below.

What the apps do

The Editor and Viewer read and write .ecatm catalog files — a single portable SQLite file, opened either from your local disk or from a URL you provide. All of the actual work (reading, editing, searching, rendering) happens on your device via sql.js, a SQLite build compiled to WebAssembly. There is no backend server run by this project, no account, and no sign-in — we have nothing to store even if we wanted to.

Local files

When you open or save a catalog, the browser's File System Access API (or a plain file picker as a fallback) asks the operating system to read or write exactly the file you selected. That file never leaves your device unless you yourself choose to share it — nothing is uploaded to us or to any third party by the apps themselves.

Real-time collaboration (optional)

The Editor has an optional feature, real-time collaboration, that lets more than one person edit the same catalog together and see each other's changes live. This is the one feature that does talk to a server — but never one this project operates. It only activates if you click 🤝 Start collaboration yourself, or open a link someone sent you that joins a session they started.

The server on the other end is a small, separate, open-source app ( @ecm/collab-server) that whoever starts a session runs on their own computer — this project doesn't host or operate one on anyone's behalf. Starting a session sends that catalog's contents to that server, which relays live edits between everyone connected and holds them only in memory, only for as long as that person keeps the app running; nothing is written to that server's disk, and closing the app (or the session ending any other way) discards everything it was holding. Joining a session also means picking a display name — not tied to any account or identity — so other participants can see who's currently there.

To be reachable by a collaborator outside its own computer, that server routes its connection through a third-party tunneling service (Cloudflare's free "quick tunnel," via a temporary trycloudflare.com address) — a real third party in the data path for that session, subject to Cloudflare's own privacy policy, not ours. See that package's own documentation for the full technical detail.

Opening a catalog from a URL

If you open a catalog via a remote link (for example, one of the demo catalogs, or a link someone shared with you), your browser makes a request directly to whatever server hosts that file. That request is between you and that host — we don't see it, and it's subject to that host's own policies, not ours.

Analytics

The public website (this landing page, and the Editor/Viewer when opened in an ordinary browser tab) uses GoatCounter, a privacy-friendly, cookie-free page-view counter. It doesn't use cookies, doesn't track you across sites, and only records anonymous, aggregate visit counts — never anything tied to an individual person.

The installed desktop app (Editor or Viewer, once added to your Start menu / taskbar via the browser's install prompt or the Microsoft Store) is built to never contact this analytics service at all — it's blocked at two independent levels in the app itself, specifically so that using the installed app stays entirely private and offline-first.

Buying an item from a catalog

Some catalogs include a "Buy" button on individual items, configured by whoever built that catalog. Clicking it takes you to a third-party store (for example Payhip) to complete a purchase there. Any payment or personal information involved is handled entirely by that store, under its own privacy policy — the Editor and Viewer apps never see, collect, or process it.

Third-party services used by this project

None of these are things the Editor or Viewer apps themselves run, operate, or receive data from beyond what's described above.

Changes to this policy

If this ever changes (for example, if a future feature needs to talk to a server), this page will be updated to reflect that honestly.

Contact

Questions about this policy: open an issue on GitHub.