Kako gradim povjerenje. Bez uljepšavanja.
Predaješ mi svoj popis klijenata. To je velika stvar. Evo što s njim radim, iskreno.
Sigurnost
- 🔐 TLS 1.3 posvuda (wildcard certifikat, sam se obnavlja). HTTP se preusmjerava na HTTPS uz uključen HSTS.
- 🔑 Prijava bez lozinke, preko magičnog linka na e-mail. Nema lozinke koju možeš izgubiti, ni koju ti mogu ukrasti.
- 🧾 CSRF tokeni na svakom obrascu koji nešto mijenja. Stroga provjera Refererer zaglavlja na HTTPS-u.
- 🛡️ Content Security Policy kroz Talisman (stroga pravila za skripte). Prijava i registracija ograničene po broju pokušaja preko Redisa.
- 🗄️ Baza vezana samo na 127.0.0.1, nema otvorenog javnog porta. Noćna enkriptirana sigurnosna kopija na disk.
- 🕵️ Svaka važna radnja završi u zapisu (dodan posjet, iskorištena nagrada, promijenjene postavke, ghost prijava).
Pouzdanost
- ⏱️ Hostano na Hetzneru, Frankfurt, u EU. Javna provjera stanja na /healthz.
- 💾 Noćni pg_dump backup, čuvam ga 14 dana. Jednom mjesečno sam testiram vraćanje.
- 📉 Ako nešto pukne, popravak ide van isti dan. Vodim jedan proizvod, ne pedeset.
- 📊 Cilj dostupnosti 99,5 posto (u najgorem slučaju, oko 3,5 sata nedostupnosti mjesečno). Za sada nema SLA odšteta - potpisat ću ugovor s prvim salonom koji to zatraži.
Privatnost i GDPR
- 🇪🇺 Svi podaci žive u EU (Hetzner, Frankfurt). Ništa ne izlazi iz EU/EEA, osim slanja e-maila preko Brevoa, koji je isto hostan u EU.
- 🚫 Bez analitike trećih strana s kolačićima. Nema Google Analyticsa, nema Facebook Pixela, nema snimanja sesija.
- 📤 Sve klijente, posjete i nagrade možeš izvesti kao CSV iz Postavki, kad god želiš.
- 🗑️ Klijent traži da bude zaboravljen: jedan klik u Klijentima briše njegov redak i cijelu njegovu povijest s njim.
- ⏳ Zatvoriš račun i imaš 30 dana za puni izvoz u CSV. Nakon toga sve se briše zauvijek.
- 📄 Sve detalje imaš u mojoj Politici privatnosti.
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 dana |
| 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 dana (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 dana on disk, then rotated out.
- 📜 Web + app logs - 14-30 dana.
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.
Tko je vlasnik podataka
Ti. Tvoj popis klijenata je tvoj posao, ne moj. Nikad ga ne prodajem, ne dijelim ni s kim, ne treniram ML modele na njemu, ne gledam pojedinačne kartone klijenata osim ako me ne zamoliš da pomognem oko neke greške. Izvezi kad god želiš, ponesi kamo želiš.
Osoba iza servera
Bok, ja sam Narcis. Napravio sam fidel.club nakon što je bliska prijateljica tiho gubila stalne mušterije, a sve što je bilo na tržištu bila je ili aplikacija koju njene klijentice nikad ne bi instalirale, ili neka korporativna stvar od 200 eura mjesečno. Ovo vodim sam iz svog kućnog ureda u Bukureštu. Kad pošalješ mail podršci, ja ga čitam. Kad naiđeš na bug, ja ga popravim. Kad imaš ideju koja mi se čini super, izbacim je taj tjedan. To je cijela firma.
Piši mi: nark@nark.ro