Deine Anime-Welt / Eine einzige App

imlat

Verwandle eine endlose Sammlung in eine Anime-Welt, die du wirklich beherrschst. Nimlat vereint fast zwanzigtausend Titel, deinen Fortschritt, neue Releases und die Download-Suche in einer Desktop-App: schnell, local-first und unverwechselbar.

Katalog
Fast 20.000 Titel
Watch list
AniList · MAL · Simkl
Releases
Verpasse keine mehr
Local-first
Die Geschwindigkeit deines PCs

Spendiere mir einen Kaffee

Kein Konto und kein Vermittler: Deine Unterstützung kommt als normale SEPA-Überweisung an.

QR TYPEEPC / GIROCODE

QR-Code wird erstellt…

Überweisungsdaten

Betrag
Frei wählbar
Kontoinhaber
Bank
BBVA
IBAN
SWIFT / BIC
Verwendungszweck

Alles unter Kontrolle

Tracke Anime nicht nur. Beherrsche deine Bibliothek.

Von der Entdeckung bis zur nächsten Episode hält Nimlat alles an seinem Platz: zusammengehörige Serien, synchronisierte Fortschritte, kommende Staffeln und vorbereitete Download-Suchen. Der Katalog liegt auf deinem Computer, damit Filter, Details und dein persönlicher Status sofort reagieren. Kein ständiger Wechsel zwischen Websites, Listen und vergessenen Tabs.

Demo

Sieh Nimlat in Aktion. Stell dir hier deine Bibliothek vor.

Vom ersten Überblick bis zur nächsten Episode: Erlebe, wie Nimlat Tausende Titel in eine persönliche, übersichtliche und sofort einsatzbereite Bibliothek verwandelt.

Die Kommandozentrale

Das ist keine Watchlist. Das ist deine Anime-Welt.

Erkunde den gesamten Katalog als Media Wall, öffne jede Serie, überwache kommende Releases und starte im richtigen Moment die passende Suche. Jede Ansicht bringt dich schneller zu dem, was du sehen willst.

Deine Geschichte kommt mit

Nimm jede gesehene Episode mit.

Jeder Tracker hat einen eigenen Autorisierungsablauf. Öffne Watchlists integrieren, wähle den Provider und folge seiner Anleitung; hier findest du außerdem die Konfiguration deiner bevorzugten Suchen.

Preferences / WatchedWatchlists integrieren

Jeder Dienst verwendet eine andere Verbindung. Öffne den gewünschten Provider und folge nur der dazugehörigen Anleitung.

Provider / Browser-AnmeldungMyAnimeList

Verbinde Nimlat mit deinem MyAnimeList-Konto, ohne dein Passwort weiterzugeben.

In MyAnimeList — Client ID erstellen

  1. Öffne MyAnimeList API clients. Melde dich an, falls MAL danach fragt, und wähle anschließend Create ID.
  2. Fülle das Formular mit diesen Werten aus:

    Werte für das MyAnimeList-Formular
    App NameNimlat
    App TypeotherNimlat ist eine Desktop-App und verwendet PKCE ohne Client Secret.
    Client IDWird nach dem Absenden von MAL erzeugtDiesen Wert kopierst du anschließend in Nimlat.
    Client SecretWird bei App Type other nicht erzeugtBei App Type other stellt MAL keinen aus und Nimlat fordert keinen an.
    App DescriptionPersonal desktop app for managing and syncing an anime watch list
    App Redirect URLhttp://127.0.0.1:8765/callback
    Homepage URLhttps://www.nicolo-zanetti.com/projects/nimlat
    App Logo URLLeer lassen
    Privacy Policy URLLeer lassen
    Terms of Use URLLeer lassen
    Commercial / Non-Commercialnon-commercial
    Name / Company NameDein Name oder MAL-Benutzername
    Purpose of Usehobbyist
    API License and Developer AgreementZustimmungsfeld aktivieren
  3. Sende das Formular ab.
  4. Öffne den gerade erstellten Client erneut. MAL sollte jetzt die Client ID anzeigen; kopiere sie.

In Nimlat — Verbindung starten

  1. Öffne jetzt Nimlat: Preferences > Watched > MyAnimeList.
  2. Füge die bei MAL kopierte Client ID in das Feld Client ID ein.
  3. Wähle „Connect MyAnimeList“.
  4. Viel Spaß.
Provider / AniList-TokenAniList

Verbinde Nimlat mit deinem AniList-Konto, ohne Passwort oder Client Secret weiterzugeben.

In AniList — Anwendung erstellen

  1. Öffne die AniList-Entwicklereinstellungen, melde dich an und wähle Create New Application.
  2. Fülle das Formular mit diesen Werten aus:

    Werte für die AniList-Anwendung
    NameNimlat
    Redirect URLhttps://anilist.co/api/v2/oauth/pinDer Wert muss exakt übereinstimmen und darf keine zusätzlichen Leerzeichen enthalten.
    Client IDWird nach dem Speichern von AniList erzeugtDiesen Wert brauchst du in Nimlat und in der URL des nächsten Schritts.
    Client SecretNicht in Nimlat einfügenNimlat verwendet den Implicit Flow und benötigt diesen Wert nicht.
  3. Speichere die Anwendung.
  4. AniList zeigt jetzt die Client ID an; kopiere sie.

In Nimlat — Token anfordern

  1. Die Verbindung verwendet die von AniList dokumentierte Auth Pin-Methode, damit du das Token direkt von der AniList-Seite kopieren kannst.
  2. Öffne Preferences > Watched > AniList.
  3. Füge die kopierte Client ID in AniList client ID ein.
  4. Wähle Request access token from AniList. Nimlat öffnet die richtige Adresse im Browser.
  5. Melde dich bei AniList an, falls nötig, und autorisiere Nimlat.
  6. AniList zeigt ein Access Token an; kopiere es vollständig.

In Nimlat — Verbindung speichern

  1. Füge das von AniList angezeigte Token in Access token or redirect URL ein.
  2. Wähle Save token. Nimlat prüft die Verbindung, bevor sie gespeichert wird.
  3. Viel Spaß
Provider / Browser-AnmeldungSimkl

Verbinde Nimlat mit deinem Simkl-Konto, ohne Passwort oder Client Secret weiterzugeben.

In Simkl — Anwendung erstellen

  1. Öffne Eine App in Simkl erstellen und melde dich an, falls nötig.
  2. Fülle das Formular mit diesen Werten aus:

    Werte für die Simkl-Anwendung
    NameNimlat
    DescriptionPersonal desktop app for managing and syncing an anime watch list
    Redirect URIhttp://127.0.0.1:8765/callbackDer Wert muss exakt übereinstimmen und darf keine zusätzlichen Leerzeichen enthalten.
    Client IDWird nach dem Speichern von Simkl erzeugtDiesen Wert kopierst du anschließend in Nimlat.
  3. Speichere die Anwendung.
  4. Simkl zeigt jetzt die Client ID an; kopiere sie.

In Nimlat — Verbindung starten

  1. Öffne Preferences > Watched > Simkl.
  2. Füge die kopierte Client ID in das Feld Client ID ein.
  3. Wähle Connect Simkl.
  4. Melde dich bei Simkl an, falls nötig, und autorisiere Nimlat. Die Verbindung wird automatisch abgeschlossen.
  5. Viel Spaß
Preferences / DownloadDownload-Suchseiten konfigurieren

Nimlat ladt keine Dateien herunter: Es baut eine Suchanfrage und offnet sie im gewahlten Browser.

Provider konfigurieren

  1. Offne Preferences > Download und wahle Add new provider.
  2. Vergib einen Namen und wahle Torrent fur direkte Torrent-Listings oder Index fur allgemeine Suchseiten.
  3. Fuge die vollstandige Such-URL ein und setze {query} an die Stelle des Suchtexts, zum Beispiel https://example.com/search?q={query}.
  4. Speichere den Provider. Er kann jederzeit deaktiviert, bearbeitet oder geloscht werden.
  5. Nutze den Systembrowser oder wahle unter Default browser mit Browse eine bestimmte ausfuhrbare Datei.

Nutze nur Dienste und Inhalte, fur die du die erforderlichen Rechte hast. Ohne {query} hangt Nimlat die codierte Suche an die URL an.

Unsichtbare Kraft

Sieht aus wie eine Maschine. Reagiert wie eine Maschine.

Hinter der Neon-Oberfläche arbeitet eine Desktop-Engine für riesige Kataloge: persistente Updates, lokaler Cache, Hintergrundprozesse und sichere Grenzen. Du erlebst eine unmittelbare Bibliothek; Nimlat übernimmt die Komplexität.

Desktop architecture

Die Leistung bleibt hinter den Kulissen.

Vorn eine reaktionsschnelle Oberfläche, dahinter spezialisierte Dienste und drei lokale Datenbanken. Jede Ebene erledigt genau eine Aufgabe – damit Nimlat schnell, stabil und bereit bleibt, mit deiner Bibliothek zu wachsen.

  1. 01 / UIReact-19-Renderer
  2. 02 / BOUNDARYTypisierter Preload
  3. 03 / DOMAINServices und Daemons im Main Process
  4. 04 / STATE3 lokale SQLite-Datenbanken

Feature Map

Implementierte Funktionen

Product Experience

Die App-Oberfläche: Library, Tracking, Mediendetails, kommende Releases und operative Werkzeuge.

Local-first anime library manager

Desktop-App zum Organisieren, Überwachen und Vervollständigen einer persönlichen Anime-Library, mit lokalen SQLite-Daten.

Library Explorer

Hauptansicht für Gruppen, Serien und Standalone-Medien mit Suche, Filtern, Integrationsstatus und ignorierten Inhalten.

Media Detail Hub

Eigene Seiten pro Medium mit Katalogdetails, Episoden, Charakteren, Staff und Download-Werkzeugen.

Release Watch

Dashboard für kommende Releases, nächste Episoden, neue Staffeln und bereits veröffentlichte, noch nicht integrierte Inhalte.

External Tracking Sync

Bidirektionaler Import und Abgleich des Watch-Status mit AniList, MyAnimeList und Simkl.

Download Search Builder

Konfigurierbares Werkzeug für Download-Suchanfragen mit Presets für Qualität, Quelle, Untertitel, Audio und Release Group.

Data Pipeline

Die Datenmaschine: Ingestion, inkrementelle Updates, persistente Queues und Katalog-Normalisierung.

AniList + Jikan Data Ingestion

Pipeline zum Importieren von Metadaten, Relationen, Episoden, Charakteren, Staff und Bildern aus externen Quellen.

AnimeDB Baseline System

Vorgeladene Katalogdatenbank, die beim Start geladen und später aktualisiert werden kann, ohne alles neu aufzubauen.

Incremental Catalog Updates

Idempotente inkrementelle Updates mit persistenten Cursors, Sicherheits-Overlap und Schutz vor unnötigen Retries.

Hydration Queues

Persistente Queues zur Hintergrund-Anreicherung von Daten, mit Retry, Failure State und eigener Fehlerseite.

Release Date Resolution

Normalisierung von Release-Daten aus next airing episode, Startdatum und Fallback-Providern.

Deterministic Grouping Engine

Automatische Serien-Gruppierung auf Basis des AniList Relation Graph, mit Support für User Overrides.

Desktop Architecture

Die lokale Electron-Struktur mit klaren Grenzen zwischen UI, Preload, Main Process und Datenbanken.

Electron Secure Boundary

Trennung zwischen Renderer, Preload Bridge und Main Process, ohne direkten Renderer-Zugriff auf Electron oder SQLite.

SQLite as Source of Truth

Drei getrennte lokale Datenbanken für Anime-Katalog, User State und Image Cache.

Typed Context Bridge Contracts

Geteilte TypeScript-Verträge definieren jede vom Preload bereitgestellte API und machen die Prozessgrenze für den Compiler prüfbar.

Thin IPC Layer

Schlanke IPC-Handler, mit Business-Logik in Services und dedizierten Datenbankoperationen.

Facade-Based Domain Access

Datenzugriff über Facades und Service Layer, statt verstreutem SQL im Rest der App.

Main-Process Domain Services

Regeln für Auswahl, Synchronisierung und Mutation liegen in dedizierten Main-Process-Services statt in React-Komponenten.

Event-Driven Updates

Interne Busse zur Verteilung von Änderungen an Gruppen, Medien, Episoden, Release Watch, Tracking und Hydration Progress.

Local Image Cache

Lokaler Image Cache für schnelle Ladezeiten, Offline-Wiederverwendung und kontrollierte Fallbacks.

Atomic Baseline Replacement

Der geladene Katalog wird per Checksumme geprüft und mit Backup- und Rollback-Schutz für die aktive Datenbank ersetzt.

Encrypted Credential Storage

Provider-Token und Zugangsdaten laufen über Electron safeStorage: Windows Data Protection API unter Windows und Keychain unter macOS.

Background Service Lifecycle

Koordinierte Daemons führen Scanner, Hydration, Katalog-Updates, Cache und Release Tracking außerhalb des Render-Zyklus aus.

Native Packaging and Updates

Electron Builder erzeugt native Pakete; Update-Prüfungen bleiben im Main Process statt in den Renderer zu gelangen.

Visual / Interaction Design

Die markanteste Ebene: technische, animierte, bewusst übertriebene UI als Showcase.

Distinctive Cyber-Neon UI

Starke, technische und bewusst nicht-minimalistische visuelle Identität als Showcase für UI Engineering.

Pixi-Powered Animated Backgrounds

Atmosphärische animierte Hintergründe mit Pixi, integriert in die App-Erfahrung.

Custom Interaction Components

Eigene visuelle Controls wie Neon Console, Flip Switch, Circuit Toggle, Glow Buttons und Status Controls.

Media Wall Rendering

Performantes Rendering visueller Grids mit Texture Cache und optimierter Bildverwaltung.

Ant Design Theming Layer

Ant Design mit Custom Theme und konsistenten Overrides, damit Komponenten robust und visuell eigenständig bleiben.

Engineering Quality

Technische Leitplanken, damit ein ambitioniertes persönliches Projekt nicht ins Chaos kippt.

TypeScript-First Architecture

Geteilte Typen zwischen Main, Preload und Renderer, um Fehler an App-Grenzen zu reduzieren.

Focused Test Coverage

Tests für Ingestion, Grouping, Release Watch, Image Cache, Download Search, Main Services und Datenbankoperationen.

Provider-Safe Data Fetching

Update-Strategien, die unnötigen Traffic zu externen APIs vermeiden.

Error Observability

Strukturiertes Logging, persistente Fehler und explizite Retries für kritische Datenflüsse.

Performance Guardrails

Begrenzte IPC-Payloads, paginierte Queries, reduzierter Renderer-State und schwere Arbeit im Main Process oder in der Datenbank.

Manifest

Design Philosophy

Warum Nimlat anonymen Minimalismus ablehnt und trotzdem benutzbar bleibt.

Vollständiges Manifest lesen

Nimlat is intentionally over-the-top in both features and visual identity. It is built to feel excessive, technical, bright, and unapologetically stylized.

There is a concept in videogame interface design called diegetic UI: instead of interacting only with abstract panels, the user interacts with elements that feel like part of the world itself. Nimlat is still a web application, but it deliberately leans in that direction. Its interface is not meant to feel like a flat document with buttons on top. It is meant to feel like a machine, a console, a system with presence.

This is in strong contrast with much of modern aesthetic culture. Architecture, art, product design, and digital interfaces are increasingly flattened, simplified, muted, optimized, and stripped of ornament, identity, and symbolic force. In software, this tendency appears as sterile minimalism: rounded rectangles, interchangeable layouts, safe icons, muted palettes, and interfaces designed to be frictionless above all else.

I spent years studying and practicing usability. I know how to create clean, simple, practical, highly usable interfaces. So why is Nimlat the opposite of that? Why does it prioritize visual effects, identity, and atmosphere over absolute simplicity?

There are several reasons. The fact that Nimlat is not a commercial product matters. The fact that its target users are expected to be technically competent also matters. But those factors are not what drove the decision to use a visual style so deliberately misaligned with the current mainstream.

The first honest reason is that Nimlat is also a showcase of technical ability. Simplifying an interface today by building it out of flat, high-contrast Material-style buttons and cards is overwhelmingly easy. Creating neon elements that flicker, glow, animate, and still behave correctly inside a real application is not. Nimlat was built both to satisfy a personal need and to demonstrate that I can create technically ambitious, polished, distinctive software.

The second honest reason is that I have a visceral rejection of the dominant modern aesthetic: sterile minimalism, pseudo-brutalist digital design, corporate uniformity, and the broader cultural flattening that affects architecture, art, product design, and software alike.

This rejection is not aimed only at web interfaces. If anything, modern software is the easiest case to justify, because simplicity and accessibility often serve real users with limited technical ability, limited patience, or specific impairments. The deeper objection is cultural and aesthetic: it is aimed at modern art, architecture, and design when sterility is chosen deliberately rather than imposed by budget, function, or accessibility.

This is especially visible when modern aesthetic choices are applied to European artistic and architectural heritage. When classical buildings are “modernized” by stripping away their character, when historical spaces are forced to host sterile contemporary interventions, or when cities with centuries of visual identity are interrupted by objects that visibly despise their surroundings, the result is not practicality. It is aesthetic vandalism disguised as progress.

A clear example is Venice’s Ponte della Costituzione: a modern glass-and-steel bridge inserted into one of the most historically and visually coherent cities in Europe. Whether one likes it or not, it represents exactly the kind of modern intervention I object to: not because it is new, but because it asserts its own sterile modernity against the identity of the breathable history around it.

Much of modern design feels like the cultural equivalent of dystopian housing blocks: practical, efficient, rectangular, stripped of ornament, stripped of identity, stripped of soul. It works, but it does not inspire. It is suitable for systems that treat people as drones: users to be guided, workers to be managed, attention units to be processed.

Nimlat is not merely reacting against modern web design. It is reacting against the broader soul-devouring aesthetic culture that produced it.

Art, architecture, and software should not merely reduce friction. They should also inspire the mind, awaken passion, and give form to identity. Practicality matters. Usability matters. Accessibility matters. But a world made only of practical, usable, flattened things is not a world fit for human beings. It is a world fit for obedient drones.

The purpose of Nimlat’s visual identity is to reject that. It is meant to be bright, excessive, technical, personal, and alive. It is meant to prove that software can have an actual soul without becoming unusable or inaccessible.

Nimlat is a small cry against the darkness: a demand that the world around us should not only function, but also burn with identity, meaning, and human energy.