What this sitecollects about you.
The application and this website are separate things, and it would be convenient to blur them together. The application makes one kind of request — it checks whether a newer version exists, which it now does by default and you can switch off. This website counts how many people visit it. Both are set out below.
Last updated 21 August 2026
This website
Page views, counted in aggregate
The site uses Vercel Web Analytics to count page views. It sets no cookies, writes nothing to local storage, and does not give you an identifier that follows you to other websites. That is not a claim taken from a vendor page: with the script running, this site’s own document.cookie and localStorageare both empty, and you can confirm that yourself in your browser’s developer tools right now.
There is no advertising network, no tag manager, no social tracking pixel, no session recording and no A/B testing tool. Nothing here is sold or shared with a data broker.
Nothing is loaded from anyone else
The typefaces are downloaded at build time and served from this domain, so your browser never asks Google for a font. The screenshots and the walkthrough video are served from here too. There are no embeds, no iframes and no external scripts beyond the analytics above. Loading this page does not tell any third party that you did — apart from the host serving it.
The host
The site is hosted on Vercel. As with any website anywhere, your IP address is necessarily involved in delivering the page to you, and the host keeps operational logs. That is a property of how the web works rather than a decision taken here, but it is still true, so it is written down.
If you email
The only contact point on this site is a plain mailto: link. There is no form and no signup box. If you write to contact@usekelvin.app, your message and your address arrive in an inbox and stay there. You are not added to a mailing list, because there isn’t one.
The application
Kelvin runs entirely on your Mac. There is no account, no upload, no telemetry and no crash reporting. A released build ships the model inside the app, so reading a photograph needs no network. The one outbound request a released build is allowed to make is the update check described below, and from 0.2.0 it is on by default.
- Account required
- None
- Photographs uploaded
- None
- Usage telemetry
- None
- Crash reporting
- None
- Network requests, released builds
- Update check only — on by default
The update check
A released build keeps itself current with Sparkle, the standard macOS updater. It checks automatically, about once an hour, and asks before it installs anything. When a newer version exists you see the standard “a new version is available” sheet and decide. Settings ▸ General has two switches — one for checking, one for installing without asking — and turning off the first stops the app contacting anything at all until you choose Check for Updates yourself.
This has moved twice, and both moves are worth stating plainly. Version 0.1.0 asked first; from 0.2.0 the app installed what it found on quit, because an alpha that only updates the people who said yes to a dialog leaves known-bad versions running in the field. From 0.8.2 it asks again — a silent install on quit meant nobody ever saw an update happen, and one release was stuck in the Dock unable to quit at all, so the update that fixed it could never install itself. Checking stays on by default; installing is yours to say yes to.
The check itself is a request to this domain for a few kilobytes of XML describing the newest version. Like any web request, the server end sees an IP address. No photograph, no filename, no account and no identifier travels with it, there is nothing about your library in the reply, and the file is the same one for everybody who asks.
Your originals, and your metadata
Original files are never written to. Edits are stored separately as small JSON recipes, so the file your camera wrote stays exactly as your camera wrote it.
From version 0.4.0 Kelvin also keeps a cache of things it would otherwise re-read from your photographs on every launch — filmstrip thumbnails, capture dates and the rest of the camera header. It lives in ~/Library/Caches on your own Mac, it never leaves it, and deleting it is always safe: everything in it rebuilds from the originals. It is what makes a shoot on a network drive open at a reasonable speed.
One thing here is worth reading properly. Exported photographs carry their original metadata by default, and that includes the location the photograph was taken. It is on by default, because quietly destroying something you might need later is the worse mistake. It does mean an exported file can tell someone where you were standing. One switch in the export options removes it, and if you are publishing photographs taken at home you should use it.
Changes, and asking
If any of this changes, this page changes with it and the date at the top moves. The site is a small static one run by an individual, William Wallace; questions about any of the above go to contact@usekelvin.app.