Ein Jahrzehnt voller Einfluss: Wie unsere npm-Pakete 1 Milliarde Downloads erreichten und JavaScript prägten

Im JavaScript und Node.js Weltweit sind einige Pakete unverzichtbar – sie werden täglich millionenfach heruntergeladen und treiben Apps weltweit an. Hinter diesen Tools stehen Entwickler, die auf Open-Source-Qualität setzen. Heute zeigen wir, wie unser Team npm-Pakete entwickelt und pflegt, die zu wichtigen Bestandteilen des JavaScript-Ökosystems geworden sind.

Die Pioniere, die uns vertrauen: Isaac Z. Schlueter und Forward Email

Wir sind stolz darauf, Isaac Z. Schlueter (GitHub: isaacs) als Benutzer. Isaac erstellt npm und half beim Aufbau Node.jsSein Vertrauen in Forward Email zeigt, dass wir Wert auf Qualität und Sicherheit legen. Isaac nutzt Forward Email für mehrere Domains, darunter izs.me.

Isaacs Einfluss auf JavaScript ist enorm. Im Jahr 2009 war er einer der Ersten, der das Potenzial von Node.js erkannte und mit Ryan Dahl, der die Plattform erstellt hat. Wie Isaac in einem Interview mit dem Increment Magazin: „Inmitten dieser sehr kleinen Community, die versuchte, serverseitiges JS zu entwickeln, kam Ryan Dahl mit Node heraus, was ganz klar der richtige Ansatz war. Ich habe mich darauf eingelassen und war ab Mitte 2009 sehr engagiert.“

[!NOTE] Für alle, die sich für die Geschichte von Node.js interessieren, gibt es hervorragende Dokumentationen, die die Entwicklung dokumentieren, darunter: Die Geschichte von Node.js und 10 Dinge, die ich an Node.js bereue – Ryan Dahl. Ryan Dahls persönliche Website enthält auch wertvolle Einblicke in seine Arbeit.

Von der Entwicklung von npm zur Node.js-Führung

Isaac entwickelte npm im September 2009, die erste nutzbare Version erschien Anfang 2010. Dieser Paketmanager erfüllte eine wichtige Anforderung von Node.js und ermöglichte Entwicklern die einfache gemeinsame Nutzung und Wiederverwendung von Code. Laut Node.js Wikipedia-Seite„Im Januar 2010 wurde ein Paketmanager namens npm für die Node.js-Umgebung eingeführt. Der Paketmanager ermöglicht es Programmierern, Node.js-Pakete zusammen mit dem zugehörigen Quellcode zu veröffentlichen und freizugeben und soll die Installation, Aktualisierung und Deinstallation von Paketen vereinfachen.“

Als Ryan Dahl im Januar 2012 von Node.js zurücktrat, übernahm Isaac die Projektleitung. Wie bereits erwähnt seine ZusammenfassungEr leitete die Entwicklung mehrerer grundlegender Node.js-Kern-APIs, darunter das CommonJS-Modulsystem, Dateisystem-APIs und Streams und fungierte zwei Jahre lang als BDFL (Benevolent Dictator For Life) des Projekts und sorgte für eine immer bessere Qualität und einen zuverlässigen Build-Prozess für die Node.js-Versionen v0.6 bis v0.10.

Isaac führte Node.js durch eine entscheidende Wachstumsphase und setzte Standards, die die Plattform bis heute prägen. Später gründete er 2014 npm, Inc., um das npm-Register zu unterstützen, das er zuvor selbst betrieben hatte.

Wir danken Isaac für seine großen Beiträge zu JavaScript und nutzen weiterhin viele seiner Pakete. Seine Arbeit hat die Art und Weise verändert, wie wir Software entwickeln und wie Millionen von Entwicklern weltweit Code teilen.

Der Architekt hinter dem Code: Nick Baughs Reise

Im Mittelpunkt unseres Open-Source-Erfolgs steht Nick Baugh, Gründer und Inhaber von Forward Email. Seine fast 20-jährige Arbeit mit JavaScript hat die Entwicklung unzähliger Apps geprägt. Sein Open-Source-Erfolg zeugt von technischem Können und Community-Führung.

Express-Technikausschuss und Kernbeiträge

Nicks Web-Framework-Expertise verschaffte ihm einen Platz auf der Technischer Ausschuss für Expressdienste, wo er an einem der am häufigsten verwendeten Node.js-Frameworks mitwirkte. Nick ist nun als inaktives Mitglied auf der Express-Community-Seite.

[!WICHTIG] Express wurde ursprünglich von TJ Holowaychuk entwickelt, einem produktiven Open-Source-Entwickler, der einen Großteil des Node.js-Ökosystems geprägt hat. Wir sind dankbar für TJs grundlegende Arbeit und respektieren seine Entscheidung, eine Pause einzulegen aus seinen umfangreichen Open-Source-Beiträgen.

Als Mitglied der Technischer Ausschuss für Expressdienste, Nick zeigte große Liebe zum Detail bei Themen wie der Klärung req.originalUrl Dokumentation und Behebung von Problemen bei der Handhabung mehrteiliger Formulare.

Beiträge zum Koa-Framework

Nicks Arbeit mit dem Koa-Rahmen– eine moderne, leichtere Alternative zu Express, ebenfalls von TJ Holowaychuk entwickelt – unterstreicht sein Engagement für bessere Webentwicklungstools. Seine Koa-Beiträge umfassen sowohl Issues als auch Code über Pull Requests, die sich mit Fehlerbehandlung, Content-Type-Management und Dokumentationsverbesserungen befassen.

Seine Arbeit mit Express und Koa verschafft ihm einen einzigartigen Einblick in die Node.js-Webentwicklung und hilft unserem Team, Pakete zu erstellen, die mit mehreren Framework-Ökosystemen gut funktionieren.

Vom einzelnen Mitarbeiter zum Leiter einer Organisation

Was mit der Unterstützung bestehender Projekte begann, entwickelte sich zur Entwicklung und Pflege ganzer Paket-Ökosysteme. Nick gründete mehrere GitHub-Organisationen – darunter Kabine, Spam-Scanner, Email weiterleiten, Junge, und Bree– jedes löst spezifische Bedürfnisse der JavaScript-Community.

Dieser Wechsel vom Mitwirkenden zum Leiter zeigt Nicks Vision von gut konzipierter Software, die echte Probleme löst. Durch die Organisation verwandter Pakete in fokussierten GitHub-Organisationen hat er Tool-Ökosysteme geschaffen, die zusammenarbeiten und gleichzeitig modular und flexibel für die breitere Entwickler-Community bleiben.

Unsere GitHub-Organisationen: Ökosysteme der Innovation

Wir organisieren unsere Open-Source-Arbeit in fokussierten GitHub-Organisationen, die jeweils spezifische Anforderungen in JavaScript erfüllen. Diese Struktur schafft zusammenhängende Paketfamilien, die gut zusammenarbeiten und gleichzeitig modular bleiben.

Cabin: Strukturiertes Logging für moderne Anwendungen

Der Kabinenorganisation ist unsere Version einer einfachen, leistungsstarken App-Protokollierung. cabin Das Paket hat fast 900 GitHub-Sterne und wird wöchentlich über 100.000 Mal heruntergeladen[^1]. Cabin bietet strukturiertes Logging, das mit gängigen Diensten wie Sentry, LogDNA und Papertrail funktioniert.

Das Besondere an Cabin ist sein durchdachtes API- und Plugin-System. Unterstützt werden unter anderem axe für Express-Middleware und parse-request für die HTTP-Anforderungsanalyse zeigen unser Engagement für Komplettlösungen statt isolierter Tools.

Der bson-objectid Das Paket verdient besondere Erwähnung, mit über 1,7 Millionen Downloads in nur zwei Monaten[^2]. Diese leichte MongoDB ObjectID-Implementierung ist zur ersten Wahl für Entwickler geworden, die IDs ohne vollständige MongoDB-Abhängigkeiten benötigen.

Spam-Scanner: E-Mail-Missbrauch bekämpfen

Der Spam-Scanner-Organisation zeigt unser Engagement für die Lösung echter Probleme. Die wichtigsten spamscanner Paket bietet erweiterte E-Mail-Spam-Erkennung, aber es ist die url-regex-safe Paket, das eine erstaunliche Akzeptanz erfährt.

Mit über 1,2 Millionen Downloads in zwei Monaten[^3], url-regex-safe behebt kritische Sicherheitsprobleme in anderen regulären Ausdrücken zur URL-Erkennung. Dieses Paket zeigt unseren Ansatz für Open Source: die Suche nach einem häufigen Problem (in diesem Fall Wiederholen Schwachstellen bei der URL-Validierung), Erstellen einer soliden Lösung und sorgfältige Pflege dieser.

Bree: Modernes Job Scheduling mit Worker Threads

Der Bree-Organisation ist unsere Antwort auf eine häufige Node.js-Herausforderung: zuverlässige Jobplanung. Die Haupt bree Das Paket mit über 3.100 GitHub-Sternen bietet einen modernen Job-Scheduler, der Node.js-Worker-Threads für bessere Leistung und Zuverlässigkeit verwendet.

[!HINWEIS] Bree wurde gegründet, nachdem wir bei der Pflege geholfen hatten. Agenda, indem wir die gewonnenen Erkenntnisse anwenden, um einen besseren Job-Scheduler zu entwickeln. Unsere Agenda-Beiträge haben uns geholfen, Wege zur Verbesserung der Job-Scheduling zu finden.

Was Bree von anderen Planern wie Agenda unterscheidet:

  • Keine externen Abhängigkeiten: Im Gegensatz zu Agenda, das MongoDB benötigt, benötigt Bree weder Redis noch MongoDB, um den Jobstatus zu verwalten.
  • Arbeitsthreads: Bree verwendet Node.js-Worker-Threads für Sandbox-Prozesse, was eine bessere Isolierung und Leistung bietet.
  • Einfache API: Bree bietet detaillierte Kontrolle mit Einfachheit und erleichtert so die Umsetzung komplexer Planungsanforderungen.
  • Integrierte Unterstützung: Dinge wie ordnungsgemäßes Neuladen, Cron-Jobs, Daten und benutzerfreundliche Zeiten sind standardmäßig enthalten.

Bree ist ein wichtiger Teil von forwardemail.net, die kritische Hintergrundaufgaben wie E-Mail-Verarbeitung, Bereinigung und geplante Wartung übernimmt. Der Einsatz von Bree in Forward Email zeigt unser Engagement für den Einsatz unserer eigenen Tools in der Produktion und stellt sicher, dass diese hohen Zuverlässigkeitsstandards entsprechen.

Wir nutzen und schätzen auch andere großartige Worker-Thread-Pakete wie Pool und HTTP-Clients wie elfPiscina nutzt wie Bree Node.js-Worker-Threads für eine effiziente Aufgabenverarbeitung. Wir danken Matthew Hill, der sowohl undici als auch piscina betreut, für seine wichtigen Beiträge zu Node.js. Matteo ist Mitglied des Node.js Technical Steering Committee und hat die HTTP-Client-Funktionen in Node.js erheblich verbessert.

E-Mail weiterleiten: Open Source-E-Mail-Infrastruktur

Unser ehrgeizigstes Projekt ist Email weiterleiten, ein Open-Source-E-Mail-Dienst, der E-Mail-Weiterleitung, Speicher und API-Dienste bietet. Das Hauptrepository verfügt über über 1.100 GitHub-Sterne[^4], was die Wertschätzung der Community für diese Alternative zu proprietären E-Mail-Diensten zeigt.

Der preview-email Das Paket dieser Organisation wurde in zwei Monaten über 2,5 Millionen Mal heruntergeladen[^5] und ist für Entwickler, die mit E-Mail-Vorlagen arbeiten, zu einem unverzichtbaren Tool geworden. Durch die einfache Möglichkeit, E-Mails während der Entwicklung in der Vorschau anzuzeigen, löst es ein häufiges Problem bei der Erstellung E-Mail-fähiger Anwendungen.

Lad: Wichtige Koa-Dienstprogramme und -Tools

Der Jungenorganisation Bietet eine Sammlung wichtiger Dienstprogramme und Tools, die sich in erster Linie auf die Verbesserung des Koa-Framework-Ökosystems konzentrieren. Diese Pakete lösen häufige Herausforderungen in der Webentwicklung und sind so konzipiert, dass sie nahtlos zusammenarbeiten und gleichzeitig unabhängig voneinander nützlich bleiben.

koa-better-error-handler: Verbesserte Fehlerbehandlung für Koa

koa-better-error-handler bietet eine bessere Fehlerbehandlungslösung für Koa-Anwendungen. Mit über 50 GitHub-Sternen macht dieses Paket ctx.throw Erstellen Sie benutzerfreundliche Fehlermeldungen und beheben Sie gleichzeitig mehrere Einschränkungen des integrierten Fehlerhandlers von Koa:

  • Erkennt und behandelt ordnungsgemäß Node.js-DNS-Fehler, Mongoose-Fehler und Redis-Fehler
  • Anwendung Boom zum Erstellen konsistenter, gut formatierter Fehlerantworten
  • Behält Header bei (im Gegensatz zum integrierten Handler von Koa)
  • Behält entsprechende Statuscodes bei, anstatt standardmäßig auf 500 zu setzen
  • Unterstützt Flash-Nachrichten und Sitzungserhaltung
  • Stellt HTML-Fehlerlisten für Validierungsfehler bereit
  • Unterstützt mehrere Antworttypen (HTML, JSON und einfacher Text)

Dieses Paket ist besonders wertvoll, wenn es zusammen verwendet wird koa-404-handler für umfassendes Fehlermanagement in Koa-Anwendungen.

Reisepass: Authentifizierung für Lad

@ladjs/passport erweitert die beliebte Authentifizierungs-Middleware Passport.js um spezifische Verbesserungen für moderne Webanwendungen. Dieses Paket unterstützt sofort mehrere Authentifizierungsstrategien:

  • Lokale Authentifizierung mit E-Mail
  • Melden Sie sich bei Apple an
  • GitHub-Authentifizierung
  • Google-Authentifizierung
  • Authentifizierung mit Einmalkennwort (OTP)

Das Paket ist hochgradig anpassbar und ermöglicht Entwicklern, Feldnamen und Ausdrücke an die Anforderungen ihrer Anwendung anzupassen. Es lässt sich nahtlos in Mongoose für die Benutzerverwaltung integrieren und ist somit die ideale Lösung für Koa-basierte Anwendungen, die eine robuste Authentifizierung benötigen.

graceful: Elegantes Herunterfahren von Anwendungen

@ladjs/graceful löst die kritische Herausforderung, Node.js-Anwendungen ordnungsgemäß zu beenden. Mit über 70 GitHub-Sternen stellt dieses Paket sicher, dass Ihre Anwendung sauber beendet werden kann, ohne dass Daten verloren gehen oder Verbindungen unterbrochen werden. Zu den wichtigsten Funktionen gehören:

  • Unterstützung für das ordnungsgemäße Schließen von HTTP-Servern (Express/Koa/Fastify)
  • Sauberes Herunterfahren von Datenbankverbindungen (MongoDB/Mongoose)
  • Ordnungsgemäßes Schließen von Redis-Clients
  • Handhabung von Bree-Job-Schedulern
  • Unterstützung für benutzerdefinierte Shutdown-Handler
  • Konfigurierbare Timeout-Einstellungen
  • Integration mit Protokollierungssystemen

Dieses Paket ist unerlässlich für Produktionsanwendungen, bei denen unerwartete Abschaltungen zu Datenverlust oder -beschädigung führen können. Durch die Implementierung geeigneter Abschaltverfahren @ladjs/graceful trägt dazu bei, die Zuverlässigkeit und Stabilität Ihrer Anwendung sicherzustellen.

Upptime: Open Source-Uptime-Überwachung

Der Upptime-Organisation steht für unser Engagement für transparentes Open Source-Monitoring. Die wichtigsten upptime Das Repository verfügt über mehr als 13.000 GitHub-Sterne und ist damit eines der beliebtesten Projekte, zu denen wir beitragen. Upptime bietet einen GitHub-basierten Uptime-Monitor und eine Statusseite, die vollständig ohne Server funktioniert.

Wir verwenden Upptime für unsere eigene Statusseite unter https://status.forwardemail.net mit dem Quellcode verfügbar unter https://github.com/forwardemail/status.forwardemail.net.

Das Besondere an Upptime ist seine Architektur:

  • 100 % Open Source: Jede Komponente ist vollständig Open Source und anpassbar.
  • Unterstützt von GitHub: Nutzt GitHub-Aktionen, -Probleme und -Seiten für eine serverlose Überwachungslösung.
  • Kein Server erforderlich: Im Gegensatz zu herkömmlichen Überwachungstools müssen Sie für Upptime keinen Server betreiben oder warten.
  • Automatische Statusseite: Generiert eine schöne Statusseite, die auf GitHub Pages gehostet werden kann.
  • Leistungsstarke Benachrichtigungen: Integriert sich in verschiedene Benachrichtigungskanäle, einschließlich E-Mail, SMS und Slack.

Um die Erfahrung unserer Benutzer zu verbessern, haben wir @octokit/core in die forwardemail.net-Codebasis, um Statusaktualisierungen und Vorfälle in Echtzeit direkt auf unserer Website anzuzeigen. Diese Integration bietet unseren Nutzern klare Transparenz bei Problemen in unserem gesamten Stack (Website, API, MongoDB, Redis, SQLite, SMTP, POP3, IMAP, Bree usw.) mit sofortigen Toast-Benachrichtigungen, Änderungen der Badge-Symbole, Warnfarben und mehr.

Die @octokit/core-Bibliothek ermöglicht es uns, Echtzeitdaten aus unserem Upptime GitHub-Repository abzurufen, zu verarbeiten und benutzerfreundlich darzustellen. Bei einem Ausfall oder einer Leistungseinbuße eines Dienstes werden Benutzer sofort durch visuelle Indikatoren benachrichtigt, ohne die Hauptanwendung verlassen zu müssen. Diese nahtlose Integration stellt sicher, dass unsere Benutzer stets über aktuelle Informationen zum Systemstatus verfügen, was Transparenz und Vertrauen stärkt.

Upptime wird von Hunderten von Organisationen eingesetzt, die nach einer transparenten und zuverlässigen Möglichkeit suchen, ihre Dienste zu überwachen und den Status an Benutzer zu kommunizieren. Der Erfolg des Projekts zeigt, wie leistungsstark Tools sind, die die vorhandene Infrastruktur (in diesem Fall GitHub) nutzen, um häufige Probleme auf neue Weise zu lösen.

Unsere Beiträge zum Forward Email Ecosystem

Unsere Open-Source-Pakete werden von Entwicklern weltweit genutzt und bilden gleichzeitig die Grundlage unseres eigenen Forward Email-Dienstes. Diese Doppelrolle – sowohl als Entwickler als auch als Nutzer dieser Tools – verschafft uns einen einzigartigen Einblick in ihre praktische Anwendung und fördert kontinuierliche Verbesserungen.

Von Paketen zur Produktion

Der Weg von einzelnen Paketen zu einem zusammenhängenden Produktionssystem erfordert sorgfältige Integration und Erweiterung. Für Forward Email umfasst dieser Prozess:

  • Benutzerdefinierte Erweiterungen: Erstellen von Forward Email-spezifischen Erweiterungen für unsere Open-Source-Pakete, die unsere individuellen Anforderungen erfüllen.
  • Integrationsmuster: Entwickeln von Mustern für die Interaktion dieser Pakete in einer Produktionsumgebung.
  • Leistungsoptimierungen: Identifizieren und Beheben von Leistungsengpässen, die nur bei großem Maßstab auftreten.
  • Sicherheitshärtung: Hinzufügen zusätzlicher Sicherheitsebenen speziell für die E-Mail-Verarbeitung und den Schutz von Benutzerdaten.

Diese Arbeit umfasst Tausende von Entwicklungsstunden, die über die eigentlichen Kernpakete hinausgehen. Das Ergebnis ist ein robuster, sicherer E-Mail-Dienst, der das Beste aus unseren Open-Source-Beiträgen herausholt.

Die Rückkopplungsschleife

Der vielleicht wertvollste Aspekt der Verwendung unserer eigenen Pakete in der Produktion ist die dadurch entstehende Feedbackschleife. Wenn wir bei Forward Email auf Einschränkungen oder Sonderfälle stoßen, beheben wir diese nicht nur lokal, sondern verbessern die zugrunde liegenden Pakete, was sowohl unserem Service als auch der Community zugutekommt.

Dieser Ansatz hat zu zahlreichen Verbesserungen geführt:

  • Brees würdevolles Herunterfahren: Der Bedarf von Forward Email an Bereitstellungen ohne Ausfallzeiten führte zu verbesserten Funktionen für ein ordnungsgemäßes Herunterfahren in Bree.
  • Mustererkennung des Spam-Scanners: Die Erkennungsalgorithmen des Spam-Scanners basieren auf realen Spam-Mustern, die in Forward Email gefunden wurden.
  • Leistungsoptimierungen der Kabine: Durch die Protokollierung großer Mengen in der Produktion wurden Optimierungsmöglichkeiten in Cabin aufgezeigt, die allen Benutzern zugute kommen.

Indem wir diesen positiven Kreislauf zwischen unserer Open-Source-Arbeit und unserem Produktionsservice aufrechterhalten, stellen wir sicher, dass unsere Pakete praktische, praxiserprobte Lösungen bleiben und keine theoretischen Implementierungen sind.

Die Grundprinzipien von Forward Email: Eine Grundlage für Exzellenz

Forward Email basiert auf einer Reihe von Grundprinzipien, die alle unsere Entwicklungsentscheidungen bestimmen. Diese Prinzipien, detailliert auf unserer Webseite, stellen Sie sicher, dass unser Service entwicklerfreundlich und sicher bleibt und auf die Privatsphäre der Benutzer ausgerichtet ist.

Immer entwicklerfreundlich, sicherheitsorientiert und transparent

Unser oberstes Ziel ist es, entwicklerfreundliche Software zu entwickeln und gleichzeitig höchste Sicherheits- und Datenschutzstandards einzuhalten. Wir sind überzeugt, dass technische Exzellenz niemals auf Kosten der Benutzerfreundlichkeit gehen sollte und dass Transparenz das Vertrauen unserer Community stärkt.

Dieses Prinzip spiegelt sich in unserer ausführlichen Dokumentation, klaren Fehlermeldungen und einer offenen Kommunikation über Erfolge und Herausforderungen wider. Indem wir unseren gesamten Code als Open Source bereitstellen, fördern wir die kritische Auseinandersetzung und Zusammenarbeit und stärken so sowohl unsere Software als auch das gesamte Ökosystem.

Einhaltung bewährter Prinzipien der Softwareentwicklung

Wir folgen mehreren etablierten Prinzipien der Softwareentwicklung, die sich über Jahrzehnte bewährt haben:

  • MVC: Trennung von Belangen durch das Model-View-Controller-Muster
  • Unix-Philosophie: Erstellen modularer Komponenten, die eine Sache gut können
  • KISS: Einfach und unkompliziert halten
  • DRY: Wiederholen Sie sich nicht und fördern Sie die Wiederverwendung von Code
  • YAGNI: Sie werden es nicht brauchen, um vorzeitige Optimierung zu vermeiden
  • Zwölf Faktor: Befolgen von Best Practices zum Erstellen moderner, skalierbarer Anwendungen
  • Ockhams Rasiermesser: Auswahl der einfachsten Lösung, die den Anforderungen entspricht
  • Dogfooding: Umfangreiche Nutzung unserer eigenen Produkte

Diese Prinzipien sind nicht nur theoretische Konzepte, sondern fester Bestandteil unserer täglichen Entwicklungspraxis. Unsere Orientierung an der Unix-Philosophie zeigt sich beispielsweise in der Struktur unserer npm-Pakete: kleine, fokussierte Module, die sich zur Lösung komplexer Probleme zusammensetzen lassen.

Zielgruppe sind kämpferische, eigeninitiativbegabte Entwickler

Wir zielen speziell auf die kämpferischen, selbstfinanzierten und Ramen-profitabel Entwickler. Dieser Fokus prägt alles, von unserem Preismodell bis hin zu unseren technischen Entscheidungen. Wir kennen die Herausforderungen, Produkte mit begrenzten Ressourcen zu entwickeln, denn wir haben das selbst erlebt.

Dieses Prinzip ist besonders wichtig für unseren Open-Source-Ansatz. Wir erstellen und pflegen Pakete, die echte Probleme für Entwickler ohne Unternehmensbudget lösen und leistungsstarke Tools für alle zugänglich machen, unabhängig von ihren Ressourcen.

Prinzipien in der Praxis: Die Forward Email Codebase

Diese Prinzipien sind im Forward Email-Code deutlich erkennbar. Unsere package.json-Datei zeigt eine sorgfältige Auswahl von Abhängigkeiten, die jeweils unseren Grundwerten entsprechen:

  • Sicherheitsorientierte Pakete wie mailauth zur E-Mail-Authentifizierung
  • Entwicklerfreundliche Tools wie preview-email für einfacheres Debuggen
  • Modulare Komponenten wie die verschiedenen p-* Dienstprogramme von Sindre Sorhus

Durch die konsequente Befolgung dieser Grundsätze im Laufe der Zeit haben wir einen Dienst aufgebaut, dem Entwickler ihre E-Mail-Infrastruktur anvertrauen können – sicher, zuverlässig und im Einklang mit den Werten der Open-Source-Community.

Datenschutz durch Technikgestaltung

Datenschutz ist für Forward Email kein nachträglicher Einfall oder Marketingmerkmal – es ist ein grundlegendes Designprinzip, das jeden Aspekt unseres Dienstes und Codes beeinflusst:

  • Zero-Access-Verschlüsselung: Wir haben Systeme implementiert, die es uns technisch unmöglich machen, die E-Mails der Benutzer zu lesen.
  • Minimale Datenerfassung: Wir erfassen nur die Daten, die zur Bereitstellung unseres Dienstes erforderlich sind, nicht mehr.
  • Transparente Richtlinien: Unsere Datenschutzrichtlinie ist in klarer, verständlicher Sprache ohne juristischen Fachjargon verfasst.
  • Open Source-Verifizierung: Unsere Open-Source-Codebasis ermöglicht es Sicherheitsforschern, unsere Datenschutzansprüche zu überprüfen.

Dieses Engagement erstreckt sich auch auf unsere Open-Source-Pakete, die von Grund auf mit den besten Praktiken für Sicherheit und Datenschutz entwickelt wurden.

Nachhaltige Open Source

Wir sind überzeugt, dass Open-Source-Software nachhaltige Modelle braucht, um langfristig erfolgreich zu sein. Unser Ansatz umfasst:

  • Kommerzieller Support: Wir bieten Premium-Support und -Dienste rund um unsere Open-Source-Tools.
  • Ausgewogene Lizenzierung: Verwenden Sie Lizenzen, die sowohl die Benutzerfreiheiten als auch die Nachhaltigkeit des Projekts schützen.
  • Engagement der Gemeinschaft: Aktive Zusammenarbeit mit Mitwirkenden, um eine unterstützende Community aufzubauen.
  • Transparente Roadmaps: Teilen unserer Entwicklungspläne, damit Benutzer entsprechend planen können.

Indem wir uns auf Nachhaltigkeit konzentrieren, stellen wir sicher, dass unsere Open-Source-Beiträge im Laufe der Zeit weiter wachsen und sich verbessern können, anstatt in Vernachlässigung zu geraten.

Die Zahlen lügen nicht: Unsere atemberaubenden npm-Download-Statistiken

Wenn wir über die Wirkung von Open-Source-Software sprechen, liefern Download-Statistiken ein konkretes Maß für Akzeptanz und Vertrauen. Viele der von uns betreuten Pakete haben eine Größenordnung erreicht, die nur wenige Open-Source-Projekte erreichen: Die Downloadzahlen liegen insgesamt in den Milliarden.

Top npm Packages by Downloads

[!WICHTIG] Wir sind stolz darauf, einige häufig heruntergeladene Pakete im JavaScript-Ökosystem zu unterstützen. Gleichzeitig möchten wir jedoch anerkennen, dass viele dieser Pakete ursprünglich von anderen talentierten Entwicklern erstellt wurden. Pakete wie Superagent und Supertest stammen ursprünglich von TJ Holowaychuk, dessen umfangreiche Beiträge zu Open Source maßgeblich zur Entwicklung des Node.js-Ökosystems beigetragen haben.

Unsere Wirkung aus der Vogelperspektive

Allein im zweimonatigen Zeitraum von Februar bis März 2025 verzeichneten die Top-Pakete, zu denen wir beitragen und die wir aufrechterhalten, atemberaubende Downloadzahlen:

[!NOTE] Mehrere andere Pakete, die wir zwar pflegen, aber nicht selbst erstellt haben, weisen sogar noch höhere Downloadzahlen auf, darunter form-data (über 738 Millionen Downloads), toidentifier (über 309 Millionen Downloads), stackframe (über 116 Millionen Downloads) und error-stack-parser (Über 113 Millionen Downloads). Es ist uns eine Ehre, zu diesen Paketen beizutragen und gleichzeitig die Arbeit ihrer ursprünglichen Autoren zu respektieren.

Das sind nicht nur beeindruckende Zahlen – sie repräsentieren echte Entwickler, die echte Probleme mit Code lösen, den wir pflegen. Jeder Download zeigt, wie diese Pakete jemandem geholfen haben, etwas Sinnvolles zu entwickeln – von Hobbyprojekten bis hin zu millionenfach genutzten Unternehmensanwendungen.

Package Categories Distribution

Tägliche Wirkung im großen Maßstab

Die täglichen Downloadmuster zeigen eine konstant hohe Nutzung mit Spitzenwerten von Millionen Downloads pro Tag[^13]. Diese Konsistenz spricht für die Stabilität und Zuverlässigkeit dieser Pakete – Entwickler testen sie nicht nur, sondern integrieren sie in ihre Kern-Workflows und verlassen sich Tag für Tag auf sie.

Die wöchentlichen Download-Muster zeigen sogar noch beeindruckendere Zahlen und bewegen sich konstant um die zehn Millionen Downloads pro Woche[^14]. Dies stellt einen massiven Einfluss auf das JavaScript-Ökosystem dar, da diese Pakete in Produktionsumgebungen weltweit laufen.

Mehr als nur Zahlen

Die Download-Statistiken sind zwar an sich schon beeindruckend, sie verraten aber auch viel über das Vertrauen, das die Community in diese Pakete setzt. Die Pflege von Paketen in dieser Größenordnung erfordert unermüdliches Engagement für:

  • Abwärtskompatibilität: Änderungen müssen sorgfältig abgewogen werden, um eine Beschädigung vorhandener Implementierungen zu vermeiden.
  • Sicherheit: Da Millionen von Anwendungen von diesen Paketen abhängen, könnten Sicherheitslücken weitreichende Folgen haben.
  • Leistung: In diesem Ausmaß können selbst geringfügige Leistungsverbesserungen erhebliche Gesamtvorteile bringen.
  • Dokumentation: Eine klare und umfassende Dokumentation ist für Pakete, die von Entwicklern aller Erfahrungsstufen verwendet werden, unerlässlich.

Das stetige Wachstum der Downloadzahlen im Laufe der Zeit spiegelt den Erfolg bei der Erfüllung dieser Verpflichtungen wider und zeigt, dass durch zuverlässige, gut gepflegte Pakete Vertrauen in der Entwickler-Community aufgebaut wurde.

Unterstützung des Ökosystems: Unsere Open-Source-Sponsorings

[!TIP] Bei der Nachhaltigkeit von Open Source geht es nicht nur darum, Code beizutragen, sondern auch darum, die Entwickler zu unterstützen, die kritische Infrastrukturen pflegen.

Neben unseren direkten Beiträgen zum JavaScript-Ökosystem sind wir stolz darauf, prominente Node.js-Mitwirkende zu unterstützen, deren Arbeit die Grundlage vieler moderner Anwendungen bildet. Zu unseren Sponsorings gehören:

Andris Reinman: Pionier der E-Mail-Infrastruktur

Andris Reinman ist der Schöpfer von Notizmailer, die beliebteste E-Mail-Versandbibliothek für Node.js mit über 14 Millionen wöchentlichen Downloads[^15]. Seine Arbeit erstreckt sich auch auf andere kritische E-Mail-Infrastrukturkomponenten wie SMTP-Server, Mailparser, und Wilde Ente.

Unser Sponsoring trägt dazu bei, die kontinuierliche Wartung und Entwicklung dieser wichtigen Tools sicherzustellen, die die E-Mail-Kommunikation für unzählige Node.js-Anwendungen ermöglichen, einschließlich unseres eigenen Forward Email-Dienstes.

Sindre Sorhus: Utility-Paket-Mastermind

Sindre Sorhus ist einer der produktivsten Open-Source-Mitwirkenden im JavaScript-Ökosystem und hat über 1.000 npm-Pakete entwickelt. Seine Dienstprogramme wie p-Karte, p-Wiederholung, und is-stream sind grundlegende Bausteine, die im gesamten Node.js-Ökosystem verwendet werden.

Indem wir Sindres Arbeit sponsern, tragen wir zur Entwicklung dieser wichtigen Dienstprogramme bei, die die JavaScript-Entwicklung effizienter und zuverlässiger machen.

Diese Sponsorings spiegeln unser Engagement für das Open-Source-Ökosystem wider. Wir sind uns bewusst, dass unser Erfolg auf dem Fundament dieser und anderer Mitwirkender beruht, und setzen uns für die Nachhaltigkeit des gesamten Ökosystems ein.

Aufdecken von Sicherheitslücken im JavaScript-Ökosystem

Unser Engagement für Open Source geht über die Funktionsentwicklung hinaus und umfasst auch die Identifizierung und Behebung von Sicherheitslücken, die Millionen von Entwicklern betreffen könnten. Einige unserer wichtigsten Beiträge zum JavaScript-Ökosystem liegen im Bereich Sicherheit.

Die Koa-Router-Rettung

Im Februar 2019 entdeckte Nick ein kritisches Problem bei der Wartung des beliebten Koa-Router-Pakets. Wie er berichtete auf Hacker NewsDas Paket wurde von seinem ursprünglichen Betreuer aufgegeben, sodass Sicherheitslücken nicht behoben wurden und die Community keine Updates erhielt.

[!WARNING] Verworfene Pakete mit Sicherheitslücken stellen ein erhebliches Risiko für das gesamte Ökosystem dar, insbesondere wenn sie wöchentlich millionenfach heruntergeladen werden.

Als Antwort darauf schuf Nick @koa/router und half, die Community auf die Situation aufmerksam zu machen. Seitdem pflegt er dieses wichtige Paket und stellt sicher, dass Koa-Benutzer über eine sichere und gut gewartete Routing-Lösung verfügen.

Beheben von ReDoS-Schwachstellen

Im Jahr 2020 identifizierte und adressierte Nick einen kritischen Regulärer Ausdruck Denial of Service (ReDoS) Schwachstelle in der weit verbreiteten url-regex Paket. Diese Sicherheitslücke (SNYK-JS-URLREGEX-569472) könnte es Angreifern ermöglichen, einen Denial-of-Service-Angriff auszulösen, indem sie speziell gestaltete Eingaben bereitstellen, die zu katastrophalen Backtracking-Verläufen im regulären Ausdruck führen.

Anstatt einfach das bestehende Paket zu patchen, erstellte Nick url-regex-safe, eine komplett neu geschriebene Implementierung, die die Schwachstelle behebt und gleichzeitig die Kompatibilität mit der ursprünglichen API aufrechterhält. Er veröffentlichte außerdem eine umfassender Blogbeitrag Erläuterung der Sicherheitslücke und wie sie behoben werden kann.

Diese Arbeit zeigt unseren Sicherheitsansatz: Wir beheben nicht nur Probleme, sondern schulen die Community und bieten robuste Alternativen, die ähnliche Probleme in der Zukunft verhindern.

Eintreten für die Sicherheit von Node.js und Chromium

Nick setzt sich außerdem aktiv für Sicherheitsverbesserungen im gesamten Ökosystem ein. Im August 2020 entdeckte er ein erhebliches Sicherheitsproblem in Node.js im Zusammenhang mit der Verarbeitung von HTTP-Headern. Dies wurde in Das Register.

Dieses Problem, das auf einen Patch in Chromium zurückzuführen war, könnte es Angreifern ermöglichen, Sicherheitsmaßnahmen zu umgehen. Nicks Engagement trug dazu bei, dass das Problem umgehend behoben wurde und Millionen von Node.js-Anwendungen vor potenzieller Ausnutzung geschützt wurden.

Sicherung der npm-Infrastruktur

Später im selben Monat entdeckte Nick ein weiteres kritisches Sicherheitsproblem, diesmal in der E-Mail-Infrastruktur von npm. Wie berichtet in Das Registernpm implementierte die E-Mail-Authentifizierungsprotokolle DMARC, SPF und DKIM nicht richtig, was es Angreifern möglicherweise ermöglichte, Phishing-E-Mails zu senden, die scheinbar von npm stammten.

Nicks Bericht führte zu Verbesserungen der E-Mail-Sicherheitslage von npm und schützte die Millionen von Entwicklern, die sich bei der Paketverwaltung auf npm verlassen, vor potenziellen Phishing-Angriffen.

Unsere Beiträge zum Forward Email Ecosystem

Forward Email basiert auf mehreren wichtigen Open-Source-Projekten, darunter Nodemailer, WildDuck und Mailauth. Unser Team hat maßgeblich zu diesen Projekten beigetragen und dabei geholfen, schwerwiegende Probleme zu identifizieren und zu beheben, die die E-Mail-Zustellung und -Sicherheit beeinträchtigen.

Verbesserung der Kernfunktionalität von Nodemailer

Notizmailer ist das Rückgrat des E-Mail-Versands in Node.js und unsere Beiträge haben dazu beigetragen, es robuster zu machen:

  • SMTP-Server-Verbesserungen: Wir haben Parsing-Fehler, Probleme bei der Stream-Verarbeitung und TLS-Konfigurationsprobleme in der SMTP-Serverkomponente behoben[^16][^17].
  • Verbesserungen am Mail-Parser: Wir haben Fehler bei der Dekodierung von Zeichenfolgen und Parserprobleme behoben, die zu Fehlern bei der E-Mail-Verarbeitung führen konnten[^18][^19].

Diese Beiträge stellen sicher, dass Nodemailer eine zuverlässige Grundlage für die E-Mail-Verarbeitung in Node.js-Anwendungen, einschließlich Forward Email, bleibt.

Erweiterte E-Mail-Authentifizierung mit Mailauth

Mailauth bietet wichtige Funktionen zur E-Mail-Authentifizierung und unsere Beiträge haben seine Fähigkeiten erheblich verbessert:

  • Verbesserungen bei der DKIM-Verifizierung: Wir haben festgestellt und gemeldet, dass es bei X/Twitter Probleme mit dem DNS-Cache gab, die zu DKIM-Fehlern bei ausgehenden Nachrichten führten. Dies haben wir auf Hacker One[^20] gemeldet.
  • DMARC- und ARC-Erweiterungen: Wir haben Probleme mit der DMARC- und ARC-Verifizierung behoben, die zu falschen Authentifizierungsergebnissen führen konnten[^21][^22].
  • Leistungsoptimierungen: Wir haben Optimierungen beigesteuert, die die Leistung von E-Mail-Authentifizierungsprozessen verbessern[^23][^24][^25][^26].

Diese Verbesserungen tragen dazu bei, dass die E-Mail-Authentifizierung genau und zuverlässig ist und Benutzer vor Phishing- und Spoofing-Angriffen geschützt sind.

Wichtige Upptime-Verbesserungen

Unsere Beiträge zu Upptime umfassen:

  • SSL-Zertifikatsüberwachung: Wir haben eine Funktion zur Überwachung des Ablaufs von SSL-Zertifikaten hinzugefügt, um unerwartete Ausfallzeiten aufgrund abgelaufener Zertifikate zu verhindern[^27].
  • Unterstützung mehrerer SMS-Nummern: Wir haben die Möglichkeit implementiert, mehrere Teammitglieder bei Vorfällen per SMS zu benachrichtigen, um die Reaktionszeiten zu verbessern[^28].
  • Korrekturen bei der IPv6-Prüfung: Wir haben Probleme mit IPv6-Konnektivitätsprüfungen behoben und gewährleisten so eine genauere Überwachung in modernen Netzwerkumgebungen[^29].
  • Unterstützung für Dunkel-/Hellmodus: Wir haben Theme-Unterstützung hinzugefügt, um die Benutzerfreundlichkeit von Statusseiten zu verbessern[^31].
  • Bessere TCP-Ping-Unterstützung: Wir haben die TCP-Ping-Funktionalität verbessert, um zuverlässigere Verbindungstests zu ermöglichen[^32].

Diese Verbesserungen kommen nicht nur der Statusüberwachung von Forward Email zugute, sondern stehen der gesamten Community der Upptime-Benutzer zur Verfügung und zeigen unser Engagement für die Verbesserung der Tools, auf die wir angewiesen sind.

Der Klebstoff, der alles zusammenhält: Benutzerdefinierter Code im großen Maßstab

Unsere npm-Pakete und Beiträge zu bestehenden Projekten sind zwar bedeutend, doch erst der benutzerdefinierte Code, der diese Komponenten integriert, zeigt unsere technische Expertise. Die Codebasis von Forward Email repräsentiert ein Jahrzehnt Entwicklungsarbeit, die bis ins Jahr 2017 zurückreicht, als das Projekt begann. kostenlose E-Mail-Weiterleitung bevor sie in ein Monorepo zusammengeführt werden.

Ein massiver Entwicklungsaufwand

Der Umfang dieses benutzerdefinierten Integrationscodes ist beeindruckend:

  • Gesamtbeiträge: Über 3.217 Commits
  • Codebasisgröße: Über 421.545 Zeilen Code in JavaScript-, Pug-, CSS- und JSON-Dateien[^33]

Darin stecken Tausende Stunden Entwicklungsarbeit, Debugging-Sitzungen und Leistungsoptimierungen. Es ist die „geheime Zutat“, die aus einzelnen Paketen einen zusammenhängenden, zuverlässigen Dienst macht, den Tausende von Kunden täglich nutzen.

Integration von Kernabhängigkeiten

Die Forward Email-Codebasis integriert zahlreiche Abhängigkeiten zu einem nahtlosen Ganzen:

  • E-Mail-Verarbeitung: Integriert Nodemailer zum Senden, SMTP-Server zum Empfangen und Mailparser zum Parsen
  • Authentifizierung: Verwendet Mailauth für DKIM-, SPF-, DMARC- und ARC-Verifizierung
  • DNS-Auflösung: Nutzt Tangerine für DNS-over-HTTPS mit globalem Caching
  • MX-Verbindung: Nutzt mx-connect mit Tangerine-Integration für zuverlässige Mailserver-Verbindungen
  • Jobplanung: Verwendet Bree für die zuverlässige Verarbeitung von Hintergrundaufgaben mit Worker-Threads
  • Vorlagen: Verwendet E-Mail-Vorlagen, um Stylesheets von der Website in der Kundenkommunikation wiederzuverwenden
  • E-Mail-Speicher: Implementiert individuell verschlüsselte SQLite-Postfächer mit better-sqlite3-multiple-ciphers und ChaCha20-Poly1305-Verschlüsselung für quantensicheren Datenschutz. Dies gewährleistet eine vollständige Isolierung zwischen Benutzern und stellt sicher, dass nur der Benutzer Zugriff auf sein Postfach hat.

Jede dieser Integrationen erfordert eine sorgfältige Berücksichtigung von Randfällen, Leistungseinbußen und Sicherheitsbedenken. Das Ergebnis ist ein robustes System, das Millionen von E-Mail-Transaktionen zuverlässig verarbeitet. Unsere SQLite-Implementierung nutzt außerdem msgpackr für eine effiziente binäre Serialisierung und WebSockets (über WS) für Echtzeit-Statusaktualisierungen unserer gesamten Infrastruktur.

DNS-Infrastruktur mit Tangerine und mx-connect

Eine kritische Komponente der Infrastruktur von Forward Email ist unser DNS-Auflösungssystem, das auf zwei Schlüsselpaketen basiert:

  • Mandarine: Unsere Node.js DNS-over-HTTPS-Implementierung bietet einen Drop-In-Ersatz für den Standard-DNS-Resolver mit integrierten Wiederholungsversuchen, Timeouts, intelligenter Serverrotation und Caching-Unterstützung.

  • mx-verbinden: Dieses Paket stellt TCP-Verbindungen zu MX-Servern her, indem es eine Zieldomäne oder E-Mail-Adresse übernimmt, entsprechende MX-Server auflöst und in der Reihenfolge ihrer Priorität eine Verbindung zu ihnen herstellt.

Wir haben Tangerine mit mx-connect integriert durch Pull Request Nr. 4, wodurch DNS-over-HTTP-Anfragen auf Anwendungsebene in der gesamten E-Mail-Weiterleitung sichergestellt werden. Dies ermöglicht globales Caching für DNS im großen Maßstab mit 1:1-Konsistenz über alle Regionen, Apps und Prozesse hinweg – entscheidend für die zuverlässige E-Mail-Zustellung in einem verteilten System.

Auswirkungen auf Unternehmen: Von Open Source zu unternehmenskritischen Lösungen

Der Höhepunkt unserer zehnjährigen Reise in der Open-Source-Entwicklung hat es Forward Email ermöglicht, nicht nur einzelne Entwickler, sondern auch große Unternehmen und Bildungseinrichtungen zu bedienen, die das Rückgrat der Open-Source-Bewegung selbst bilden.

Fallstudien zur unternehmenskritischen E-Mail-Infrastruktur

Unser Engagement für Zuverlässigkeit, Datenschutz und Open-Source-Prinzipien hat Forward Email zur vertrauenswürdigen Wahl für Organisationen mit anspruchsvollen E-Mail-Anforderungen gemacht:

  • Bildungseinrichtungen: Wie in unserem Fallstudie zur E-Mail-Weiterleitung von Alumni, große Universitäten verlassen sich auf unsere Infrastruktur, um durch zuverlässige E-Mail-Weiterleitungsdienste lebenslange Verbindungen zu Hunderttausenden von Alumni aufrechtzuerhalten.

  • Enterprise-Linux-Lösungen: Der Canonical Ubuntu E-Mail Enterprise-Fallstudie zeigt, wie unser Open-Source-Ansatz perfekt auf die Bedürfnisse von Enterprise-Linux-Anbietern abgestimmt ist und ihnen die Transparenz und Kontrolle bietet, die sie benötigen.

  • Open Source-Stiftungen: Die größte Bestätigung ist vielleicht unsere Partnerschaft mit der Linux Foundation, wie sie in der Fallstudie zur E-Mail-Unternehmensentwicklung der Linux Foundation, wo unser Dienst die Kommunikation für genau die Organisation ermöglicht, die die Linux-Entwicklung verwaltet.

Es ist eine wunderbare Symmetrie, wie unsere über viele Jahre hinweg sorgfältig gepflegten Open-Source-Pakete es uns ermöglicht haben, einen E-Mail-Dienst aufzubauen, der nun genau die Communities und Organisationen unterstützt, die sich für Open-Source-Software einsetzen. Dieser umfassende Weg – vom Bereitstellen einzelner Pakete bis hin zur Bereitstellung einer unternehmenstauglichen E-Mail-Infrastruktur für Open-Source-Vorreiter – stellt die ultimative Bestätigung unseres Softwareentwicklungsansatzes dar.

Ein Jahrzehnt Open Source: Ein Blick in die Zukunft

Wenn wir auf ein Jahrzehnt voller Open-Source-Beiträge zurückblicken und auf die nächsten zehn Jahre blicken, sind wir voller Dankbarkeit gegenüber der Community, die unsere Arbeit unterstützt hat, und voller Vorfreude auf das, was noch kommt.

Unser Weg vom einzelnen Paketentwickler zum Betreuer einer umfassenden E-Mail-Infrastruktur, die von großen Unternehmen und Open-Source-Stiftungen genutzt wird, war bemerkenswert. Er ist ein Beweis für die Leistungsfähigkeit der Open-Source-Entwicklung und den Einfluss, den durchdachte, gut gepflegte Software auf das gesamte Ökosystem haben kann.

In den kommenden Jahren haben wir uns verpflichtet:

  • Kontinuierliche Pflege und Verbesserung unserer bestehenden Pakete, wodurch sichergestellt wird, dass sie für Entwickler weltweit zuverlässige Tools bleiben.
  • Ausbau unserer Beiträge zu kritischen Infrastrukturprojekten, insbesondere in den Bereichen E-Mail und Sicherheit.
  • Erweiterung der Funktionen von Forward Email Dabei bleiben wir unserem Engagement für Datenschutz, Sicherheit und Transparenz treu.
  • Unterstützung der nächsten Generation von Open-Source-Mitwirkenden durch Mentoring, Sponsoring und gesellschaftliches Engagement.

Wir glauben, dass die Zukunft der Softwareentwicklung offen, kollaborativ und auf Vertrauen basiert. Indem wir weiterhin hochwertige, sicherheitsorientierte Pakete zum JavaScript-Ökosystem beitragen, hoffen wir, einen kleinen Beitrag zur Gestaltung dieser Zukunft zu leisten.

Vielen Dank an alle, die unsere Pakete genutzt, zu unseren Projekten beigetragen, Probleme gemeldet oder einfach nur unsere Arbeit weiterempfohlen haben. Ihre Unterstützung hat dieses Jahrzehnt der Wirkung ermöglicht, und wir sind gespannt, was wir in den nächsten zehn Jahren gemeinsam erreichen können.

[^1]: NPM-Download-Statistik für cabin, April 2025 [^2]: NPM-Download-Statistik für bson-objectid, Februar-März 2025 [^3]: NPM-Download-Statistik für url-regex-safe, April 2025 [^4]: GitHub-Sterne-Anzahl für forwardemail/forwardemail.net (Stand: April 2025) [^5]: NPM-Download-Statistik für preview-email, April 2025 [^7]: NPM-Download-Statistik für superagent, Februar-März 2025 [^8]: NPM-Download-Statistik für supertest, Februar-März 2025 [^9]: NPM-Download-Statistik für preview-email, Februar-März 2025 [^10]: NPM-Download-Statistik für cabin, Februar-März 2025 [^11]: NPM-Download-Statistik für URL-Regex-sicher, Februar/März 2025 [^12]: NPM-Download-Statistiken für Spamscanner, Februar/März 2025 [^13]: Tägliche Download-Muster aus NPM-Statistiken, April 2025 [^14]: Wöchentliche Download-Muster aus NPM-Statistiken, April 2025 [^15]: NPM-Download-Statistiken für Nodemailer, April 2025 [^16]: https://github.com/nodemailer/smtp-server/issues/155 [^17]: https://github.com/nodemailer/smtp-server/issues/node-v12-requires-tls-min [^18]: https://github.com/nodemailer/mailparser/issues/261 [^19]: https://github.com/nodemailer/nodemailer/issues/1102 [^20]: https://github.com/postalsys/mailauth/issues/30 [^21]: https://github.com/postalsys/mailauth/issues/58 [^22]: https://github.com/postalsys/mailauth/issues/48 [^23]: https://github.com/postalsys/mailauth/issues/74 [^24]: https://github.com/postalsys/mailauth/issues/75 [^25]: https://github.com/postalsys/mailauth/issues/60 [^26]: https://github.com/postalsys/mailauth/issues/73 [^27]: Basierend auf GitHub-Problemen im Upptime-Repository [^28]: Basierend auf GitHub-Problemen im Upptime-Repository [^29]: Basierend auf GitHub-Problemen im Upptime-Repository [^30]: NPM-Download-Statistiken für Bree, Februar/März 2025 [^31]: Basierend auf GitHub-Pull-Requests an Upptime [^32]: Basierend auf GitHub-Pull-Requests an Upptime [^34]: NPM-Download-Statistiken für Koa, Februar/März 2025 [^35]: NPM-Download-Statistiken für @koa/router, Februar/März 2025 [^36]: NPM-Download-Statistiken für Koa-Router, Februar/März 2025 [^37]: NPM-Download-Statistiken für URL-Regex, Februar/März 2025 [^38]: NPM-Download-Statistiken für @breejs/later, Februar-März 2025 [^39]: NPM-Download-Statistiken für E-Mail-Vorlagen, Februar-März 2025 [^40]: NPM-Download-Statistiken für Get-Paths, Februar-März 2025 [^41]: NPM-Download-Statistiken für dotenv-parse-variables, Februar-März 2025 [^42]: NPM-Download-Statistiken für @koa/multer, Februar-März 2025