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.
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.
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.
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.
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.
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.
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.
None of these are things the Editor or Viewer apps themselves run, operate, or receive data from beyond what's described above.
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.
Questions about this policy: open an issue on GitHub.