Jeder Entwickler hat mindestens einmal ein Geheimnis in einen Online-Formatter eingefügt. Eine Konfigurationsdatei mit API-Schlüsseln. Ein JWT, das er überprüfen wollte. Ein Regex, den er gegen Produktionsdaten testen musste. Das Online-Tool hat es formatiert, ein Ergebnis ausgegeben und weiter ging es. Das Problem: Dieses Geheimnis liegt jetzt in der Datenbank eines anderen.
Moderne Browser-Runtimes können fast alles, was ein Server für Dev-Tools kann. JavaScript ist schnell. Die Web Crypto API ist zuverlässig. WASM bedeutet, dass sogar heavy Parsing (YAML, JSON Schema, Regex) lokal läuft. Das Ergebnis: Eine neue Generation von Dev-Tools, die alles client-seitig verarbeiten, Ihre Daten nie hochladen und nicht einmal einen Backend-Betrieb benötigen.
Dieser Beitrag dreht sich darum, warum das wichtig ist, in welchen Fällen es nicht funktioniert, und wie man den Unterschied erkennt.
Was “client-seitig” wirklich bedeutet
Ein client-seitiges Tool ist ein Tool, bei dem die Arbeit in Ihrem Browser stattfindet, nicht auf einem Server. HTML, CSS und JavaScript werden einmalig heruntergeladen. Ab diesem Zeitpunkt ist jede Operation lokal. Der Server ist nicht mehr im Spiel.
Bei einem JSON-Formatter bedeutet das:
- Sie fügen JSON in ein
<textarea>ein. - Der Browser parst es, formatiert es und zeigt das Ergebnis an.
- Es wird kein
fetch-Aufruf gemacht. Kein API-Endpunkt. Kein Logging-Dienst.
Bei einem JWT-Decoder bedeutet es:
- Die drei base64-Segmente werden im Browser dekodiert.
- Die Signatur wird (oder wird nicht) mit lokalem Code verifiziert.
- Das Geheimnis verlässt nie Ihren Computer.
Das können Sie selbst in jedem Browser überprüfen. Öffnen Sie DevTools → Network, führen Sie die Operation aus und beobachten Sie das Request-Log. Ein wirklich client-seitiges Tool zeigt null Requests mit Ihren Eingaben.
Warum das für Dev-Tools besser ist
Privatheit. Der offensichtlichste Vorteil. Der Tool-Anbieter kann nicht weitergeben, was er nie erhalten hat. Er kann nicht für Logs, die nicht existieren, vorgeladen werden. Er kann Ihre Daten nicht verkaufen, weil er sie nicht hat.
Latenz. Kein Netzwerk-Hin und Her. Eine 100KB-JSON-Datei zu formatieren dauert ein paar Millisekunden. Dieselbe Datei auf einen Server hochladen, formatieren und herunterladen könnte an einem guten Tag 200ms dauern. Bei Tools, die Sie täglich dutzende Male benutzen, summiert sich das.
Kosten. Der Tool-Anbieter zahlt nicht für Rechenleistung oder Speicher. Ein client-seitiges Tool hat effektiv marginale Kosten von null pro Nutzer. Deshalb sind so viele davon kostenlos.
Offline. Sobald die Seite geladen ist, funktioniert das Tool ohne Internetverbindung. Nützlich in Flugzeugen, in Cafés mit schlechtem WLAN und in air-gapped-Umgebungen.
Resilienz. Das Tool geht nicht down, wenn dem Anbieter das Geld ausgeht oder er beschließt, auf Krypto umzusteigen. Solange die URL erreichbar ist, funktioniert es.
Die Abwägungen
Client-seitig ist nicht kostenlos. Es gibt echte Gründe, warum einige Tools diesen Weg nicht gehen können.
Dateigrößenlimits. Der Browser-Tab ist ein einzelner Prozess. Sehr große Dateien (Hunderte von Megabytes) können den Tab zum Absturz bringen. Ein server-seitiges Tool kann streamen und beliebige Größen verarbeiten. Bei einem JSON-Formatter wird alles über ~50MB im Browser langsam. Das DevSpeedTools JSON-Formatter kommt damit klar; für wirklich große Dateien ist ein Streaming-CLI-Tool die richtige Lösung.
Keine Zusammenarbeit. Wenn Ihr Tool Zustand über Nutzer hinweg teilen muss — denken Sie an Figma, Google Docs, Multiplayer-Alles — brauchen Sie einen Server. Aber das ist nicht das, was die meisten Dev-Tools tun. Ein Formatter, ein Validator, ein Decoder, ein Generator — all das sind Single-User-Operationen.
Keine Analytics zu Nutzerdaten. Anbieter können nicht sehen, was die Leute mit dem Tool machen. Das ist ja der Punkt. Aber es bedeutet auch, dass der Tool-Autor gemeldete Probleme nicht so leicht debuggen kann. Gute client-seitige Tools bieten klare Fehlermeldungen und eine Möglichkeit, reproduzierbare Beispiele zu teilen, ohne die tatsächlichen Daten weiterzugeben.
Cross-Origin-Einschränkungen. Wenn das Tool von einer Drittanbieter-API abrufen muss (z.B. ein JWT-Verifier, der ein JWKS von einem Identitätsanbieter laden muss), muss die CORS-Konfiguration stimmen. Rein für lokale Tools ist das kein Problem.
Der initiale Download. WASM-Module können einige Megabyte groß sein. Ein großer WASM-basierter YAML-Parser oder Regex-Engine kann beim ersten Besuch eine Weile laden. Nachfolgende Besuche werden aus dem Zwischenspeicher geladen. Streaming-Kompilierung (seit 2024 Standard in Chrome und Firefox) bedeutet, dass das erste Parsing passiert, bevor das gesamte Modul heruntergeladen wurde, sodass dies von einem echten Problem zu einem kleinen geworden ist. WebGPU, wo verfügbar, lässt rechenintensive Dev-Tools (Bildverarbeitung, Krypto, Regex-Engines) auf der GPU laufen — um Größenordnungen schneller als JavaScript für die richtige Workload.
Wie man überprüft, ob ein Tool wirklich client-seitig ist
Die Marketing-Texte der meisten Dev-Tools sagen “client-seitig” oder “im Browser” oder “kein Upload”. Die meisten meinen es auch. Einige nicht. So prüfen Sie es:
- Öffnen Sie DevTools → Network. Benutzen Sie das Tool. Beobachten Sie die Requests. Wenn das Tool einen
POSTmit Ihren Daten an eine API macht, ist es nicht client-seitig. Wenn die einzigen Requests für HTML, CSS und JS-Bundle sind, ist alles in Ordnung. - Quelltext anzeigen. Rechtsklick → Seitenquelltext anzeigen. Finden Sie das JavaScript. Wenn die Hauptarbeit in einem
script-Tag passiert und lokal läuft, ist das Tool client-seitig. Wenn alles in einem dünnen Wrapper um eine Server-API steckt, ist das Tool das nicht. - Netzwerk blockieren. DevTools → Network → “Offline”. Laden Sie das Tool neu (die Seite muss im Cache sein). Benutzen Sie das Tool. Wenn es immer noch funktioniert, ist es wirklich client-seitig.
- Lesen Sie die Datenschutzrichtlinie. Suchen Sie nach dem Satz “wir sammeln nicht” oder “wir loggen nicht” oder “alle Verarbeitung erfolgt in Ihrem Browser”. Ein vages “wir schätzen Ihre Privatheit” ist ein gelbes Warnsignal.
Wie gute client-seitige Dev-Tools aussehen
Die besten client-seitigen Tools teilen sich einige Merkmale:
- Sie sagen Ihnen, dass sie client-seitig sind. Oft mit einem kleinen Badge in der Nähe der Eingabe (“Lokal verarbeitet” oder ein Schloss-Symbol).
- Sie funktionieren offline. Sobald geladen, funktioniert die Seite ohne Netzwerk weiter.
- Sie verarbeiten große Eingabedaten elegant. Ein 10MB-Einfügen sollte den Browser nicht blockieren.
- Sie bieten eine Möglichkeit, Zustand über ein URL-Fragment zu teilen. Ein Tool, das Ihre Eingabe in ein
#data=...-URL-Fragment kodiert, lässt Sie ein Beispiel teilen, ohne die Daten an einen Server zu senden. Das DevSpeedTools Share-Hilfsprogramm tut genau das. - Sie haben einen Datenschutzhinweis. Einen kurzen Satz, der erklärt, was das Tool mit Ihrer Eingabe tut — in der Regel “nichts”.
Wann server-seitig noch die richtige Antwort ist
Nicht alles kann oder sollte client-seitig sein:
- Tools, die eine Datenbank benötigen. Ein “Was ist meine IP?”-Tool muss Ihre IP tatsächlich sehen.
- Tools, die bezahlte APIs aufrufen müssen. Ein “Fasse diesen Artikel zusammen”-Tool ruft OpenAI auf. Der OpenAI-Schlüssel kann nicht mitgeliefert werden.
- Tools, die Schreibzugriff auf externe Systeme benötigen. Alles, was an Slack postet oder einen GitHub-PR erstellt.
- Tools, die über Nutzer hinweg aggregieren müssen. Ein “Ist diese Domain auf einer Blockliste?”-Tool braucht die gemeinsame Blockliste.
Die Trennlinie: Wenn die Operation eine Funktion der Nutzereingabe allein ist, sollte sie client-seitig sein. Wenn die Operation gemeinsamen Zustand benötigt, ist ein Server unvermeidbar.
Der Wandel im Dev-Tools-Bereich in den letzten fünf Jahren war dramatisch. Tools, die früher ein Backend erforderten (Formatter, Validator, Decoder, Generator), laufen jetzt vollständig im Browser. Das Muster ist einfach: Einmal herunterladen, ewig laufen, nichts senden. Für Entwickler mit sensiblen Konfigurationen oder Produktions-Token ist dieser Wandel ein bedeutender Sicherheitsfortschritt.