Як я підходжу до довіри. Простими словами.
Ти віддаєш мені свій список клієнтів. Це серйозна річ. Ось що я з ним роблю, чесно.
Безпека
- 🔐 TLS 1.3 всюди (wildcard-сертифікат, оновлюється сам). HTTP переспрямовує на HTTPS, HSTS увімкнено.
- 🔑 Вхід без пароля - через магічне посилання на емейл. Немає пароля, який можна загубити чи вкрасти.
- 🧾 CSRF-токени в кожній формі, що щось змінює. Строга перевірка Referer на HTTPS.
- 🛡️ Content Security Policy через Talisman (строгі джерела скриптів). Вхід і реєстрація обмежені за частотою через Redis.
- 🗄️ База даних прив'язана лише до 127.0.0.1, жодного відкритого публічного порту. Щоночі шифрований бекап на диск.
- 🕵️ Кожна важлива дія потрапляє в аудит-лог (додано візит, використано винагороду, змінено налаштування, ghost-логін).
Надійність
- ⏱️ Хостинг на Hetzner, Франкфурт, у ЄС. Публічна перевірка стану за адресою /healthz.
- 💾 Щонічний бекап pg_dump, зберігається 14 днів. Я сам тестую відновлення раз на місяць.
- 📉 Якщо щось ламається, фікс виходить того ж дня. У мене один продукт, а не п'ятдесят.
- 📊 Ціль аптайму - 99,5 відсотка (у найгіршому випадку близько 3,5 години простою на місяць). SLA-компенсацій поки немає - підпишу з першим салоном, який попросить.
Приватність і GDPR
- 🇪🇺 Усі дані живуть у ЄС (Hetzner, Франкфурт). Нічого не виходить за межі ЄС/ЄЕЗ, окрім доставки емейлів через Brevo, який теж хоститься в ЄС.
- 🚫 Жодної сторонньої аналітики з куками. Ні Google Analytics, ні Facebook Pixel, ні запису сесій.
- 📤 Ти можеш експортувати кожного клієнта, візит і винагороду як CSV з Налаштувань, коли захочеш.
- 🗑️ Клієнт просить його забути: один клік у Клієнтах видаляє його рядок разом з усією історією.
- ⏳ Закриваєш акаунт - маєш 30 днів на повний експорт CSV. Після цього все видаляється назавжди.
- 📄 Усі деталі в моїй Політика конфіденційності.
Sub-processors
These are the third parties that help me run fidel. Nothing else touches your data.
| Who | Why | Where |
|---|---|---|
| Hetzner | Application server, database, backups | Frankfurt (EU) |
| Cloudflare | DNS + TLS certificate (DNS-only, no traffic proxy) | EU edge |
| Brevo | Transactional + lifecycle emails to your clients | Paris (EU) |
| Stripe | Your subscription billing (never your clients) | Dublin (EU) + US |
| Anthropic (Claude) | Auto-translation of UI strings + weekly-digest rewrite. Never sees your client list. | USA (SCCs) |
Full details, transfer basis, change notification policy in SUBPROCESSORS.md.
Cookies I set
| Cookie | What for | Lasts |
|---|---|---|
| session | Signed session (login, language, flash messages) | 30 днів |
| csrf_token | CSRF protection on forms | per session |
| fidel_theme | Your dark / light theme choice | permanent (localStorage) |
| _asid | Anonymous session id for our own funnel analytics | per session |
First-party only. No third-party cookies, no cross-site trackers, no advertising IDs.
How long I keep things
- 👥 Client records - until you cancel your account (or click 🗑 on a specific client). Then 30-day grace window, then hard-deleted.
- 📊 Analytics events - 90 днів (funnel windows are 7 and 30 days; the extra buffer allows year-over-year sanity checks and is auto-purged nightly.)
- 📱 Kiosk QR tokens - 5 minutes (rotating anti-fraud); 1 day audit trace after expiry.
- 💾 Encrypted backups - 14 днів on disk, then rotated out.
- 📜 Web + app logs - 14-30 днів.
Full retention grid in RETENTION.md.
If something goes wrong
I have a written breach response plan with a 72-hour notification deadline to the Romanian supervisory authority (ANSPDCP) per GDPR Art 33, plus direct notification to every affected tenant. RTO 4 hours, RPO 24 hours, tested quarterly.
Full playbook in INCIDENT-RESPONSE.md.
Кому належать дані
Тобі. Твоя база клієнтів - це твій бізнес, а не мій. Я її ніколи не продаю, ні з ким не ділюся, не треную на ній ML-моделі, не заглядаю в окремі картки клієнтів (хіба що ти сам попросиш допомогти з якимось багом). Експортуй коли завгодно, забирай куди хочеш.
Людина за серверами
Привіт, я Нарчіс. Я зробив fidel.club після того, як близька подруга тихо втрачала своїх постійних клієнток, а всі варіанти на ринку були або застосунком, який її клієнтки нізащо б не встановили, або корпоративною штукою за 200 євро на місяць. Я веду це сам зі свого домашнього кабінету в Бухаресті. Коли ти пишеш у підтримку, це читаю я. Коли знаходиш баг, його виправляю я. Коли в тебе є ідея, яка мені здається класною, я викочую її того ж тижня. Оце і вся компанія.
Напиши мені: nark@nark.ro