// приватностьprivacy
Что происходит с даннымиWhat happens to your data
редакция от 28 июля 2026revision of 28 July 2026
Коротко: аккаунтов нет; на витрине стоит счётчик посещаемости — без записи сессий; сервер ведёт обычный лог запросов — в нём адреса есть, а в суточной сводке, которая остаётся, их уже нет; телеметрии нет в релизных сборках. Ниже — что именно происходит.Short version: no accounts; the site runs a visit counter with session recording off; the server keeps an ordinary request log — addresses are in it, but not in the daily aggregate that remains; no telemetry in release builds. Below is what actually happens.
Этот сайтThis site
- Счётчик посещаемости — Яндекс.Метрика (стоит на всех страницах витрины). Она считает визиты и источники переходов, строит карту кликов (координаты кликов по странице, не только по ссылкам) и ставит свои куки — в том числе
_ym_uidи_ym_d. Запись сессий (вебвизор) выключена: движения мыши, ввод в поля и содержимое страниц не пишутся. Рекламы на сайте нет.The visit counter is Yandex Metrica (present on every page of the site). It counts visits and referrers, builds a click map (coordinates of clicks anywhere on the page, not just on links) and sets its own cookies —_ym_uidand_ym_damong them. Session recording (Webvisor) is off: mouse movement, field input and page contents are not recorded. There are no ads on the site. - Счётчик — это обычный скрипт со страницы, и другого пути у него нет: с выключенным JavaScript или с блокировщиком, который режет
mc.yandex.ru, туда не уходит ни одного запроса. Невидимого «пикселя» в<noscript>здесь намеренно нет — он считал бы ровно тех, кто от счётчиков отказался. Что Яндекс делает с собранным на своей стороне — определяется его правилами.The counter is an ordinary script on the page, and it has no other route: with JavaScript disabled, or with a blocker that filtersmc.yandex.ru, not a single request goes there. There is deliberately no invisible<noscript>pixel — it would count exactly the people who opted out. What Yandex does with what it collects on its side is governed by its rules. - Сторонний адрес на странице один — счётчик выше. Шрифты отдаются с самого
nitinol.app, за ними никто никуда не ходит. Яндекс при работе счётчика видит ваш IP-адрес и User-Agent.The page carries one third-party address — the counter above. Fonts are served fromnitinol.appitself; nothing is fetched elsewhere for them. When the counter runs, Yandex sees your IP address and User-Agent. - В
localStorageбраузера ложится только состояние интерфейса: язык и тема витрины, а со стороны живого демо (оно работает на том же адресе) — раскладка панелей, свёрнутые колонки, положение каретки в заметке, выбранные цвета и подобное. Наружу эти значения не уходят.BrowserlocalStorageholds interface state only: the site’s language and theme, and from the live demo (which runs on the same origin) the panel layout, collapsed columns, caret position in a note, chosen colours and the like. None of it leaves your browser. - Живое демо на главной работает в памяти вкладки и наружу ничего не шлёт: заметки и задачи, которые вы в нём создадите, исчезают с закрытием страницы. Переживает перезагрузку только состояние интерфейса — раскладка панелей, свёрнутые колонки, выбранные цвета: оно и лежит в тех самых ключах выше.The live demo on the home page runs in tab memory and sends nothing anywhere: the notes and tasks you create there disappear when the page closes. Only interface state survives a reload — panel layout, collapsed columns, chosen colours — and that is exactly what the keys above hold.
Логи сервера и статистикаServer logs and statistics
- Сервер ведёт обычный access-лог — и для сайта, и для фида обновлений. В строке лога: адрес, с которого пришёл запрос, время, метод и адрес запрошенного файла, код и размер ответа, страница-источник перехода целиком и User-Agent. Это стандартная запись веб-сервера, а не отдельный сбор. Ротация настроена ежедневной, с 14 архивами: когда она отрабатывает штатно, файлы старше исчезают. Это настройка, а не гарантия точного срока: не сработавшая вовремя ротация может продлить жизнь архива.The server keeps an ordinary access log — for the site and for the update feed alike. Each line holds: the address the request came from, the time, the method and the path requested, the response code and size, the full referring page, and the User-Agent. This is a standard web-server record, not a separate collection effort. Rotation is configured daily, keeping 14 archives: when it runs as intended, older files disappear. That is a configuration, not a guarantee of an exact lifetime: a rotation that fails to run on time keeps an archive alive longer.
- Из логов раз в час собирается сводка: сколько было запросов и сколько разных посетителей за сутки, какие страницы открывали, откуда переходили, какие версии скачивали. Чтобы посчитать «разных», адрес не сохраняется — считается необратимый отпечаток, и соль у него своя на каждые сутки. Отпечаток существует только во время подсчёта, на диск не попадает вовсе, а отпечатки разных суток между собой не сопоставляются.Once an hour those logs are aggregated: how many requests and how many distinct visitors there were that day, which pages were opened, where people came from, which versions were downloaded. To count “distinct”, the address is not stored — an irreversible fingerprint is computed instead, and its salt is different for every day. The fingerprint exists only while the count runs, never reaches disk, and fingerprints from different days cannot be matched against each other.
- Бессрочно остаются только суточные числа и при них: адреса открытых страниц, имена сайтов, откуда к нам перешли, номера скачанных версий и семейства клиентов вида
Windows · Chrome— без версии браузера, потому что полная строка User-Agent почти уникальна и работала бы как метка устройства.What remains indefinitely is only the daily numbers and, with them: the paths of pages opened, the names of the sites people came from, the version numbers downloaded, and client families such asWindows · Chrome— without the browser version, because a full User-Agent string is nearly unique and would work as a device marker. - Чего нет: удержания, когорт, воронок и профиля посетителя. Всё это требует связать вас между сутками, а сводке связывать нечем: отпечаток за пределы суток не выходит, и в сохранённых числах вас не найти. Две оговорки, чтобы не обещать лишнего. Первая: пока жив сам access-лог, в нём лежат адрес и User-Agent за те дни, что он ещё хранит, и у того, кто имеет доступ к серверу, они есть и без всякой сводки — гарантия выше про сводку, а не про логи. Вторая: имена сайтов-источников сохраняются как пришли, и если к нам ведёт ссылка с редкого личного адреса, по которому ходите только вы, такой источник может встретиться в разных сутках.What is not computed: retention, cohorts, funnels, or a visitor profile. All of those require linking you across days, and the aggregate has nothing to link with: the fingerprint never leaves its day, and the stored numbers do not contain you. Two caveats, so as not to promise more than is true. First: while the access log itself is alive, it holds the address and User-Agent for the days it still keeps, and anyone with access to the server has them without any aggregate — the guarantee above is about the aggregate, not about the logs. Second: the names of referring sites are stored as they arrive, so if a link to us sits at some rare personal address that only you visit, that source may show up on more than one day.
ПриложениеThe app
- Телеметрии и крэш-репортов в релизных сборках нет. Точнее: сбор событий в коде есть, но в собранном релизе по умолчанию выключен. Включить его можно только запустив программу с переменной окружения
NITINOL_TELEMETRY=1— это отладочный режим для разбора полевой проблемы, и он ваш, а не мой: события ложатся в локальный файл, а при включённом синке едут в ваше же хранилище зашифрованными. Формулировка про механизм, а не «телеметрии нет вообще»: исходники закрыты, поэтому обещание сформулировано так, чтобы его можно было проверить снаружи — без этой переменной файл.logs/telemetry.jsonlв папке данных не появляется вовсе.Release builds carry no telemetry and no crash reports. More precisely: event collection exists in the code but is off by default in a release build. It can only be enabled by launching the app with theNITINOL_TELEMETRY=1environment variable — a debug mode for diagnosing a field problem, and it stays yours, not mine: events land in a local file and, with sync on, travel to your own storage encrypted. The wording names the mechanism rather than claiming “no telemetry at all”: the source is closed, so the promise is phrased to be checkable from the outside — without that variable the file.logs/telemetry.jsonlnever appears in your data folder at all. - В сеть приложение выходит так: обновления — по выбранному в настройках режиму: «Автоматически», «Только проверять» (так по умолчанию) или «Вручную». По умолчанию программа только спрашивает фид, есть ли версия новее; скачивание и установка происходят только по вашему явному действию — либо по действию для конкретного обновления, либо по однажды сделанному вами выбору режима «Автоматически», где программа дальше обновляется сама. У установки из
.debавто-обновлений нет вовсе — новая версия ставится переустановкой пакета. Дальше: запросы к LLM-провайдеру, которого вы подключили сами, по вашему ключу и напрямую; синхронизация с вашим хранилищем — наружу уходит только шифртекст. Аккаунта и идентификатора устройства в проверке обновлений нет, но сервер, как при любом HTTP-запросе, видит ваш IP-адрес, время и User-Agent; что с этим происходит дальше — в разделе «Логи сервера и статистика».The app reaches the network in these ways: updates — in the mode you choose in settings: “Automatically”, “Check only” (the default) or “Manually”. By default the app only asks the feed whether a newer version exists; downloading and installing happen only on your explicit action — either per update, or through your one-time choice of the “Automatically” mode, after which the app keeps itself updated. A.debinstall has no auto-updates at all — a new version is installed by reinstalling the package. Beyond that: requests to an LLM provider you connected yourself, with your key, directly; synchronisation with your own storage, where only ciphertext leaves the device. The update check carries no account and no device identifier, but the server — as with any HTTP request — sees your IP address, the time and your User-Agent; what happens to that afterwards is in “Server logs and statistics”. - Есть и четвёртая, локальная поверхность: прямая синхронизация по вашей локальной сети. Она включается сама, только если синк включён, устройств у вас больше одного и сеть помечена в Windows частной или доменной. Тогда приложение слушает порт, видимый в этой сети, и анонсирует себя по mDNS с устойчивым отпечатком — то есть наблюдатель внутри той же сети может связать «это одно и то же устройство» между сессиями. У одного устройства этой поверхности нет вовсе, а режим отключается в настройках синхронизации.There is a fourth, local surface: direct synchronisation over your local network. It turns on by itself only if sync is enabled, you have more than one device, and Windows marks the network as private or domain. The app then listens on a port visible in that network and announces itself over mDNS with a stable fingerprint — meaning an observer inside the same network can link “this is the same device” across sessions. With a single device this surface does not exist at all, and the mode can be switched off in sync settings.
- Встроенный MCP-сервер слушает только
127.0.0.1и в сеть не выходит.The built-in MCP server listens on127.0.0.1only and never goes to the network.
Данные и ключиData and keys
- Данные лежат в обычной папке на вашем диске. При включённой защите хранилища база и вложения зашифрованы — защиту стоит включить, без неё файлы лежат открыто. Даже при ней открытыми остаются настройки, списки папок, логи и всё, что вы экспортировали руками; вложение, открытое во внешней программе, на время кладётся расшифрованным во временный каталог.Your data lives in an ordinary folder on your disk. With storage protection enabled the database and attachments are encrypted — worth turning on, since without it the files sit in the clear. Even with it, settings, folder lists, logs and anything you exported by hand stay in the clear; an attachment opened in an external app is written decrypted to a temp folder for the duration.
- Удаление приложения ваши файлы не трогает — но деинсталлятор отдельно спрашивает, снести ли папку с данными и ключами. По умолчанию там «Нет»; если ответить «Да», данные удалятся безвозвратно.Uninstalling the app leaves your files alone — but the uninstaller separately asks whether to wipe the data folder along with your keys. The default answer is “No”; answering “Yes” deletes the data irreversibly.
- Ключ LLM-провайдера хранится через системное хранилище секретов ОС, а если оно недоступно — открытым текстом в настройках.Your LLM provider key is stored through the OS secret store, and if that is unavailable, in plain text in the settings file.
ВопросыQuestions
Пишите на hi@nitinol.app.Write to hi@nitinol.app.
Это фактическое описание поведения сайта и приложения, а не юридический документ: политики обработки персональных данных с оператором и реквизитами у проекта пока нет. Условия использования — в оферте.This is a factual description of how the site and the app behave, not a legal document: the project has no formal data-processing policy with a named operator yet. Terms of use live in the offer.