Skip to content
Wróć do projektów
Aplikacja

AM Tracker

Self-hostowany tracker anime, mangi, manhwy i manhui.

Rok
2026
Status
Online
Rola
Solo: projekt, front end, back end, baza danych, hosting.
AM Tracker

Dla osób, które wolą trzymać swoją bibliotekę u siebie, niż ją wynajmować: wszystko, co oglądają i czytają, w jednym miejscu, rzut oka na to, co jest w trakcie, i powiadomienie, gdy wyjdzie kolejny odcinek albo rozdział. Stoi na moim sprzęcie, a nie na czyjejś platformie.

Technologie

  • Next.js 16
  • React
  • TypeScript
  • Prisma 6
  • MySQL
  • NextAuth
  • Tailwind CSS
  • Framer Motion
  • Proxmox

Zastosowanie

  • Jedna biblioteka z czterech katalogów: wyszukiwarka scala AniList, MyAnimeList, MangaDex i MangaUpdates, usuwa duplikaty i dodaje tytuł z pełnymi danymi jednym kliknięciem.
  • Postęp jednym dotknięciem. Sama zauważa koniec serii i liczy ponowne przejścia jako osobne cykle.
  • Mówi, kiedy wyjdzie kolejny: anime co do godziny z AniList, manga i manhwa z nocnego przeglądu, bo dla nich nikt harmonogramu nie publikuje.
  • Co wychodzi dzisiaj, listą albo miesiącem naraz, z własnej półki lub ze wszystkiego, co jest.
  • Dwa składniki logowania z zaufanymi urządzeniami, każde odwoływalne osobno, więc zgubiony telefon to nie zgubione konto.
  • Wciągnięcie lat historii z MAL-a albo AniList i wyciągnięcie całości z powrotem, kiedy tylko chcesz.
  • Podgląd tego, co oglądają znajomi, i dodanie czegoś do siebie prosto z ich profilu.

Jak jest zrobione

  • Next.js 16 na App Routerze z Turbopackiem, Prisma 6 na MySQL, NextAuth na tokenach JWT. Self-hostowane w kontenerze LXC pod Proxmoxem, ruch przez Cloudflare Tunnel, proces pilnowany przez PM2.
  • Strony użytkownika są force-dynamic, a ciężkie publiczne feedy cache'owane po stronie serwera w trybie stale-while-revalidate z oknem 5 do 15 minut i scalaniem żądań w locie, żeby stu czytelników nie ruszyło każdy z własnym zapytaniem.
  • AniList odpytywany paczkami przez aliasy GraphQL, do 50 rekordów na żądanie, plus cron odświeżający status emisji i sumy co sześć godzin.
  • Manga nie ma nigdzie publicznego harmonogramu, więc nocny cron przeczesuje MangaUpdates, dowiązuje nowe wpisy po tytule i buduje historię wydań, z której korzysta kalendarz.
  • Sesje umierają dokładnie wtedy, kiedy powinny: passwordChangedAt i twoFactorChangedAt porównywane ze znacznikiem wystawienia tokenu, więc zmiana hasła natychmiast wywala wszystkie starsze.
  • Ograniczanie ruchu w trzech warstwach, po adresie, po mailu i po koncie, każda z własnym oknem. Ostre CSP, HSTS preload, sprawdzanie bajtów nagłówka przy wgrywaniu awatara i sanitizer adresów stojący między pobieraniem a SSRF.
  • Pod spodem panel operatora: pięć cronów z ostatnim wynikiem i czasem kolejnego uruchomienia, żywe health checki wszystkich czterech źródeł, trzydzieści dni logów serwera i baner na samej stronie w chwili, gdy któreś źródło padnie.
  • Około 14 modeli Prisma, 40 tras API, 20 stron i 5 cronów, na czterech zewnętrznych API.

Aplikacja

Profil i ustawienia

Panel administratora

Changelog, FAQ i plany

Zbudujmy coś razem

Masz coś w głowie? Nawet pół pomysłu wystarczy, żeby zacząć rozmowę. Na każdą wiadomość odpowiadam, nawet jeśli odpowiedź brzmi, że ktoś inny lepiej się do tego nadaje.

Odpowiedź w ciągu 24 godzin, ze wstępną wyceną i pomysłem na realizację.

Mieszkam w Belgii, pracuję zdalnie z klientami po polsku i po angielsku.