Pierwsze kroki
Rejestracja wymaga maila i hasła. Wysyłamy link potwierdzający na ten adres; masz 24 godziny, żeby go kliknąć. Do tego momentu konto istnieje, ale nie może stawiać pinów ani zapisywać się na nie — widoczna jest tylko publiczna mapa.
Logowanie używa tego samego maila + hasła. Następnie na skrzynkę przychodzi sześciocyfrowy kod 2FA; wpisanie go daje sesję, która przeżywa reload strony. Możesz poprosić o nowy kod, jeśli pierwszy nie dotarł (sprawdź spam) lub wygasł.
- Bez logowania społecznościowego. Pinmate nie federuje z Facebookiem, Google, Apple ani żadnym innym dostawcą tożsamości.
- Reset hasła idzie tym samym kanałem mailowym. Link resetujący wygasa po godzinie z powodów bezpieczeństwa.
- Domowa lokalizacja domyślnie ustawiona jest na Szczecin i można ją zmienić w każdej chwili w Ustawieniach. To prywatne ustawienie używane tylko do filtrowania twojej mapy.
- Jeśli przestajesz korzystać z Pinmate, możesz miękko skasować konto z Ustawień. Twarde usunięcie (RODO Art. 17) jest potwierdzane przez admina i kasuje każdy wiersz powiązany z twoim id.
Mapa (pulpit)
Pulpit to ekran startowy dla zalogowanych. Ładuje do 200 aktywnych pinów wewnątrz twojego promienia obserwacji, sortowane po czasie startu. Piny poza promieniem nie ładują się — sąsiednie miasta nie pojawią się, dopóki nie zwiększysz promienia w panelu filtrów.
Markery niosą dwie informacje na pierwszy rzut oka: dyscyplinę (kolor wypełnienia kropki) i stan czasowy. Piny live pulsują limonkowym ringiem; piny startujące wkrótce dostają statyczny fioletowy ring; piny wygasłe blakną do połowy nieprzezroczystości. Zaznaczenie markera dodaje miękką fioletową poświatę na wierzchu, żebyś wiedział, który pin opisuje panel boczny.
Filtry siedzą w panelu po prawej, składanym na mobilce. Zmiany aplikują się natychmiast po stronie klienta — mapa rysuje się ponownie bez zapytania do serwera. Stan URL nie jest synchronizowany, więc reload resetuje filtry do twoich domyślnych.
- Kategorie: wielokrotny wybór dziewięciu kategorii sportów. Pusty wybór = pokaż wszystkie.
- Trudność i audience: niezależne przełączniki. Audience domyślnie ma zaznaczone wszystkie trzy (mieszane/kobiety/mężczyźni), więc piny single-gender nadal się pojawiają.
- Promień: suwak 1–100 km wycentrowany na twojej domowej lokalizacji. Zapisywany do konta po zmianie.
Tworzenie pinów
Stuknij dowolny punkt na mapie, żeby zacząć stawiać pin, albo użyj przycisku „postaw pinezkę”, który włącza kursor-celownik i czeka na następne kliknięcie. Modal, który się otwiera, jest pre-fillowany wybraną szerokością/długością — możesz przepiknąć punkt z nagłówka modala.
Pola wymagane: tytuł (maks 120 znaków), kategoria, audience, czas startu, długość. Opcjonalne: opis (do 2000 znaków), dyscyplina (40 znaków wolnego tekstu, np. „MTB” albo „5v5”) i widoczność (publiczny vs grupowy). Linki społecznościowe z profilu doczepiają się automatycznie — nie musisz ich wklejać do każdego pina.
Edycja istniejącego pina używa tego samego formularza. Niektóre pola są zablokowane: lokalizację można zmienić tylko przez usunięcie i ponowne utworzenie, a widoczności nie da się przełączyć między publiczną a grupową (zaskoczyłoby to osoby już zapisane).
- Czas startu musi być co najmniej pięć minut w przyszłości. Wcześniejsze daty serwer odrzuca.
- Czas trwania jest ograniczony: minimum 15 minut, maksimum 24 godziny.
- Usunięcie pina pokazuje 15-sekundowy snackbar z możliwością cofnięcia, zanim serwer faktycznie skasuje wiersz. Kliknij gdziekolwiek na snackbar, żeby zatrzymać pin.
- Piny grupowe wymagają, żebyś był członkiem wybranej grupy w momencie zapisu — serwer sprawdza to przed insertem.
- Współrzędne pina są prywatne na poziomie punktu spotkania. Twoja domowa lokalizacja nigdy nie jest domyślnym punktem — zawsze sam wybierasz miejsce.
Twoja odpowiedź i przypomnienia
Każdy pin pokazuje dwa przyciski odpowiedzi: „Idę” (deklaracja udziału, twardy licznik) i „Zainteresowany” (miękki sygnał obserwacji, osobny licznik). Możesz przełączać się między nimi albo zupełnie wyzerować swoją odpowiedź w każdej chwili przed startem pina.
Liczniki uczestników są widoczne dla każdego, kto widzi pin — także dla osób, które jeszcze nie odpowiedziały. Imiona uczestników nie są wypisywane, dopóki host tego nie włączy (przyszłe ustawienie). Twoja własna odpowiedź jest podświetlona zielonym znacznikiem.
- Przypomnienia wysyłają się X minut przed startem, gdzie X ustawiasz w Ustawieniach (domyślnie 30). Ustaw X na 0, żeby zupełnie wyłączyć przypomnienia na danym kanale.
- Push i mail są niezależne. Push działa, kiedy zainstalowałeś Pinmate na ekran główny (PWA); mail działa zawsze, ale w niektórych przepływach jest domyślnie wyłączony.
- Przypomnienia idą tylko do osób, które kliknęły „Idę”. Osoby zainteresowane przypomnień nie dostają — to lista obserwowanych, nie kalendarz.
Twoje aktywności
Strona Aktywności to twój osobisty kalendarz na wszystkich pinach. Dzieli się na trzy kubełki: Nadchodzące „Idę”, Obserwowane („Zainteresowany”) i Minione „Idę”. Każdy kubełek jest stronicowany serwerowo.
Minione „Zainteresowany” celowo się nie pokazują — jeśli tylko obserwowałeś bez zobowiązania, nie ma o czym pamiętać po fakcie. Piny, które sam hostowałeś, też się tu pojawiają, obok tych, do których dołączyłeś.
- Każdy wiersz linkuje do oryginalnego pina na mapie. Wygasłe piny nadal się renderują, ale ich przyciski odpowiedzi znikają.
- Piny grupowe, z których wyszedłeś lub zostałeś usunięty, znikają z twojej listy aktywności — serwerowy filtr widoczności obowiązuje również tu.
- Lista odświeża się przy reloadzie strony; nie ma live socketa.
Profil
Twój publiczny profil znajduje się pod adresem /profile/[twoje-id]. Pokazuje nazwę wyświetlaną, awatar, opis, linki społecznościowe, odznakę weryfikacji (jeśli ją masz), licznik obserwujących i twoje nadchodzące publiczne piny. Piny tylko-grupowe są ukryte przed osobami spoza grupy — nawet na twoim własnym profilu.
Edytuj pola profilu w Ustawienia → Profil. Awatar może być zdjęciem, które wgrasz, albo jednym z ośmiu kolorów palety Trail Mix z pierwszą literą twojej nazwy. Odznaki weryfikacji („organizer” lub „creator”) to sygnały zaufania nadawane przez administratorów — automat weryfikacji promuje cię na „creator” po pięciu samodzielnie zorganizowanych pinach.
Obserwowanie i kafelek Sieć
Stuknij Obserwuj na czyimś profilu, żeby nadchodzące piny tej osoby pojawiły się w twoim kafelku Sieć na pulpicie. Follow jest jednokierunkowy — adresat nie musi akceptować i nie dostaje powiadomienia, że zacząłeś go obserwować. Kierunek przeciwny (kto obserwuje ciebie) jest pokazywany tylko na twoim własnym profilu.
Preferencje per-follow żyją na stronie /network. Możesz wyciszyć obserwację (powiadomienia milkną bez unfollow), przełączyć kanał mail vs push niezależnie, ograniczyć powiadomienia do konkretnych kategorii i dodać promień geograficzny, żeby odległe piny obserwowanej osoby nie pojawiały się w twoim lokalnym feedzie.
Powiadomienia o pinach obserwowanych wysyłają się z 12-minutowym opóźnieniem od utworzenia pina. To jest celowe: absorbuje pętlę utwórz-edytuj-usuń, którą hosci często robią w pierwszych minutach, dzięki czemu nie spamuje cię powiadomienie o pinie, który już nie istnieje.
Prywatne grupy
Grupy to kręgi dostępne tylko z zaproszenia, dzielące prywatne piny. Obecnie dostępny jest tylko tryb secret — discoverable closed groups (request-to-join) i open public groups są odroczone. Piny dodawane w grupie są niewidoczne dla nie-członków na każdej warstwie, włącznie z publiczną mapą i wyszukiwarką.
Stwórz grupę z /groups. Stajesz się jej właścicielem. Zaproszenia członków: wygeneruj link do udostępniania z opcjonalną datą wygaśnięcia i limitem użyć, albo zaproś konkretnego usera po id. Bezpośrednie zaproszenia powiadamiają adresata in-app.
Wyjście z grupy to jeden klik. Jeśli jesteś jedynym członkiem i wyjdziesz, grupa zostaje usunięta. Jeśli jesteś właścicielem z innymi członkami, musisz najpierw przekazać własność albo usunąć innych — w innym wypadku akcja odmówi, żeby nie zostawić grupy bez ownera.
- Piny grupowe są oznaczone na mapie fioletowym ringiem i małą kłódką w lewym górnym rogu — widoczne tylko dla członków.
- Obecnie nie ma egzekwowanego limitu członków dla użytkowników bez subskrypcji (wszyscy mają obecnie funkcje równe Pro w fazie wczesnej).
- Właściciele mogą usunąć członków w każdej chwili. Usunięci użytkownicy tracą natychmiast dostęp do wszystkich pinów grupy — także tych, na które wcześniej kliknęli „Idę”.
- Gdy monetyzacja wróci, grupy staną się płatną funkcją dla hostów (dołączanie zostanie darmowe). Istniejące grupy nie zostaną retroaktywnie zablokowane.
Powiadomienia
Pinmate ma dwa kanały: push (web push przez service workera, wymaga zgody przeglądarki) i mail (wysyłany przez SMTP w dev, Elastic Email w produkcji). Są niezależne — wyłącz dowolny bez wpływu na drugi.
Kanały są konfigurowalne osobno dla każdego pina (twoje przypomnienia o uczestnictwie), osobno dla każdej obserwowanej osoby (powiadomienia o ich nowych pinach) i globalnie w Ustawieniach (główny przełącznik, wyprzedzenie przypomnień). Gdy powiadomienie ma się wysłać, serwer sprawdza ponownie, czy pin nadal istnieje, nie wygasł i jest dla ciebie widoczny — późne usunięcia ani zmiany widoczności nie tworzą „duchowych” powiadomień.
Prywatność i twoje dane
Pinmate jest zbudowane wokół zasady, że twoja lokalna mapa zostaje lokalna. Konkretnie: serwer egzekwuje zakres widoczności w każdym zapytaniu o piny, twoja domowa lokalizacja nigdy nie jest transmitowana, a domyślny build nie zawiera trzeciostronnych trackerów.
Ciasteczka są podzielone na ściśle konieczne (sesja, locale, motyw), analityczne (domyślnie off, opt-in przez banner) i marketingowe (domyślnie off). Banner cookies jest kanoniczną prawdą; przełączenie przełącznika tam natychmiast cofa zgodę na następnym loadzie strony.
- Twój mail nie jest nigdy pokazywany publicznie. Strony profilu pokazują lokalną część maila (przed @) tylko wtedy, kiedy nie ustawiłeś nazwy wyświetlanej.
- Piny grupowe są filtrowane serwerowo w każdym endpoincie listującym — nie ma żadnego client-side hide, więc nie-członkowie nigdy nie dostają ich w payloadzie.
- Maile z przypomnieniami zawierają tytuł pina, czas i link do mapy — nigdy twojej domowej lokalizacji ani tożsamości innych adresatów.
- Usunięcie konta robi natychmiastowy soft-delete (piny zanonimizowane, profil ukryty), a wiersz jest twardo usuwany przez admina w ciągu 30 dni — zgodnie z zobowiązaniami RODO.