Jak zbudowaliśmy Tempy.email z myślą o prywatności
Większość usług e-mail przechowuje Twoje wiadomości w bazach danych, indeksuje je do wyszukiwania, tworzy kopie zapasowe i przechowuje bezterminowo.
My robimy odwrotnie: Wszystko istnieje w pamięci. Gdy Twój timer wygaśnie, dane znikają.
Problem prywatności w tradycyjnym e-mailu
Gdy używasz Gmail, Outlook lub dowolnej tradycyjnej usługi e-mail:
- E-maile zapisywane na dysku → Mogą być objęte nakazem sądowym, wyciekiem lub sprzedażą
- Indeksowane do wyszukiwania → Tworzą metadane o Twojej komunikacji
- Kopie zapasowe → Istnieje wiele kopii, zwiększając narażenie
- Przechowywane bezterminowo → Twoje 10-letnie e-maile nadal istnieją
- Skanowane pod kątem reklam → Treść analizowana do targetowania reklam
- Logi przechowywane → Adresy IP, znaczniki czasu, wzorce dostępu śledzone
Nigdy tak naprawdę niczego nie usuwasz.
Nawet jeśli klikniesz "usuń", dane mogą istnieć w:
- Taśmach z kopiami zapasowymi
- Indeksach wyszukiwania
- Logach serwera
- Archiwach zgodności
- Systemach przechowywania prawnego
Nasze podejście: Architektura oparta wyłącznie na pamięci
tempy.email zbudowane jest na jednej zasadzie: Jeśli nie ma tego w RAM, to nie istnieje.
Tradycyjny e-mail:
Użytkownik → Serwer WWW → Baza danych → Dysk → Kopie zapasowe → Archiwa
(Dane żyją wiecznie)
tempy.email:
Użytkownik → Serwer WWW → Redis (tylko RAM) → Wygasa → Znika
(Dane żyją 10 minut)
Brak trwałego przechowywania
Czego NIE mamy:
- ❌ Brak PostgreSQL, MySQL ani żadnej dyskowej bazy danych
- ❌ Brak przechowywania plików (S3, dysk, NAS)
- ❌ Brak kopii zapasowych
- ❌ Brak archiwów
- ❌ Brak logów treści e-maili
- ❌ Brak "miękkiego usuwania" (oznaczanie jako usunięte przy zachowaniu danych)
Co MAMY:
- ✅ Redis (przechowywanie klucz-wartość w pamięci)
- ✅ TTL (Time-To-Live) na każdym kluczu
- ✅ Automatyczne wygasanie
Jak działa przechowywanie e-maili
Gdy e-mail przychodzi:
// Przechowywanie e-maila w Redis z TTL
await redis.set(
`mailbox:${address}:emails`,
JSON.stringify(email),
'EX', 600 // Wygasa po 600 sekundach (10 min)
);
Po 10 minutach:
- Redis automatycznie usuwa klucz
- Pamięć zostaje zwolniona
- Dane całkowicie znikają (nie oznaczone jako usunięte, naprawdę znikają)
Nie ma procesu "odzyskiwania", ponieważ nie ma z czego odzyskiwać.
A co z logami serwera?
Minimalizujemy logowanie:
Tradycyjne logi serwera:
2026-02-12 10:15:23 User [email protected] logged in from 203.0.113.5
2026-02-12 10:15:45 [email protected] opened email "Password Reset"
2026-02-12 10:16:12 [email protected] deleted 3 emails
Logi tempy.email:
2026-02-12 10:15:23 Mailbox created (no email address logged)
2026-02-12 10:15:45 Email received (no content logged)
2026-02-12 10:25:23 Mailbox expired
Logujemy zdarzenia, a nie dane identyfikujące.
Funkcje prywatności
1. Brak kont użytkowników
Nie możesz założyć konta, nawet gdybyś chciał:
- Brak formularza rejestracji
- Brak haseł
- Brak strony "Moje konto"
- Brak bazy danych użytkowników
Dlaczego: Konta tworzą tożsamość. Nie chcemy wiedzieć, kim jesteś.
2. Brak śledzenia i analityki
Wiele "usług stawiających prywatność na pierwszym miejscu" nadal używa:
- Google Analytics
- Facebook Pixel
- Mixpanel
- Hotjar
My używamy: Żadnego z powyższych.
Śledzimy jedynie:
- Łączną liczbę utworzonych skrzynek (licznik)
- Łączną liczbę przetworzonych e-maili (licznik)
Nie śledzimy:
- Kto je utworzył
- Kiedy zostały utworzone
- Z jakiego IP przyszły
- Jakiej przeglądarki użyto
3. Brak skanowania treści e-maili
Nigdy nie analizujemy treści e-maili pod kątem:
- Reklam
- Trenowania uczenia maszynowego
- Wykrywania wzorców
- Klasyfikacji treści
E-maile przechodzą przez nasz system nieczytane przez ludzi ani algorytmy.
4. Brak logowania IP
Nie logujemy:
- Twojego adresu IP
- Twojej geolokalizacji
- Twojego ISP
- Odcisku palca urządzenia
Dlaczego: Nawet "zanonimizowane" logi IP mogą być często odanonimizowane przez ataki korelacyjne.
5. Brak usług firm trzecich
Nie używamy:
- CDN-ów ze śledzeniem (tylko Cloudflare w trybie prywatności)
- Platform analitycznych
- Sieci reklamowych
- Widgetów mediów społecznościowych
- Czcionek firm trzecich (Google Fonts serwowane lokalnie)
Dlaczego: Każda usługa firmy trzeciej to potencjalny wyciek danych.
Implementacja techniczna
Konfiguracja Redis
// Wszystkie klucze mają domyślnie TTL
const DEFAULT_TTL = 600; // 10 minut
// Klucz skrzynki
await redis.setex(
`mailbox:${address}`,
DEFAULT_TTL,
JSON.stringify({ created: Date.now() })
);
// Klucz e-maila
await redis.rpush(`mailbox:${address}:emails`, emailJson);
await redis.expire(`mailbox:${address}:emails`, DEFAULT_TTL);
Automatyczne czyszczenie
Redis obsługuje wygasanie automatycznie:
T+0: E-mail przychodzi → Przechowywany w Redis
T+600s: TTL wygasa → Redis usuwa klucz → Pamięć zwolniona
Brak zadań cron. Brak ręcznego czyszczenia. Brak "miękkiego usuwania".
Sanityzacja e-maili
Przed przechowywaniem e-maili oczyszczamy HTML, aby zapobiec:
- Atakom XSS
- Pikselom śledzącym
- Złośliwym skryptom
- Wyciekom prywatności
var sanitizer = new HtmlSanitizer();
sanitizer.AllowedTags = ["p", "a", "b", "i", "ul", "ol", "li"];
// Brak <img>, brak <script>, brak śledzenia
var cleanHtml = sanitizer.Sanitize(rawHtml);
Do czego nie mamy dostępu
Nawet gdybyśmy chcieli (nie chcemy), fizycznie nie możemy:
- Odzyskać usuniętych e-maili → Kopie zapasowe nie istnieją
- Zobaczyć historycznych danych → TTL usuwa wszystko
- Śledzić zachowania użytkowników → Brak logów do analizy
- Identyfikować użytkowników → Brak kont, brak logowanych IP
- Spełniać żądań danych → Brak danych do przekazania
To nie jest decyzja polityczna. To jest architektura.
Kompromisy, które akceptujemy
Projektowanie z myślą o prywatności oznacza akceptację ograniczeń:
NIE możemy oferować:
- ❌ Wyszukiwania e-maili (brak indeksowania)
- ❌ Długoterminowego przechowywania (domyślnie 10 min)
- ❌ Odzyskiwania e-maili (po wygaśnięciu znikają)
- ❌ Kont użytkowników (nie można "zapisać" skrzynek)
- ❌ Przekierowania e-maili do prawdziwej skrzynki
Możemy oferować:
- ✅ Pełną prywatność
- ✅ Zero śledzenia
- ✅ Natychmiastowe usuwanie
- ✅ Brak ryzyka wycieku danych (nie ma danych do wycieku)
- ✅ Spokój ducha
Porównanie z "prywatnym" e-mailem
| Funkcja | ProtonMail | Tutanota | tempy.email |
|---|---|---|---|
| Szyfrowanie | ✅ E2E | ✅ E2E | ⚠️ Tylko w tranzycie |
| Trwałe przechowywanie | ✅ Tak | ✅ Tak | ❌ Nie (10 min TTL) |
| Konta użytkowników | ✅ Tak | ✅ Tak | ❌ Brak kont |
| Ryzyko nakazu sądowego | ⚠️ Zaszyfrowane dane istnieją | ⚠️ Zaszyfrowane dane istnieją | ✅ Brak danych do zajęcia |
| Logowanie IP | ⚠️ Opcjonalne | ⚠️ Opcjonalne | ❌ Nigdy |
| Zastosowanie | Trwały prywatny e-mail | Trwały prywatny e-mail | Jednorazowy/testowy |
ProtonMail i Tutanota są doskonałe do trwałego prywatnego e-maila.
tempy.email jest do jednorazowego użytku, gdy chcesz, aby dane w ogóle nie istniały.
Podsumowanie
Większość usług mówi: "Nie będziemy patrzeć na Twoje dane" My mówimy: "Nie możemy patrzeć na Twoje dane (nie istnieją wystarczająco długo)"
Większość usług mówi: "Usuniemy je, jeśli poprosisz" My mówimy: "Automatycznie się usuwają po 10 minutach, niezależnie czy poprosisz"
Większość usług mówi: "Stawiamy prywatność na pierwszym miejscu" My mówimy: "Prywatność jest naszą architekturą"
To prywatność przez projektowanie, nie prywatność przez politykę.
Wypróbuj: Wygeneruj tymczasowy adres i przekonaj się sam. Za 10 minut ten e-mail zniknie na zawsze. Nie "zarchiwizowany". Nie "usunięty". Zniknięty.